From 6fb1328c0355d7f31cfbf89976c80d4d86e40c67 Mon Sep 17 00:00:00 2001
From: Shane Tomlinson <stomlinson@mozilla.com>
Date: Tue, 24 Jan 2012 14:34:54 +0000
Subject: [PATCH] Make sure submit can be called without a callback.

issue #958
---
 .../dialog/controllers/verify_primary_user.js |  3 ++-
 .../cases/controllers/verify_primary_user.js  | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/resources/static/dialog/controllers/verify_primary_user.js b/resources/static/dialog/controllers/verify_primary_user.js
index 35334c579..5721e82c0 100644
--- a/resources/static/dialog/controllers/verify_primary_user.js
+++ b/resources/static/dialog/controllers/verify_primary_user.js
@@ -13,6 +13,7 @@ BrowserID.Modules.VerifyPrimaryUser = (function() {
       email,
       auth_url,
       helpers = bid.Helpers,
+      complete = helpers.complete,
       cancelEvent = helpers.Dialog.cancelEvent;
 
   function verify(callback) {
@@ -29,7 +30,7 @@ BrowserID.Modules.VerifyPrimaryUser = (function() {
 
     win.document.location = url;
 
-    callback();
+    complete(callback);
   }
 
   function cancel(callback) {
diff --git a/resources/static/test/cases/controllers/verify_primary_user.js b/resources/static/test/cases/controllers/verify_primary_user.js
index 9dfe74a0a..de8da5ad9 100644
--- a/resources/static/test/cases/controllers/verify_primary_user.js
+++ b/resources/static/test/cases/controllers/verify_primary_user.js
@@ -74,6 +74,25 @@
     });
   });
 
+  test("submit with no callback", function() {
+    createController({
+      window: win,
+      add: true,
+      email: "unregistered@testuser.com",
+      auth_url: "http://testuser.com/sign_in"
+    });
+
+    var error;
+    try {
+      controller.submit();
+    }
+    catch(e) {
+      error = e;
+    }
+
+    equal(typeof error, "undefined", "error is undefined");
+  });
+
   asyncTest("cancel triggers the cancel_state", function() {
     createController({
       window: win,
-- 
GitLab