diff --git a/src/__tests__/casperjs/casperUtils.js b/src/__tests__/casperjs/casperUtils.js index ff3c83d2..4012534b 100644 --- a/src/__tests__/casperjs/casperUtils.js +++ b/src/__tests__/casperjs/casperUtils.js @@ -55,6 +55,12 @@ var CasperUtils = { }; }, + visibleSelector: function(selector) { + return function then() { + this.test.assertVisible(selector); + }; + }, + existingIDs: function(existingIDs) { return function then() { existingIDs.forEach(function(id) { @@ -77,14 +83,12 @@ var CasperUtils = { entirePage: function () { screenshotCounter++; - var documentBounds = this.evaluate(function() { - return __utils__.getElementBounds('body'); - }); casper.capture('screenshots/entirePage' + screenshotCounter + '.png', { top: 0, left: 0, - height: documentBounds.height, - width: documentBounds.width + // These seem to be the hardcoded viewport dimensions + height: 600, + width: 1000 }); casper.echo('<<< Took screenshot ' + screenshotCounter + ' >>>', 'COMMENT'); } @@ -121,7 +125,6 @@ var CasperUtils = { return this.evaluate(function() { var allVisible = true; for (var i = 0; i < ids.length; i++) { - allVisible = allVisible && __utils__.exists('#' + ids[i]); allVisible = allVisible && __utils__.visible('#' + ids[i]); } return allVisible; diff --git a/src/__tests__/casperjs/level_start_test.js b/src/__tests__/casperjs/level_start_test.js new file mode 100644 index 00000000..4a52a833 --- /dev/null +++ b/src/__tests__/casperjs/level_start_test.js @@ -0,0 +1,35 @@ +var CasperUtils = require('./casperUtils').CasperUtils; + +casper.start( + CasperUtils.getUrlForCommands([ + 'level intro1 --noIntroDialog --noStartCommand', + ]), + function() { + casper.waitFor(CasperUtils.waits.jsMount) + .waitFor(CasperUtils.waits.allCommandsFinished) + .then(CasperUtils.asserts.visibleSelectors([ + 'p.commandLine.finished', + 'div.levelNameWrapper' + ])) + .then(CasperUtils.screenshot.entirePage) + .then(function() { + this.mouse.click('#show-goal') + }) + .then(CasperUtils.waits.selectorVisible( + 'p.helperText' + )) + .wait(1000) + .then(CasperUtils.screenshot.entirePage) + .then(CasperUtils.asserts.visibleSelector('p.helperText')) + .then(function() { + var text = this.evaluate(function() { + return document.querySelector('p.helperText').innerText; + }); + casper.echo(text); + this.test.assert( + text === 'You can hide this window with "hide goal"' + ); + }) + .then(CasperUtils.testDone); +}).run(); + diff --git a/src/__tests__/casperjs/levels_test.js b/src/__tests__/casperjs/levels_test.js index 9ca3fc70..704ccadb 100644 --- a/src/__tests__/casperjs/levels_test.js +++ b/src/__tests__/casperjs/levels_test.js @@ -31,6 +31,7 @@ casper.start( casper.waitFor(CasperUtils.waits.jsMount) .waitFor(CasperUtils.waits.commandVisible) + .wait(1000) .then( CasperUtils.multiAssert( CasperUtils.asserts.visibleSelectors([ @@ -46,8 +47,10 @@ casper.start( this.mouse.click('div[data-id="remote"]'); }) .then(CasperUtils.waits.idVisible('levelIcon-remote1')) - .then(CasperUtils.waits.idsVisible( + .wait(1000) + .then(CasperUtils.asserts.visibleIDs( levelIconIDsForPages(5, numLevelSequences) )) + .then(CasperUtils.screenshot.entirePage) .then(CasperUtils.testDone); }).run();