From 8493b51ec28445b9be3f2543ff047bf0dc443200 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Sat, 28 Mar 2015 13:59:19 -0700 Subject: [PATCH] mysterious casperjs errors.... --- Gruntfile.js | 1 + src/__tests__/casperjs/casperUtils.js | 27 +++++++++++++- src/__tests__/casperjs/locale_header_test.js | 37 +++++++++++++------ .../casperjs/locale_uri_param_test.js | 20 ++++++++++ src/js/__tests__/LocaleStore.spec.js | 4 -- src/js/actions/LocaleActions.js | 7 ++++ src/js/app/index.js | 2 +- 7 files changed, 80 insertions(+), 18 deletions(-) create mode 100644 src/__tests__/casperjs/locale_uri_param_test.js diff --git a/Gruntfile.js b/Gruntfile.js index 326ff769..363e73d3 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -149,6 +149,7 @@ module.exports = function(grunt) { browser: true, debug: true, globals: { + casper: true, Raphael: true, require: true, console: true, diff --git a/src/__tests__/casperjs/casperUtils.js b/src/__tests__/casperjs/casperUtils.js index afb34b1a..c2693027 100644 --- a/src/__tests__/casperjs/casperUtils.js +++ b/src/__tests__/casperjs/casperUtils.js @@ -12,7 +12,15 @@ var CasperUtils = { }, getUrl: function () { - return 'file://localhost/' + this.getRoot() + '/index.html?NODEMO'; + return 'file://localhost/' + this.getRoot() + 'index.html?NODEMO'; + }, + + getUrlWithQueryParams: function(params) { + var paramsString = ''; + Object.keys(params).forEach(function(key) { + paramsString = paramsString + '&' + key + '=' + params[key]; + }); + return this.getUrl() + paramsString; }, getUrlForCommands: function(commands) { @@ -40,6 +48,7 @@ var CasperUtils = { }, asserts: { + visibleIDs: function(visibleIDs) { return function then() { visibleIDs.forEach(function(id) { @@ -62,6 +71,22 @@ 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, + 'Checking that selector "' + selector + '" contains "' + + text + '".', + {selector: selector} + ); + }; + }, + existingIDs: function(existingIDs) { return function then() { existingIDs.forEach(function(id) { diff --git a/src/__tests__/casperjs/locale_header_test.js b/src/__tests__/casperjs/locale_header_test.js index 8d73d937..09989f88 100644 --- a/src/__tests__/casperjs/locale_header_test.js +++ b/src/__tests__/casperjs/locale_header_test.js @@ -1,5 +1,9 @@ var CasperUtils = require('./casperUtils').CasperUtils; +/** + * TODO(pcottle) -- find a way to get this from + * LocaleStore but not have the import error + */ var langLocaleMap = { en: 'en_US', zh: 'zh_CN', @@ -11,12 +15,11 @@ var langLocaleMap = { pt: 'pt_BR' }; -/* var headerLocaleMap = { 'zh-CN': 'zh_CN', 'zh-TW': 'zh_TW', 'pt-BR': 'pt_BR' - };*/ +}; casper.start( CasperUtils.getUrl(), @@ -24,21 +27,31 @@ casper.start( this.test.assertTitle('Learn Git Branching'); casper.waitFor(CasperUtils.waits.jsMount) - .then(CasperUtils.asserts.visibleIDs([ - 'commandLineHistory', - ])) .then(function() { - Object.keys(langLocaleMap).forEach(function(lang) { - var locale = langLocaleMap[lang]; - this.test.assertEvalEquals(function(lang) { - debug_LocaleActions_changeLocaleFromHeader(lang); - return debug_LocaleStore_getLocale(); - }, + var locale = langLocaleMap[lang]; + this.test.assertEvalEquals(function(lang) { + debug_LocaleActions_changeLocaleFromHeader(lang); + return debug_LocaleStore_getLocale(); + }, locale, 'Testing changing store locale from ' + lang + ' to ' + locale, - { lang: lang } + {lang: lang} + ); + }.bind(this)); + }) + .then(function() { + Object.keys(headerLocaleMap).forEach(function(header) { + var locale = headerLocaleMap[header]; + this.test.assertEvalEquals(function(header) { + debug_LocaleActions_changeLocaleFromHeader(header); + return debug_LocaleStore_getLocale(); + }, + locale, + 'Testing changing store locale from ' + header + + ' to ' + locale, + {header: header} ); }.bind(this)); }) diff --git a/src/__tests__/casperjs/locale_uri_param_test.js b/src/__tests__/casperjs/locale_uri_param_test.js new file mode 100644 index 00000000..5abb1340 --- /dev/null +++ b/src/__tests__/casperjs/locale_uri_param_test.js @@ -0,0 +1,20 @@ +var CasperUtils = require('./casperUtils').CasperUtils; + +casper.start( + CasperUtils.getUrlForCommands([ + '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.selectorContainsText( + // The title bar on command line history + 'span[data-intl="learn-git-branching"]', + "APRENDÉ A BRANCHEAR EN GIT" + )) + .then(CasperUtils.testDone); + +}).run(); diff --git a/src/js/__tests__/LocaleStore.spec.js b/src/js/__tests__/LocaleStore.spec.js index cf7dc591..da08162a 100644 --- a/src/js/__tests__/LocaleStore.spec.js +++ b/src/js/__tests__/LocaleStore.spec.js @@ -1,10 +1,6 @@ -var AppConstants = require('../constants/AppConstants'); -var AppDispatcher = require('../dispatcher/AppDispatcher'); var LocaleActions = require('../actions/LocaleActions'); var LocaleStore = require('../stores/LocaleStore'); -var ActionTypes = AppConstants.ActionTypes; - describe('LocaleStore', function() { it('has default locale', function() { diff --git a/src/js/actions/LocaleActions.js b/src/js/actions/LocaleActions.js index 5f17977e..1d067ad5 100644 --- a/src/js/actions/LocaleActions.js +++ b/src/js/actions/LocaleActions.js @@ -14,6 +14,13 @@ var LocaleActions = { }); }, + changeLocaleFromURI: function(newLocale) { + AppDispatcher.handleURIAction({ + type: ActionTypes.CHANGE_LOCALE, + locale: newLocale + }); + }, + changeLocaleFromHeader: function(header) { AppDispatcher.handleViewAction({ type: ActionTypes.CHANGE_LOCALE_FROM_HEADER, diff --git a/src/js/app/index.js b/src/js/app/index.js index 23559c5a..af87aaa7 100644 --- a/src/js/app/index.js +++ b/src/js/app/index.js @@ -217,7 +217,7 @@ var initDemo = function(sandbox) { } if (params.locale !== undefined && params.locale.length) { - LocaleActions.changeLocale(params.locale); + LocaleActions.changeLocaleFromURI(params.locale); } else { tryLocaleDetect(); }