mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Test for bug 783184. r=jdm
This commit is contained in:
parent
7256c960fe
commit
f48115c07f
76
modules/libpref/test/unit_ipc/test_user_default_prefs.js
Normal file
76
modules/libpref/test/unit_ipc/test_user_default_prefs.js
Normal file
@ -0,0 +1,76 @@
|
||||
const Ci = Components.interfaces;
|
||||
const Cc = Components.classes;
|
||||
|
||||
let pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
|
||||
|
||||
// This pref is chosen somewhat arbitrarily --- we just need one
|
||||
// that's guaranteed to have a default value.
|
||||
const kPrefName = 'intl.accept_languages'; // of type char, which we
|
||||
// assume below
|
||||
let initialValue = null;
|
||||
|
||||
function check_child_pref_info_eq(continuation) {
|
||||
sendCommand(
|
||||
'var pb = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);\n'+
|
||||
// Returns concatenation "[value],[isUser]"
|
||||
'pb.getCharPref("'+ kPrefName +'")+ "," +'+
|
||||
'pb.prefHasUserValue("'+ kPrefName +'");',
|
||||
function (info) {
|
||||
let [ value, isUser ] = info.split(',');
|
||||
do_check_eq(pb.getCharPref(kPrefName), value);
|
||||
do_check_eq(pb.prefHasUserValue(kPrefName), isUser == "true");
|
||||
continuation();
|
||||
});
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
// We finish in clean_up()
|
||||
do_test_pending();
|
||||
|
||||
try {
|
||||
if (pb.getCharPref('dom.ipc.processPrelauch.enabled')) {
|
||||
dump('WARNING: Content process may already have launched, so this test may not be meaningful.');
|
||||
}
|
||||
} catch(e) { }
|
||||
|
||||
initialValue = pb.getCharPref(kPrefName);
|
||||
|
||||
test_user_setting();
|
||||
}
|
||||
|
||||
function test_user_setting() {
|
||||
// We rely on setting this before the content process starts up.
|
||||
// When it starts up, it should recognize this as a user pref, not
|
||||
// a default pref.
|
||||
pb.setCharPref(kPrefName, 'i-imaginarylanguage');
|
||||
// NB: processing of the value-change notification in the child
|
||||
// process triggered by the above set happens-before the remaining
|
||||
// code here
|
||||
check_child_pref_info_eq(function () {
|
||||
do_check_eq(pb.prefHasUserValue(kPrefName), true);
|
||||
|
||||
test_cleared_is_default();
|
||||
});
|
||||
}
|
||||
|
||||
function test_cleared_is_default() {
|
||||
pb.clearUserPref(kPrefName);
|
||||
// NB: processing of the value-change notification in the child
|
||||
// process triggered by the above set happens-before the remaining
|
||||
// code here
|
||||
check_child_pref_info_eq(function () {
|
||||
do_check_eq(pb.prefHasUserValue(kPrefName), false);
|
||||
|
||||
clean_up();
|
||||
});
|
||||
}
|
||||
|
||||
function clean_up() {
|
||||
pb.setCharPref(kPrefName, initialValue);
|
||||
// NB: processing of the value-change notification in the child
|
||||
// process triggered by the above set happens-before the remaining
|
||||
// code here
|
||||
check_child_pref_info_eq(function () {
|
||||
do_test_finished();
|
||||
});
|
||||
}
|
@ -6,3 +6,4 @@ tail =
|
||||
[test_initial_prefs.js]
|
||||
[test_observed_prefs.js]
|
||||
[test_update_prefs.js]
|
||||
[test_user_default_prefs.js]
|
||||
|
Loading…
Reference in New Issue
Block a user