diff --git a/IPython/html/tests/casperjs/test_cases/dashboard_nav.js b/IPython/html/tests/casperjs/test_cases/dashboard_nav.js index 9730b1e2f..0eebe4dae 100644 --- a/IPython/html/tests/casperjs/test_cases/dashboard_nav.js +++ b/IPython/html/tests/casperjs/test_cases/dashboard_nav.js @@ -1,7 +1,4 @@ -casper.wait_for_list = function () { - casper.waitForSelector('.list_item'); - // casper.wait(500); -} + casper.get_list_items = function () { return this.evaluate(function () { @@ -14,7 +11,7 @@ casper.get_list_items = function () { }); } -casper.test_items = function (test, baseUrl) { +casper.test_items = function (baseUrl) { casper.then(function () { var items = casper.get_list_items(); casper.each(items, function (self, item) { @@ -22,9 +19,9 @@ casper.test_items = function (test, baseUrl) { var followed_url = baseUrl+item.link; if (!followed_url.match('/\.\.$')) { casper.thenOpen(baseUrl+item.link, function () { - casper.wait_for_list(); - test.assertEquals(this.getCurrentUrl(), followed_url, 'Testing dashboard link: '+followed_url); - casper.test_items(test, baseUrl); + casper.wait_for_dashboard(); + this.test.assertEquals(this.getCurrentUrl(), followed_url, 'Testing dashboard link: '+followed_url); + casper.test_items(baseUrl); this.back(); }); } @@ -33,13 +30,8 @@ casper.test_items = function (test, baseUrl) { }); } -casper.test.begin('Testing dashboard navigation', function (test) { - var baseUrl = casper.get_notebook_server(); - casper.start(baseUrl); - casper.echo(baseUrl); - casper.wait_for_list(); - casper.test_items(test, baseUrl); - casper.run(function() { - test.done(); - }); -}); +casper.dashboard_test(function () { + baseUrl = this.get_notebook_server() + casper.test_items(baseUrl); +}) + diff --git a/IPython/html/tests/casperjs/util.js b/IPython/html/tests/casperjs/util.js index 44db968ca..8c49dd240 100644 --- a/IPython/html/tests/casperjs/util.js +++ b/IPython/html/tests/casperjs/util.js @@ -250,6 +250,34 @@ casper.notebook_test = function(test) { }); }; +casper.wait_for_dashboard = function () { + // Wait for the dashboard list to load. + casper.waitForSelector('.list_item'); +} + +casper.open_dashboard = function () { + // Start casper by opening the dashboard page. + var baseUrl = this.get_notebook_server(); + this.start(baseUrl); + this.wait_for_dashboard(); +} + +casper.dashboard_test = function (test) { + // Open the dashboard page and run a test. + this.open_dashboard(); + this.then(test); + + this.then(function () { + this.page.close(); + this.page = null; + }); + + // Run the browser automation. + this.run(function() { + this.test.done(); + }); +} + casper.options.waitTimeout=10000 casper.on('waitFor.timeout', function onWaitForTimeout(timeout) { this.echo("Timeout for " + casper.get_notebook_server());