Bug 1319107 fix default value for getRedirectURL, r?kmag draft
authorShane Caraveo <scaraveo@mozilla.com>
Tue, 22 Nov 2016 11:43:06 -0800
changeset 442558 5f53728a080b2f7f8795c62e5c30bc449eff5ed5
parent 442068 0534254e9a40b4bade2577c631fe4cfa0b5db41d
child 442612 ebab5f747bc0fed4a1d7671e258871b19ee6977b
child 442631 01b436128c7edc36468b8160b289faed1be606c6
child 442677 6201544e0acc4749d1928fc1ed2f251abe9a8fea
push id36735
push usermixedpuppy@gmail.com
push dateTue, 22 Nov 2016 19:43:41 +0000
reviewerskmag
bugs1319107
milestone53.0a1
Bug 1319107 fix default value for getRedirectURL, r?kmag MozReview-Commit-ID: Iv4rgaSOTJz
toolkit/components/extensions/schemas/identity.json
toolkit/components/extensions/test/mochitest/test_chrome_ext_identity.html
--- a/toolkit/components/extensions/schemas/identity.json
+++ b/toolkit/components/extensions/schemas/identity.json
@@ -182,16 +182,17 @@
       {
         "name": "getRedirectURL",
         "type": "function",
         "description": "Generates a redirect URL to be used in |launchWebAuthFlow|.",
         "parameters": [
           {
             "name": " path",
             "type": "string",
+            "default": "",
             "optional": true,
             "description": "The path appended to the end of the generated URL. "
           }
         ],
         "returns": {
           "string": "path"
         }
       }
--- a/toolkit/components/extensions/test/mochitest/test_chrome_ext_identity.html
+++ b/toolkit/components/extensions/test/mochitest/test_chrome_ext_identity.html
@@ -31,16 +31,52 @@ add_task(function* test_noPermission() {
   yield extension.startup();
   yield extension.awaitMessage("done");
   yield extension.unload();
 });
 
 add_task(function* test_badAuthURI() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
+      "applications": {
+        "gecko": {
+          "id": "identity@mozilla.org",
+        },
+      },
+      "permissions": [
+        "identity",
+        "https://example.com/",
+      ],
+    },
+    async background() {
+      let redirect_base = "https://35b64b676900f491c00e7f618d43f7040e88422e.example.com/";
+      await browser.test.assertEq(redirect_base,
+                                  browser.identity.getRedirectURL(),
+                                  "redirect url ok");
+      await browser.test.assertEq(redirect_base,
+                                  browser.identity.getRedirectURL(""),
+                                  "redirect url ok");
+      await browser.test.assertEq(redirect_base + "foobar",
+                                  browser.identity.getRedirectURL("foobar"),
+                                  "redirect url ok");
+      await browser.test.assertEq(redirect_base + "callback",
+                                  browser.identity.getRedirectURL("/callback"),
+                                  "redirect url ok");
+      browser.test.sendMessage("done");
+    },
+  });
+
+  yield extension.startup();
+  yield extension.awaitMessage("done");
+  yield extension.unload();
+});
+
+add_task(function* test_badAuthURI() {
+  let extension = ExtensionTestUtils.loadExtension({
+    manifest: {
       "permissions": [
         "identity",
         "https://example.com/",
       ],
     },
     async background() {
       await browser.test.assertRejects(browser.identity.launchWebAuthFlow({interactive: true, url: "foobar"}),
                                        "details.url is invalid", "invalid param url");