diff -r ecf0e467eeb8 -r 8f6eed2b4261 test-suite/lib/test_hlp.js --- a/test-suite/lib/test_hlp.js Tue Apr 08 16:21:53 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -// Test helpers for karma-e2e-dsl environment -// -// https://github.com/winsonwq/karma-e2e-dsl - - -exports.page_loading = function (url, title) { - test (url+' loads', dsl(function () { - // here we are in Karma page - browser.navigateTo (url); - expect (element ('title').text ()).toMatch (new RegExp (title,'m')); - // The same test agin vaniller javascript - element ('title').text (function (page_title) { - // here we got a value from the test iframe - // to display the tested value : console.log (page_title); - if (!(new RegExp (title, 'm').test (page_title))) throw 'got page '+page_title+' instead'; - }); - })); -} - -/** Test if it's possible to change lang to the specified : - * c : lang code - * l : help label - */ -exports.i18n = function (c, l) { - test ('to '+c, dsl(function () { - element ('#footer a[href="/i18n/setlang/'+c+'/"]').click (); - browser.navigateTo ('/'); - expect (test_.elt ('#footer a[href="/help/"]').text ()).toMatch (new RegExp (l, 'm')); - })); -} - -/** Test if the selected DOM element is defined or has a given value : .val() - * s : CSS selector - * e : expected value, if omited, test existence - */ -exports.val = function (s, e) { - e = typeof e == 'undefined' ? '' : e; // .val() returns defined ? '' : undefined; // if no value - test (s+' is '+e, dsl(function () { - expect (test_.elt (s).val ()).toMatch (new RegExp (e, 'm')); - })); -} - -exports.exist = function (s) { - test_.val (s); -} - -/** Test if the selected DOM element has the given text : .text() - * s : CSS selector - * e : expected value - * v : should we test a visible value ? - */ -exports.text = function (s, e, v) { - v = typeof v == 'undefined' ? true : v; - test (s+' has text '+e, dsl(function () { - expect (test_.elt (s, v).text ()).toBe (e); - })); -} - -/** Test if the selected DOM element .text() value match the given regexp - * s : CSS selector - * r : regexp to match - */ -exports.match = function (s, r) { - test (s+' text match '+r, dsl(function () { - expect (test_.elt (s).text ()).toMatch (r); - })); -} - -/** Count selector occurences - * s : CSS selector - * e : expected count - */ -exports.count = function (s, e) { - test (s+' count is '+e, dsl(function () { - expect (test_.elt (s).count ()).toBe (e); - })); -} - -/** Test Django form field presence - */ -exports.field = function (form_id, field_id, type, position, label, mandatory) { - test ('has a '+label+' form field', dsl(function () { - var s = ''; - - switch (type) { - case 'textarea':s = 'textarea#'+field_id; break; - case 'select': s = 'select#'+field_id; break; - default: s = 'input#'+field_id+'[type="'+type+'"]'; - } - - expect (test_.elt (s).val ()).toBeDefined (); - expect (test_.elt ('#'+form_id+' :input:eq('+position+')#'+field_id).val ()).toBeDefined (); - expect (test_.elt ('label[for='+field_id+']').text ()).toBe (label); - - if (mandatory) - expect (test_.elt ('label[for='+field_id+'] + span.required_star').val ()).toBeDefined (); - })); -} - -/** - * Fill form field - * s : form field id - * v : array containing the value to use - */ -exports.fill_field = function (s, v) { - test ('set '+s, dsl(function () { - input (s).enter (v[s]); - })); -} - -/** - * Submit a form - * s : selector of the submit button - */ -exports.submit = function (s) { - test ('submit '+s, dsl(function () { - test_.elt (s).click (); - browser.waitForPageLoad (); - })); -} - -/** - * Fails a test - */ -exports.fail = function () { - test ('must fail', dsl(function () { - throw 'have been programmed to fail now'; - })); -} - -/** - * Inbrowser debugger statement - */ -exports.debug = function () { - test ('debugger', dsl(function (){ - debugger; // not seen to work - })); -} - -/** - * Have the browser waiting while you inspect what's going on - */ -exports.pause = function () { - test ('pause', dsl(function () { - browser.pause (); - })); -} - -/** - * Start back the testcases - */ -exports.resume = function () { - test ('resume', dsl(function (){ - browser.resume (); - })); -} - -/** Ensure the given element is visible - * s : CSS selector of the DOM element to check - * v : should the element being visible - */ -exports.elt = function (s, v) { - return element (s + (v ? ':visible' : '')); -} - -/** Revive functions after a JSON.stringify which prevented their disappearence - * k : key in the object to revive functions in - * v : value - * - * We keep only the string of the body part in order to use it to define a new function in tests files - * /!\ do NEVER minify this code ! /!\ - * - */ -exports.reviveFunc = multilineString (function (k, v) { -/*! if (v && typeof v === 'string' && v.substr (0, 8) == 'function') { - var a = v.indexOf ('{') + 1, // start function body - b = v.lastIndexOf ('}'), - c = v.indexOf ('(') + 1, // start args - d = v.indexOf (')'); - return new Function (v.substring (c, d), v.substring (a, b)); - } - - return v;*/ -}); - -function multilineString (f) { return f.toString().replace(/^[^\/]+\/\*!?/, '').replace(/\*\/[^\/]+$/, ''); }