diff --git a/tests/frontend/helper.js_ b/tests/frontend/helper.js_
new file mode 100644
index 000000000..0d29a31f2
--- /dev/null
+++ b/tests/frontend/helper.js_
@@ -0,0 +1,99 @@
+var testHelper = {};
+
+(function(){
+ var $iframeContainer, $iframe;
+
+ testHelper.init = function(){
+ $iframeContainer = $("#iframe-container");
+ }
+
+ testHelper.randomString = function randomString(len)
+ {
+ var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ var randomstring = '';
+ for (var i = 0; i < len; i++)
+ {
+ var rnum = Math.floor(Math.random() * chars.length);
+ randomstring += chars.substring(rnum, rnum + 1);
+ }
+ return randomstring;
+ }
+
+ testHelper.newPad = function(cb){
+ var padName = "FRONTEND_TEST_" + testHelper.randomString(20);
+ $iframe = $("");
+
+ $iframeContainer.empty().append($iframe);
+
+ var checkInterval;
+ $iframe.load(function(){
+ checkInterval = setInterval(function(){
+ var loaded = false;
+
+ try {
+ //check if loading div is hidden
+ loaded = !testHelper.$getPadChrome().find("#editorloadingbox").is(":visible");
+ } catch(e){}
+
+ if(loaded){
+ clearTimeout(timeout);
+ clearInterval(checkInterval);
+
+ cb(null, {name: padName});
+ }
+ }, 100);
+ });
+
+ var timeout = setTimeout(function(){
+ if(checkInterval) clearInterval(checkInterval);
+ cb(new Error("Pad didn't load in 10 seconds"));
+ }, 10000);
+
+ return padName;
+ }
+
+ testHelper.$getPadChrome = function(){
+ var win = $iframe[0].contentWindow;
+ var $content = $iframe.contents();
+ $content.window = win;
+
+ return $content;
+ }
+
+ testHelper.$getPadOuter = function(){
+ var $iframe = testHelper.$getPadChrome().find('iframe.[name="ace_outer"]');
+ var win = $iframe[0].contentWindow;
+ var $content = $iframe.contents();
+ $content.window = win;
+
+ return $content;
+ }
+
+ testHelper.$getPadInner = function(){
+ var $iframe = testHelper.$getPadOuter().find('iframe.[name="ace_inner"]');
+ var win = $iframe[0].contentWindow;
+ var $content = $iframe.contents();
+ $content.window = win;
+
+ return $content;
+ }
+
+ // copied from http://stackoverflow.com/questions/985272/jquery-selecting-text-in-an-element-akin-to-highlighting-with-your-mouse
+ // selects the whole dom element you give it
+ testHelper.selectText = function(element, $iframe){
+ var doc = $iframe[0], win = $iframe.window, range, selection;
+
+ if (doc.body.createTextRange) { //ms
+ range = doc.body.createTextRange();
+ range.moveToElementText(element);
+ range.select();
+ } else if (win.getSelection) { //all others
+ selection = win.getSelection();
+ range = doc.createRange();
+ range.selectNodeContents(element);
+ selection.removeAllRanges();
+ selection.addRange(range);
+ }
+ }
+})()
+
diff --git a/tests/frontend/index.html b/tests/frontend/index.html
index b86d6f00f..0f110c6aa 100644
--- a/tests/frontend/index.html
+++ b/tests/frontend/index.html
@@ -15,8 +15,12 @@
-
+
+
+
+
-