summaryrefslogtreecommitdiff
path: root/modules/libpref/test/unit_ipc/test_large_pref.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/libpref/test/unit_ipc/test_large_pref.js')
-rw-r--r--modules/libpref/test/unit_ipc/test_large_pref.js98
1 files changed, 0 insertions, 98 deletions
diff --git a/modules/libpref/test/unit_ipc/test_large_pref.js b/modules/libpref/test/unit_ipc/test_large_pref.js
deleted file mode 100644
index c3c937b43..000000000
--- a/modules/libpref/test/unit_ipc/test_large_pref.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-// Large preferences should not be set in the child process.
-// Non-string preferences are not tested here, because their behavior
-// should not be affected by this filtering.
-
-var Ci = Components.interfaces;
-var Cc = Components.classes;
-
-function isParentProcess() {
- let appInfo = Cc["@mozilla.org/xre/app-info;1"];
- return (!appInfo || appInfo.getService(Ci.nsIXULRuntime).processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT);
-}
-
-function makeBuffer(length) {
- let string = "x";
- while (string.length < length) {
- string = string + string;
- }
- if (string.length > length) {
- string = string.substring(length - string.length);
- }
- return string;
-}
-
-// from prefapi.h
-const MAX_ADVISABLE_PREF_LENGTH = 4 * 1024;
-
-const largeString = makeBuffer(MAX_ADVISABLE_PREF_LENGTH + 1);
-const smallString = makeBuffer(4);
-
-const testValues = [
- {name: "None", value: undefined},
- {name: "Small", value: smallString},
- {name: "Large", value: largeString},
-];
-
-function prefName(def, user) {
- return "Test.IPC.default" + def.name + "User" + user.name;
-}
-
-function expectedPrefValue(def, user) {
- if (user.value) {
- return user.value;
- }
- return def.value;
-}
-
-function run_test() {
- let pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
- let ps = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService);
- let defaultBranch = ps.getDefaultBranch("");
-
- let isParent = isParentProcess();
- if (isParent) {
- // Set all combinations of none, small and large, for default and user prefs.
- for (let def of testValues) {
- for (let user of testValues) {
- let currPref = prefName(def, user);
- if (def.value) {
- defaultBranch.setCharPref(currPref, def.value);
- }
- if (user.value) {
- pb.setCharPref(currPref, user.value);
- }
- }
- }
-
- run_test_in_child("test_large_pref.js");
- }
-
- // Check that each preference is set or not set, as appropriate.
- for (let def of testValues) {
- for (let user of testValues) {
- if (!def.value && !user.value) {
- continue;
- }
- let pref_name = prefName(def, user);
- if (isParent || (def.name != "Large" && user.name != "Large")) {
- do_check_eq(pb.getCharPref(pref_name), expectedPrefValue(def, user));
- } else {
- // This is the child, and either the default or user value is
- // large, so the preference should not be set.
- let prefExists;
- try {
- pb.getCharPref(pref_name);
- prefExists = true;
- } catch(e) {
- prefExists = false;
- }
- ok(!prefExists,
- "Pref " + pref_name + " should not be set in the child");
- }
- }
- }
-}