Bug 1369319 - Part2: Add a test case to verify that device sensor events have been blocked when 'privacy.resistFingerprinting' is true. r?bz,arthuredelstein
MozReview-Commit-ID: 5hw5S56zDfE
--- a/browser/components/resistfingerprinting/test/mochitest/mochitest.ini
+++ b/browser/components/resistfingerprinting/test/mochitest/mochitest.ini
@@ -1,6 +1,8 @@
[DEFAULT]
+tags = resistfingerprinting
support-files =
worker_child.js
worker_grandchild.js
+[test_device_sensor_event.html]
[test_reduce_time_precision.html]
new file mode 100644
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/mochitest/test_device_sensor_event.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1369319
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1369319</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script type="application/javascript;version=1.7">
+
+ /** Test for Bug 1369319 **/
+ SimpleTest.waitForExplicitFinish();
+ window.onload = () => {
+ SimpleTest.waitForFocus(() => {
+ SpecialPowers.pushPrefEnv({"set":
+ [
+ ["device.sensors.test.events", true],
+ ["privacy.resistFingerprinting", true]
+ ]
+ }, doTest);
+ }, window);
+ }
+
+ function doTest() {
+ window.addEventListener("devicemotion", () => {
+ ok(false, "The device motion event should not be fired.")
+ }, {once: true});
+
+ window.addEventListener("TestEvent", () => {
+ // If we receive this event without receiving a 'devicemotion' event, this means
+ // the device sensor event has been blocked correctly.
+ ok(true, "Got the 'TestEvent' event.");
+ SimpleTest.finish();
+ }, {once: true});
+
+ window.dispatchEvent(new CustomEvent("TestEvent"));
+ }
+ </script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=">Mozilla Bug </a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test"></pre>
+</body>
+</html>