From 02f1a9077b40ffc534a7282ad0e8203e94a1ebd4 Mon Sep 17 00:00:00 2001 From: Shane Tomlinson <stomlinson@mozilla.com> Date: Sat, 30 Jun 2012 18:17:13 +0100 Subject: [PATCH] Fix the front end tests not completing. The changes to wait for entropy from the backend were not expected on the front end tests. Now before trying to get a certificate for a primary, make sure "session_context" has been called. --- .../js/modules/provision_primary_user.js | 61 +++++++++++-------- resources/static/test/mocks/provisioning.js | 4 +- 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/resources/static/test/cases/dialog/js/modules/provision_primary_user.js b/resources/static/test/cases/dialog/js/modules/provision_primary_user.js index f5464f916..9a54c32b0 100644 --- a/resources/static/test/cases/dialog/js/modules/provision_primary_user.js +++ b/resources/static/test/cases/dialog/js/modules/provision_primary_user.js @@ -10,6 +10,7 @@ bid = BrowserID, storage = bid.Storage, user = bid.User, + network = bid.Network, register = bid.TestHelpers.register, xhr = bid.Mocks.xhr, mediator = bid.Mediator, @@ -55,47 +56,53 @@ }); asyncTest("create controller with all fields specified, user authenticated with primary - expected user provisioned", function() { - provisioning.setStatus(provisioning.AUTHENTICATED); + network.withContext(function() { + provisioning.setStatus(provisioning.AUTHENTICATED); - mediator.subscribe("primary_user_provisioned", function(msg, info) { - ok(info.assertion, "assertion available"); - equal(info.email, "unregistered@testuser.com", "email available"); - start(); - }); + mediator.subscribe("primary_user_provisioned", function(msg, info) { + ok(info.assertion, "assertion available"); + equal(info.email, "unregistered@testuser.com", "email available"); + start(); + }); - createController({ - email: "unregistered@testuser.com", - auth: "https://auth_url", - prov: "https://prov_url" + createController({ + email: "unregistered@testuser.com", + auth: "https://auth_url", + prov: "https://prov_url" + }); }); }); asyncTest("create controller with all fields specified, user not authenticated with primary - expected user must authenticate", function() { - provisioning.setStatus(provisioning.NOT_AUTHENTICATED); + network.withContext(function() { + provisioning.setStatus(provisioning.NOT_AUTHENTICATED); - mediator.subscribe("primary_user_unauthenticated", function(msg, info) { - equal(info.auth_url, "https://auth_url", "primary information fetched"); - start(); - }); + mediator.subscribe("primary_user_unauthenticated", function(msg, info) { + equal(info.auth_url, "https://auth_url", "primary information fetched"); + start(); + }); - createController({ - email: "unregistered@testuser.com", - auth: "https://auth_url", - prov: "https://prov_url" + createController({ + email: "unregistered@testuser.com", + auth: "https://auth_url", + prov: "https://prov_url" + }); }); }); asyncTest("create controller with missing auth/prov, user authenticated with primary - expected to request provisioning info from backend, user provisioned", function() { - xhr.useResult("primary"); - provisioning.setStatus(provisioning.AUTHENTICATED); + network.withContext(function() { + xhr.useResult("primary"); + provisioning.setStatus(provisioning.AUTHENTICATED); - mediator.subscribe("primary_user_provisioned", function(msg, info) { - equal(info.email, "unregistered@testuser.com", "user is provisioned after requesting info from backend"); - start(); - }); + mediator.subscribe("primary_user_provisioned", function(msg, info) { + equal(info.email, "unregistered@testuser.com", "user is provisioned after requesting info from backend"); + start(); + }); - createController({ - email: "unregistered@testuser.com" + createController({ + email: "unregistered@testuser.com" + }); }); }); }()); diff --git a/resources/static/test/mocks/provisioning.js b/resources/static/test/mocks/provisioning.js index a752881df..c6413958b 100644 --- a/resources/static/test/mocks/provisioning.js +++ b/resources/static/test/mocks/provisioning.js @@ -34,11 +34,13 @@ BrowserID.Mocks.Provisioning = (function() { if (cb) cb(); } else if(newStatus === Provisioning.AUTHENTICATED) { - if (!keypair) + if (!keypair) { jwcrypto.generateKeypair({algorithm: "DS", keysize: 256}, function(err, kp) { keypair = kp; if (cb) cb(); }); + } + else if (cb) cb(); } }; -- GitLab