Bug 1221365 - Tests for "Is origin potentially trustworthy?" logic. r=ckerschb,bkelly draft
authorPaolo Amadini <paolo.mozmail@amadzone.org>
Wed, 04 Nov 2015 19:21:03 +0000
changeset 306524 823385bba1a58d914be2c893a3b0d44aa282ee91
parent 306357 78335a2c17d167ba1021634f9442e1bcdf4ad906
child 510859 d2aae10b1ab9f19d9e85d189d9b44d1025a8b0ac
push id7149
push userpaolo.mozmail@amadzone.org
push dateWed, 04 Nov 2015 19:21:54 +0000
reviewersckerschb, bkelly
bugs1221365
milestone45.0a1
Bug 1221365 - Tests for "Is origin potentially trustworthy?" logic. r=ckerschb,bkelly
dom/security/test/unit/test_isURIPotentiallyTrustworthy.js
dom/security/test/unit/xpcshell.ini
new file mode 100644
--- /dev/null
+++ b/dom/security/test/unit/test_isURIPotentiallyTrustworthy.js
@@ -0,0 +1,32 @@
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/*
+ * Tests the "Is origin potentially trustworthy?" logic from
+ * <https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy>.
+ */
+
+const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
+
+Cu.import("resource://gre/modules/NetUtil.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+
+XPCOMUtils.defineLazyServiceGetter(this, "gContentSecurityManager",
+                                   "@mozilla.org/contentsecuritymanager;1",
+                                   "nsIContentSecurityManager");
+
+add_task(function* test_isURIPotentiallyTrustworthy() {
+  for (let [uriSpec, expectedResult] of [
+    ["http://example.com/", false],
+    ["https://example.com/", true],
+    ["http://localhost/", true],
+    ["http://127.0.0.1/", true],
+    ["file:///", true],
+    ["about:config", false],
+    ["urn:generic", false],
+  ]) {
+    let uri = NetUtil.newURI(uriSpec);
+    Assert.equal(gContentSecurityManager.isURIPotentiallyTrustworthy(uri),
+                 expectedResult);
+  }
+});
--- a/dom/security/test/unit/xpcshell.ini
+++ b/dom/security/test/unit/xpcshell.ini
@@ -1,7 +1,8 @@
 [DEFAULT]
 head =
 tail =
 skip-if = toolkit == 'gonk'
 
 [test_csp_reports.js]
 skip-if = buildapp == 'mulet'
+[test_isURIPotentiallyTrustworthy.js]