diff --git a/Gruntfile.js b/Gruntfile.js index 363e73d3..7c435591 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -199,7 +199,7 @@ module.exports = function(grunt) { command: 'git add build/' }, casperTest: { - command: 'casperjs test ./src/__tests__/casperjs/*.js || ' + + command: 'casperjs test ./src/__tests__/casperjs/*_test.js || ' + 'open ./src/__tests__/casperjs/screenshots/*.png' } }, diff --git a/src/__tests__/casperjs/casperUtils.js b/src/__tests__/casperjs/casperUtils.js index c2693027..fe7460dc 100644 --- a/src/__tests__/casperjs/casperUtils.js +++ b/src/__tests__/casperjs/casperUtils.js @@ -8,7 +8,7 @@ var CasperUtils = { // Unfortunately this is hardcoded for now :*( cant get the path // variable synchronously when running this test, and CasperJS does // not like being started asynchronously. - return '/Users/pcottle/Dropbox/wip/learnGitBranching/'; + return '/Users/pcottle/Dropbox (Personal)/wip/learnGitBranching/'; }, getUrl: function () { @@ -74,9 +74,6 @@ var CasperUtils = { selectorContainsText: function(selector, text) { return function then() { this.test.assertEvalEquals(function(selector) { - __utils__.echo('hellow'); - __utils__.echo('hellow' + selector); - __utils__.echo(document.querySelector(selector).innerText); return document.querySelector(selector).innerText; }, text, @@ -87,6 +84,19 @@ var CasperUtils = { }; }, + intlKeyReturns: function(key, text) { + return function then() { + this.test.assertEvalEquals(function(key) { + return debug_Intl_str(key); + }, + text, + 'Checking that intl key "' + key + '" contains "' + + text + '".', + {key: key} + ); + }; + }, + existingIDs: function(existingIDs) { return function then() { existingIDs.forEach(function(id) { @@ -171,7 +181,7 @@ var CasperUtils = { return document.querySelectorAll('p.commandLine').length > 0; }); } - }, + } }; diff --git a/src/__tests__/casperjs/locale_uri_param_test.js b/src/__tests__/casperjs/locale_uri_param_test.js index 5abb1340..f0b9c9ce 100644 --- a/src/__tests__/casperjs/locale_uri_param_test.js +++ b/src/__tests__/casperjs/locale_uri_param_test.js @@ -1,19 +1,19 @@ var CasperUtils = require('./casperUtils').CasperUtils; casper.start( - CasperUtils.getUrlForCommands([ - 'locale fr_FR' - ]), + CasperUtils.getUrlWithQueryParams({ + locale: 'fr_FR', + }), function() { this.test.assertTitle('Learn Git Branching'); casper.waitFor(CasperUtils.waits.jsMount) - .then(CasperUtils.screenshot.entirePage) - .wait(3000) - .then(CasperUtils.screenshot.entirePage) + .then(CasperUtils.asserts.intlKeyReturns( + 'learn-git-branching', + "Apprenez Git Branching" + )) .then(CasperUtils.asserts.selectorContainsText( - // The title bar on command line history 'span[data-intl="learn-git-branching"]', - "APRENDÉ A BRANCHEAR EN GIT" + "APPRENEZ GIT BRANCHING" )) .then(CasperUtils.testDone); diff --git a/src/js/app/index.js b/src/js/app/index.js index af87aaa7..cc135596 100644 --- a/src/js/app/index.js +++ b/src/js/app/index.js @@ -41,7 +41,11 @@ var init = function() { wait: true }); - LocaleStore.subscribe(intlRefresh); + LocaleStore.subscribe(function() { + if (LocaleStore.getLocale() !== LocaleStore.getDefaultLocale()) { + intlRefresh(); + } + }); events.on('vcsModeChange', vcsModeRefresh); initRootEvents(eventBaton); @@ -64,7 +68,6 @@ var vcsModeRefresh = function(eventData) { }; var intlRefresh = function() { - console.log('refreshing inlt'); if (!window.$) { return; } $('span.intl-aware').each(function(i, el) { var intl = require('../intl'); diff --git a/src/js/util/debug.js b/src/js/util/debug.js index ea9a05f0..88b40b60 100644 --- a/src/js/util/debug.js +++ b/src/js/util/debug.js @@ -30,6 +30,7 @@ var toGlobalize = { LevelDropdownView: require('../views/levelDropdownView'), BuilderViews: require('../views/builderViews'), LevelArbiter: require('../level/arbiter'), + Util: require('../util/index'), Intl: require('../intl') }; diff --git a/src/js/views/levelDropdownView.js b/src/js/views/levelDropdownView.js index d19004fc..2b7354fc 100644 --- a/src/js/views/levelDropdownView.js +++ b/src/js/views/levelDropdownView.js @@ -69,11 +69,16 @@ var LevelDropdownView = ContainedBase.extend({ title: intl.str('select-a-level') }); + // Lol WTF. For some reason we cant use this.render.bind(this) so + // instead setup a lame callback version. The CasperJS tests + // fail otherwise. + var that = this; + LocaleStore.subscribe(function() { + that.render.apply(that); + }); this.render(); Main.getEvents().on('resetMapSolved', this.render, this); - LocaleStore.subscribe(this.render.bind(this)); - if (!options.wait) { this.show(); }