diff --git a/resources/static/dialog/controllers/primary_user_provisioned.js b/resources/static/dialog/controllers/primary_user_provisioned.js index 5e12f8c67626297f7b2b0a2d63e2e83753b292a6..e5722a0a58da144f5d30a328c66d314bae9bad9e 100644 --- a/resources/static/dialog/controllers/primary_user_provisioned.js +++ b/resources/static/dialog/controllers/primary_user_provisioned.js @@ -22,7 +22,8 @@ BrowserID.Modules.PrimaryUserProvisioned = (function() { addEmailToCurrentUser = !!options.add, complete = function(status) { options.ready && options.ready(status || false); - }; + }, + delay = options.complete_delay || 3000; self.checkRequired(options, "email", "assertion"); @@ -31,7 +32,9 @@ BrowserID.Modules.PrimaryUserProvisioned = (function() { if(addEmailToCurrentUser) { network.addEmailWithAssertion(assertion, function(status) { if(status) { - self.publish("primary_user_ready", options); + setTimeout(function() { + self.publish("primary_user_ready", options); + }, delay); } else { self.getErrorDialog(errors.addEmailWithAssertion, complete)(); @@ -41,7 +44,9 @@ BrowserID.Modules.PrimaryUserProvisioned = (function() { else { network.authenticateWithAssertion(email, assertion, function(status) { if(status) { - self.publish("primary_user_ready", options); + setTimeout(function() { + self.publish("primary_user_ready", options); + }, delay); } else { self.getErrorDialog(errors.authenticateWithAssertion, complete)(); diff --git a/resources/static/test/cases/controllers/primary_user_provisioned.js b/resources/static/test/cases/controllers/primary_user_provisioned.js index bdd5f60cf6b446c886528e9038eda876d36d1294..fb228c05c1ed1a9a2e25648e2cc88547fc53989c 100644 --- a/resources/static/test/cases/controllers/primary_user_provisioned.js +++ b/resources/static/test/cases/controllers/primary_user_provisioned.js @@ -37,6 +37,8 @@ function createController(config) { controller = bid.Modules.PrimaryUserProvisioned.create(); + config = config || {}; + config.complete_delay = 1; controller.start(config); }