summaryrefslogtreecommitdiffstats
path: root/modules/libpref/test/unit_ipc/test_update_prefs.js
blob: 7e1b0dcd79187e33c804d722bd2ce0fdece6ffe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 run_test() {
  if (isParentProcess()) {

    do_load_child_test_harness();

    var pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);

    // these prefs are set after the child has been created.
    pb.setBoolPref("Test.IPC.bool.new", true);
    pb.setIntPref("Test.IPC.int.new", 23);
    pb.setCharPref("Test.IPC.char.new", "hey");

    run_test_in_child("test_observed_prefs.js", testPrefClear);
  }
}

function testPrefClear() {
  var pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
  pb.clearUserPref("Test.IPC.bool.new");

  sendCommand(
'var pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);\n'+
'pb.prefHasUserValue("Test.IPC.bool.new");\n',
    checkWasCleared);
}

function checkWasCleared(existsStr) {
    do_check_eq(existsStr, "false");
    do_test_finished();
}