diff --git a/resources/static/test/cases/controllers/pick_email.js b/resources/static/test/cases/controllers/pick_email.js index 0e6f1b0c1a2de7b2fe365852383be493163b5fbe..9d3678f8c2c53b28dc7fc9c2d4050513038082ef 100644 --- a/resources/static/test/cases/controllers/pick_email.js +++ b/resources/static/test/cases/controllers/pick_email.js @@ -32,11 +32,9 @@ }); - function createController(allowPersistent) { + function createController() { controller = bid.Modules.PickEmail.create(); - controller.start({ - allow_persistent: allowPersistent || false - }); + controller.start({}); } test("multiple emails - print emails in alphabetical order", function() { @@ -78,73 +76,26 @@ equal(label.hasClass("preselected"), false, "the label has no class"); }); - function testRemember(allowPersistent, remember) { + asyncTest("signIn - saves picked email to storage", function() { storage.addEmail("testuser@testuser.com", {}); storage.addEmail("testuser2@testuser.com", {}); - storage.site.set(testOrigin, "remember", remember); - - createController(allowPersistent); - - // remember can only be checked if allowPersistent is allowed - var rememberChecked = allowPersistent ? remember : false; - - equal($("#remember").is(":checked"), rememberChecked, "remember should " + (rememberChecked ? "" : " not " ) + " be checked"); - } - - test("pickemail controller with allow_persistent and remember set to false", function() { - testRemember(false, false); - }); - - test("pickemail controller with allow_persistent set to false and remember set to true", function() { - testRemember(false, true); - }); - - test("pickemail controller with allow_persistent and remember set to true", function() { - testRemember(true, true); - }); - - asyncTest("signIn saves email, remember status to storage when allow_persistent set to true", function() { - storage.addEmail("testuser@testuser.com", {}); - storage.addEmail("testuser2@testuser.com", {}); - - createController(true); + createController(); $("input[type=radio]").eq(0).trigger("click"); - $("#remember").attr("checked", true); var assertion; register("email_chosen", function(msg, info) { equal(storage.site.get(testOrigin, "email"), "testuser2@testuser.com", "email saved correctly"); - equal(storage.site.get(testOrigin, "remember"), true, "remember saved correctly"); ok(info.email, "email_chosen message triggered with email"); start(); }); controller.signIn(); }); - asyncTest("signIn saves email, but not remember status when allow_persistent set to false", function() { - storage.addEmail("testuser@testuser.com", {}); - storage.addEmail("testuser2@testuser.com", {}); - storage.site.set(testOrigin, "remember", false); - - createController(false); - - $("input[type=radio]").eq(0).trigger("click"); - $("#remember").attr("checked", true); - - register("email_chosen", function(msg, info) { - equal(storage.site.get(testOrigin, "email"), "testuser2@testuser.com", "email saved correctly"); - equal(storage.site.get(testOrigin, "remember"), false, "remember saved correctly"); - - start(); - }); - controller.signIn(); - }); - asyncTest("addEmail triggers an 'add_email' message", function() { - createController(false); + createController(); register("add_email", function(msg, info) { ok(true, "add_email triggered"); @@ -157,7 +108,7 @@ storage.addEmail("testuser2@testuser.com", {}); storage.addEmail("testuser@testuser.com", {}); - createController(false); + createController(); equal($("#email_1").is(":checked"), false, "radio button is not selected before click."); @@ -174,7 +125,7 @@ storage.addEmail("testuser+test0@testuser.com", {}); storage.addEmail("testuser+test1@testuser.com", {}); - createController(false); + createController(); equal($("#email_1").is(":checked"), false, "radio button is not selected before click."); @@ -187,30 +138,5 @@ equal($("#email_0").is(":checked"), true, "radio button is correctly selected"); }); - test("click on the 'Always sign in...' label and checkbox - correct toggling", function() { - createController(true); - - var label = $("label[for=remember]"), - checkbox = $("#remember").removeAttr("checked"); - - equal(checkbox.is(":checked"), false, "checkbox is not yet checked"); - - // toggle checkbox to on clicking on label - label.trigger("click"); - equal(checkbox.is(":checked"), true, "checkbox is correctly checked"); - - // toggle checkbox to off clicking on label - label.trigger("click"); - equal(checkbox.is(":checked"), false, "checkbox is correctly unchecked"); - - // toggle checkbox to on clicking on checkbox - checkbox.trigger("click"); - equal(checkbox.is(":checked"), true, "checkbox is correctly checked"); - - // toggle checkbox to off clicking on checkbox - checkbox.trigger("click"); - equal(checkbox.is(":checked"), false, "checkbox is correctly unchecked"); - }); - }()); diff --git a/resources/static/test/cases/include.js b/resources/static/test/cases/include.js index 5c54c0bcfc9a4ac47cb3acb4b5bf3896827a030e..42aa6c6562488a4dfba94cba7b438641c8d0ba02 100644 --- a/resources/static/test/cases/include.js +++ b/resources/static/test/cases/include.js @@ -12,10 +12,18 @@ equal(typeof navigator.id, "object", "navigator.id namespace is available"); }); - test("navigator.id.getVerifiedEmail is available", function() { - equal(typeof navigator.id.getVerifiedEmail, "function", "navigator.id.getVerifiedEmail is available"); + test("expected public API functions available", function() { + _.each([ + "get", + "request", + "setLoggedInUser", + "logout", + "addEventListener", + "removeEventListener" + ], function(item, index) { + equal(typeof navigator.id[ item ], "function", "navigator.id." + item + " is available"); + }); }); - }()); diff --git a/resources/static/test/cases/resources/state.js b/resources/static/test/cases/resources/state.js index c951c5ec98f1b11a55af5b52b98c58a17522a534..a0c7575a9d8b4a306e82ffb24f8decaa2a84fd3a 100644 --- a/resources/static/test/cases/resources/state.js +++ b/resources/static/test/cases/resources/state.js @@ -164,11 +164,12 @@ ok(actions.called.doEmailChosen, "doEmailChosen called"); }); - test("authenticated - call doEmailChosen", function() { - storage.addEmail("testuser@testuser.com", {}); + asyncTest("authenticated - defer to `email_chosen`", function() { + mediator.subscribe("email_chosen", function(msg, data) { + equal(data.email, "testuser@testuser.com"); + start(); + }); mediator.publish("authenticated", { email: "testuser@testuser.com" }); - - ok(actions.called.doEmailChosen, "doEmailChosen has been called"); }); test("forgot_password", function() { @@ -355,11 +356,17 @@ }); test("null assertion generated - preserve original options in doPickEmail", function() { - mediator.publish("start", { allowPersistent: true }); + mediator.publish("start", { + hostname: "http://example.com", + privacyURL: "http://example.com/priv.html", + tosURL: "http://example.com/tos.html" + }); mediator.publish("assertion_generated", { assertion: null }); equal(actions.called.doPickEmail, true, "doPickEmail callled"); - equal(actions.info.doPickEmail.allow_persistent, true, "allow_persistent preserved"); + equal(actions.info.doPickEmail.origin, "http://example.com", "hostname preserved"); + equal(actions.info.doPickEmail.privacyURL, "http://example.com/priv.html", "privacyURL preserved"); + equal(actions.info.doPickEmail.tosURL, "http://example.com/tos.html", "tosURL preserved"); }); }()); diff --git a/resources/static/test/cases/shared/user.js b/resources/static/test/cases/shared/user.js index 3fd25130ee4260378c98effe2d0e7e06eaccf052..976b55de08e10a565d26acedbfcabf42e1a40b1e 100644 --- a/resources/static/test/cases/shared/user.js +++ b/resources/static/test/cases/shared/user.js @@ -1015,95 +1015,22 @@ var vep = require("./vep"); failureCheck(lib.cancelUser); }); - asyncTest("getPersistentSigninAssertion with invalid login - expect null assertion", function() { - xhr.setContextInfo("auth_level", undefined); - - lib.syncEmailKeypair("testuser@testuser.com", function() { - storage.site.set(testOrigin, "remember", false); - storage.site.set(testOrigin, "email", "testuser@testuser.com"); - xhr.useResult("invalid"); - - lib.getPersistentSigninAssertion(function onComplete(assertion) { - strictEqual(assertion, null, "assertion with invalid login is null"); - start(); - }, testHelpers.unexpectedXHRFailure); - }, testHelpers.unexpectedXHRFailure); - }); - - asyncTest("getPersistentSigninAssertion without email set for site - expect null assertion", function() { - xhr.setContextInfo("auth_level", "primary"); - storage.site.set(testOrigin, "remember", true); - storage.site.remove(testOrigin, "email"); - - lib.getPersistentSigninAssertion(function onComplete(assertion) { - strictEqual(assertion, null, "assertion with no email is null"); - start(); - }, testHelpers.unexpectedXHRFailure); - }); - - asyncTest("getPersistentSigninAssertion without remember set for site - expect null assertion", function() { - xhr.setContextInfo("auth_level", "primary"); - lib.syncEmailKeypair("testuser@testuser.com", function() { - storage.site.set(testOrigin, "remember", false); - storage.site.set(testOrigin, "email", "testuser@testuser.com"); - // invalidate the email so that we force a fresh key certification with - // the server - storage.invalidateEmail("testuser@testuser.com"); - - lib.getPersistentSigninAssertion(function onComplete(assertion) { - strictEqual(assertion, null, "assertion with remember=false is null"); - start(); - }, testHelpers.unexpectedXHRFailure); - }); - }); - - asyncTest("getPersistentSigninAssertion with valid login, email, and remember set to true - expect assertion", function() { - xhr.setContextInfo("auth_level", "primary"); - lib.syncEmailKeypair("testuser@testuser.com", function() { - storage.site.set(testOrigin, "remember", true); - storage.site.set(testOrigin, "email", "testuser@testuser.com"); - // invalidate the email so that we force a fresh key certification with - // the server - storage.invalidateEmail("testuser@testuser.com"); - - lib.getPersistentSigninAssertion(function onComplete(assertion) { - ok(assertion, "we have an assertion!"); - start(); - }, testHelpers.unexpectedXHRFailure); - }); - }); - - asyncTest("getPersistentSigninAssertion with XHR failure", function() { - xhr.setContextInfo("auth_level", "primary"); - lib.syncEmailKeypair("testuser@testuser.com", function() { - storage.site.set(testOrigin, "remember", true); - storage.site.set(testOrigin, "email", "testuser@testuser.com"); - // invalidate the email so that we force a fresh key certification with - // the server - storage.invalidateEmail("testuser@testuser.com"); - - failureCheck(lib.getPersistentSigninAssertion); - }); - - - }); - asyncTest("clearPersistentSignin with invalid login", function() { + asyncTest("logout with invalid login", function() { xhr.setContextInfo("auth_level", undefined); - lib.clearPersistentSignin(function onComplete(success) { + lib.logout(function onComplete(success) { strictEqual(success, false, "success with invalid login is false"); start(); }, testHelpers.unexpectedXHRFailure); }); - asyncTest("clearPersistentSignin with valid login with remember set to true", function() { + asyncTest("logout with valid login with remember set to true", function() { xhr.setContextInfo("auth_level", "primary"); storage.site.set(testOrigin, "remember", true); - lib.clearPersistentSignin(function onComplete(success) { + lib.logout(function onComplete(success) { strictEqual(success, true, "success flag good"); - strictEqual(storage.site.get(testOrigin, "remember"), false, "remember flag set to false"); start(); }, testHelpers.unexpectedXHRFailure); }); diff --git a/resources/static/test/mocks/xhr.js b/resources/static/test/mocks/xhr.js index 6b82fb2362359f5607173d8f1a2679a60c50160c..16c59dbcf5896e1e8427df3f36966be9ae3708ae 100644 --- a/resources/static/test/mocks/xhr.js +++ b/resources/static/test/mocks/xhr.js @@ -141,7 +141,7 @@ BrowserID.Mocks.xhr = (function() { }; - if(type === "post" && !obj.data.csrf) { + if(type === "post" && obj.data.indexOf("csrf") === -1) { ok(false, "missing csrf token on POST request"); }