summaryrefslogtreecommitdiffstats
path: root/toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html')
-rw-r--r--toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html311
1 files changed, 0 insertions, 311 deletions
diff --git a/toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html b/toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html
deleted file mode 100644
index d14e85a25..000000000
--- a/toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html
+++ /dev/null
@@ -1,311 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test for nsIContentPrefService2 in child processes</title>
- <script type="application/javascript"
- src="/tests/SimpleTest/SimpleTest.js">
- </script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-
- <script type="application/javascript;version=1.8">
- "use strict";
-
- SimpleTest.waitForExplicitFinish();
-
- const childFrameURL =
- "data:text/html,<!DOCTYPE HTML><html><body></body></html>";
-
- function childFrameScript(isFramePrivate) {
- "use strict";
-
- function Tester(resultArray) {
- this.results = [];
- }
-
- Tester.prototype.is =
- function(a, b, note) {
- this.results.push([a === b, note + " (" + a + ", " + b + ")"]);
- };
- Tester.prototype.ok =
- function(b, note) {
- this.results.push([b != false, note]);
- };
-
- var cps = Components.classes["@mozilla.org/content-pref/service;1"]
- .getService(Components.interfaces.nsIContentPrefService2);
-
- let test = null;
- function* test1(message) {
- let tester = new Tester();
-
- tester.ok(cps !== null, "got the content pref service");
-
- cps.setGlobal("testing", 42, null, {
- handleCompletion: function(reason) {
- tester.is(reason, 0, "set a pref?");
- test.next();
- }
- });
-
- yield;
-
- let numResults = 0;
- cps.getGlobal("testing", null, {
- handleResult: function(pref) {
- numResults++;
- tester.is(pref.name, "testing", "pref has the right name");
- tester.is(pref.value, 42, "pref has the right value");
- },
-
- handleCompletion: function(reason) {
- tester.is(reason, 0, "get a pref?");
- tester.is(numResults, 1, "got the right number of prefs");
- tester.is(test.next().done, true, "done with test1");
- message.target.sendAsyncMessage("testRemoteContentPrefs:test1Finished",
- { results: tester.results });
- }
- });
-
- yield;
- }
-
- function* test2(message) {
- let tester = new Tester();
-
- let observer;
- let removed = false;
- cps.addObserverForName("testName", observer = {
- onContentPrefSet: function(group, name, value, isPrivate) {
- if (removed) {
- message.target.sendAsyncMessage("testRemoteContentPrefs:fail",
- { reason: "unexpected notification" });
- }
- tester.is(group, null, "group should be null");
- tester.is(name, "testName", "should only see testName");
- tester.is(value, 42, "value should be correct");
- tester.is(isPrivate, isFramePrivate, "privacy should match");
-
- message.target.sendAsyncMessage("testRemoteContentPrefs:test2poke2", {})
- },
-
- onContentPrefRemoved: function(group, name, isPrivate) {
- tester.is(group, null, "group should be null");
- tester.is(name, "testName");
- tester.is(isPrivate, isFramePrivate, "privacy should match");
- tester.is(test.next().done, true, "should be done with test2");
-
- cps.removeObserverForName("testName", observer);
- removed = true;
-
- message.target.sendAsyncMessage("testRemoteContentPrefs:test2Finished",
- { results: tester.results });
- }
- });
-
- message.target.sendAsyncMessage("testRemoteContentPrefs:test2poke", {});
- yield;
- }
-
- function* test3(message) {
- let tester = new Tester();
-
- cps.setGlobal("testName", 42, null, {
- handleCompletion: function(reason) {
- tester.is(reason, 0, "set a pref");
- cps.set("http://mochi.test", "testpref", "str", null, {
- handleCompletion: function(reason) {
- tester.is(reason, 0, "set a pref");
- test.next();
- }
- });
- }
- });
-
- yield;
-
- cps.removeByDomain("http://mochi.test", null, {
- handleCompletion: function(reason) {
- tester.is(reason, 0, "remove succeeded");
- cps.getByDomainAndName("http://mochi.test", "testpref", null, {
- handleResult: function() {
- message.target.sendAsyncMessage("testRemoteContentPrefs:fail",
- { reason: "got removed pref in test3" });
- },
- handleCompletion: function() {
- test.next();
- }
- });
- }
- });
-
- yield;
-
- message.target.sendAsyncMessage("testRemoteContentPrefs:test3Finished",
- { results: tester.results });
- }
-
- function* test4(message) {
- let tester = new Tester();
-
- let prefObserver = {
- onContentPrefSet: function(group, name, value, isPrivate) {
- test.next({ group: group, name: name, value: value, isPrivate: isPrivate });
- },
- onContentPrefRemoved: function(group, name, isPrivate) {
- test.next({ group: group, name: name, isPrivate: isPrivate });
- }
- };
-
- addMessageListener("testRemoteContentPrefs:prefResults", (msg) => {
- test.next(msg.data.results);
- });
-
- cps.addObserverForName("test", prefObserver);
-
- cps.set("http://mochi.test", "test", 42, { usePrivateBrowsing: true });
- let event = yield;
- tester.is(event.name, "test");
- tester.is(event.isPrivate, true);
-
- message.target.sendAsyncMessage("testRemoteContentPrefs:getPref",
- { group: "http://mochi.test", name: "test" });
-
- let results = yield;
- tester.is(results.length, 0, "should not have seen the pb pref");
-
- message.target.sendAsyncMessage("testRemoteContentPrefs:test4Finished",
- { results: tester.results });
- }
-
- addMessageListener("testRemoteContentPrefs:test1", function(message) {
- test = test1(message);
- test.next();
- });
- addMessageListener("testRemoteContentPrefs:test2", function(message) {
- test = test2(message);
- test.next();
- });
- addMessageListener("testRemoteContentPrefs:test3", function(message) {
- test = test3(message);
- test.next();
- });
- addMessageListener("testRemoteContentPrefs:test4", function(message) {
- test = test4(message);
- test.next();
- });
- }
-
- function processResults(results) {
- for (let i of results) {
- ok(...i);
- }
- }
-
- let test;
- function* testStructure(mm, isPrivate, callback) {
- let lastResult;
-
- function testDone(msg) {
- test.next(msg.data);
- }
-
- mm.addMessageListener("testRemoteContentPrefs:test1Finished", testDone);
- mm.addMessageListener("testRemoteContentPrefs:test2Finished", testDone);
- mm.addMessageListener("testRemoteContentPrefs:test3Finished", testDone);
- mm.addMessageListener("testRemoteContentPrefs:test4Finished", testDone);
-
- mm.addMessageListener("testRemoteContentPrefs:fail", function(msg) {
- ok(false, msg.data.reason);
- });
-
- mm.sendAsyncMessage("testRemoteContentPrefs:test1", {});
- lastResult = yield;
- processResults(lastResult.results);
-
- var cps = SpecialPowers.Cc["@mozilla.org/content-pref/service;1"]
- .getService(SpecialPowers.Ci.nsIContentPrefService2);
- mm.sendAsyncMessage("testRemoteContentPrefs:test2", {});
- mm.addMessageListener("testRemoteContentPrefs:test2poke", function() {
- cps.setGlobal("testName", 42, {usePrivateBrowsing: isPrivate});
- });
- mm.addMessageListener("testRemoteContentPrefs:test2poke2", function() {
- cps.removeGlobal("testName", {usePrivateBrowsing: isPrivate});
- });
-
- lastResult = yield;
- processResults(lastResult.results);
-
- mm.sendAsyncMessage("testRemoteContentPrefs:test3", {});
- lastResult = yield;
- processResults(lastResult.results);
-
- mm.addMessageListener("testRemoteContentPrefs:getPref", function(msg) {
- let results = [];
- cps.getByDomainAndName(msg.data.group, msg.data.name, null, {
- handleResult: function(pref) {
- results.push(pref);
- },
- handleCompletion: function(reason) {
- mm.sendAsyncMessage("testRemoteContentPrefs:prefResults",
- { results: results });
- }
- });
- });
-
- mm.sendAsyncMessage("testRemoteContentPrefs:test4", {});
- lastResult = yield;
- processResults(lastResult.results);
-
- document.getElementById('iframe').remove();
- setTimeout(callback, 0);
- }
-
- function runTest(isPrivate, callback) {
- info("testing with isPrivate=" + isPrivate);
- let iframe = document.createElement("iframe");
- SpecialPowers.wrap(iframe).mozbrowser = true;
- if (isPrivate) {
- SpecialPowers.wrap(iframe).mozprivatebrowsing = true;
- }
- iframe.id = "iframe";
- iframe.src = childFrameURL;
-
- iframe.addEventListener("mozbrowserloadend", function() {
- info("Got iframe load event.");
- let mm = SpecialPowers.getBrowserFrameMessageManager(iframe);
- mm.loadFrameScript("data:,(" + childFrameScript.toString() + ")(" + isPrivate + ");",
- false);
-
- test = testStructure(mm, isPrivate, callback);
- test.next();
- });
-
- document.body.appendChild(iframe);
- }
-
- function runTests() {
- info("Browser prefs set.");
- runTest(false, function() {
- runTest(true, function() {
- SimpleTest.finish();
- });
- });
- }
-
- addEventListener("load", function() {
- info("Got load event.");
-
- SpecialPowers.addPermission("browser", true, document);
- SpecialPowers.pushPrefEnv({
- "set": [
- ["dom.ipc.browser_frames.oop_by_default", true],
- ["dom.mozBrowserFramesEnabled", true],
- ["browser.pagethumbnails.capturing_disabled", true]
- ]
- }, runTests);
- });
- </script>
-</body>
-</html>