From 15df3c0b618c6343acdb02f220659606428e8835 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sat, 18 Mar 2017 23:37:48 +0000 Subject: [PATCH] Execute functional tests using casperjs --- tests.js | 45 ++++++++++++++++++++++ .travis.yml | 17 ++++++++ 2 files changed, 62 insertions(+), 0 deletions(-) diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..3b2dc96 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,17 @@ +language: php +php: + - 5.4 + - 5.5 + - 5.6 + - 7.0 + - nightly + +sudo: required + +before_script: + - 'php -S 127.0.0.1:8080 &' + - 'nvm install stable' + - 'npm install casperjs' + +script: + - 'node_modules/casperjs/bin/casperjs tests.js' diff --git a/tests.js b/tests.js new file mode 100644 index 0000000..3d304b2 --- /dev/null +++ b/tests.js @@ -0,0 +1,45 @@ +casper.test.begin('Stop name autocompletion', 4, function(test) { + casper.start('http://127.0.0.1:8080/', function() { + test.assertTitleMatches(/^TTSS\s/, 'Page title: TTSS...'); + }); + + var autocomplete_pairs = [ + ['bag', 'Teatr Bagatela'], + ['d g', 'Dworzec Główny'], + ['świę', 'Plac Wszystkich Świętych'], + ]; + + autocomplete_pairs.forEach(function(value) { + casper.then(function() { + this.sendKeys('#stop-name', value[0], {reset: true}); + }).wait(200, function() { + test.assertSelectorHasText( + '#stop-name-autocomplete > option', + value[1], + 'Autocomplete: ' + value[1] + ); + }); + }); + + casper.run(function() { + test.done(); + }); +}); + +casper.test.begin('Translation engine', 2, function(test) { + casper.start('http://127.0.0.1:8080/#!pl', function() { + test.assertTitleMatches(/odjazdy/i, 'Page title: ...odjazdy...'); + }); + + casper.wait(200, function() { + test.assertSelectorHasText( + '[data-translate=header_lines]', + 'Linie', + 'Translation: Lines -> Linie' + ); + }); + + casper.run(function() { + test.done(); + }); +}); -- Gitblit v1.9.1