Bug 863246 - Add test cases draft
authorChung-Sheng Fu <cfu@mozilla.com>
Thu, 08 Jun 2017 17:54:41 +0800
changeset 610482 9b4464d3ab4ce8d0bf6a206424df66fc97599d71
parent 610305 863a35a49c5756970d872ebc71b17bf105629cf5
child 610483 8703b915d3a5a9b9a0a164dbfb7ad80fb2af953f
child 612785 8741f078460a3f21b329c4833536dd9d8c215bab
push id68902
push userbmo:cfu@mozilla.com
push dateTue, 18 Jul 2017 10:07:30 +0000
bugs863246
milestone56.0a1
Bug 863246 - Add test cases MozReview-Commit-ID: 9oXWNOREemX
browser/components/resistfingerprinting/test/mochitest/mochitest.ini
browser/components/resistfingerprinting/test/mochitest/test_bug863246_resource_uri.html
--- a/browser/components/resistfingerprinting/test/mochitest/mochitest.ini
+++ b/browser/components/resistfingerprinting/test/mochitest/mochitest.ini
@@ -1,13 +1,15 @@
 [DEFAULT]
 tags = resistfingerprinting
+
 support-files =
   worker_child.js
   worker_grandchild.js
   !/dom/tests/mochitest/geolocation/network_geolocation.sjs
 
 [test_device_sensor_event.html]
 [test_geolocation.html]
 scheme = https
 [test_reduce_time_precision.html]
 [test_hide_gamepad_info.html]
 support-files = test_hide_gamepad_info_iframe.html
+[test_bug863246_resource_uri.html]
new file mode 100644
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/mochitest/test_bug863246_resource_uri.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<meta charset="utf8">
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<script src="/tests/SimpleTest/SpawnTask.js"></script>
+<script>
+/* global SimpleTest SpecialPowers add_task */
+
+function waitForDOMContentLoaded() {
+  return new Promise((aResolve) => {
+    document.addEventListener("DOMContentLoaded", aResolve);
+  });
+}
+
+function testResourceUri(aTest, aUri, aContentAccessible) {
+  return new Promise((aResolve) => {
+    let link = document.createElement("link");
+    link.rel = "stylesheet";
+    link.onload = () => {
+      SimpleTest.ok(aContentAccessible, aTest);
+      aResolve();
+    };
+    link.onerror = () => {
+      SimpleTest.ok(!aContentAccessible, aTest);
+      aResolve();
+    };
+    link.href = aUri;
+    document.head.appendChild(link);
+  });
+}
+
+add_task(async function() {
+  await waitForDOMContentLoaded();
+  await testResourceUri(
+      "resource://content-accessible is content-accessible",
+      "resource://content-accessible/viewsource.css",
+      true);
+  await testResourceUri(
+      "resource://gre-resources is not content-accessible",
+      "resource://gre-resources/html.css",
+      false);
+  await SpecialPowers.pushPrefEnv({
+    set: [
+      ["security.all_resource_uri_content_accessible", true]
+    ]
+  });
+  await testResourceUri(
+      "security.all_resource_uri_content_accessible = true, resource://gre-resources is now content-accessible",
+      "resource://gre-resources/html.css",
+      true);
+});
+</script>