diff --git a/src/__tests__/casperjs/casperUtils.js b/src/__tests__/casperjs/casperUtils.js index ef8a6fb0..6e3a9d10 100644 --- a/src/__tests__/casperjs/casperUtils.js +++ b/src/__tests__/casperjs/casperUtils.js @@ -78,6 +78,20 @@ var CasperUtils = { }; }, + selectorMatchesRegex: function(selector, regex) { + return function then() { + this.test.assertEvalEquals(function(selector, regex) { + return !!document.querySelector(selector).innerText + .match(regex); + }, + true, + 'Checking that selector "' + selector + '" matches regex "' + + regex + '".', + {selector: selector, regex: regex} + ); + }; + }, + selectorContainsText: function(selector, text) { return function then() { this.test.assertEvalEquals(function(selector) { diff --git a/src/__tests__/casperjs/command_history_test.js b/src/__tests__/casperjs/command_history_test.js new file mode 100644 index 00000000..7e8b5c97 --- /dev/null +++ b/src/__tests__/casperjs/command_history_test.js @@ -0,0 +1,25 @@ +var CasperUtils = require('./casperUtils').CasperUtils; + +casper.start( + CasperUtils.getUrl(), + function() { + this.test.assertTitle('Learn Git Branching'); + + casper.waitFor(CasperUtils.waits.jsMount) + .wait(300) + .then(CasperUtils.enterCommand('git commit')) + .wait(800) + .then(CasperUtils.screenshot.entirePage) + .then(function() { + this.page.sendEvent('keypress', this.page.event.key.Up); + }) + .wait(700) + .then(CasperUtils.screenshot.entirePage) + // Our command got remembered + .then(CasperUtils.asserts.selectorMatchesRegex( + '#commandLineBar p.command', + // some weird whitespace conversion of non-breaking space + /git\scommit/g + )) + .then(CasperUtils.testDone); +}).run();