diff options
Diffstat (limited to 'toolkit/content/tests/chrome/test_preferences.xul')
-rw-r--r-- | toolkit/content/tests/chrome/test_preferences.xul | 533 |
1 files changed, 0 insertions, 533 deletions
diff --git a/toolkit/content/tests/chrome/test_preferences.xul b/toolkit/content/tests/chrome/test_preferences.xul deleted file mode 100644 index 22e7e2fe9..000000000 --- a/toolkit/content/tests/chrome/test_preferences.xul +++ /dev/null @@ -1,533 +0,0 @@ -<?xml version="1.0"?> -<?xml-stylesheet href="chrome://global/skin" type="text/css"?> -<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?> - -<window title="Preferences Window Tests" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - onload="RunTest();"> - - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> - - <script type="application/javascript"> - <![CDATA[ - SimpleTest.waitForExplicitFinish(); - - const kPref = Components.classes["@mozilla.org/preferences-service;1"] - .getService(Components.interfaces.nsIPrefBranch); - - // preference values, set 1 - const kPrefValueSet1 = - { - int: 23, - bool: true, - string: "rheeet!", - wstring_data: "日本語", - unichar_data: "äöüßÄÖÜ", - file_data: "/", - - wstring: Components.classes["@mozilla.org/pref-localizedstring;1"] - .createInstance(Components.interfaces.nsIPrefLocalizedString), - unichar: Components.classes["@mozilla.org/supports-string;1"] - .createInstance(Components.interfaces.nsISupportsString), - file: Components.classes["@mozilla.org/file/local;1"] - .createInstance(Components.interfaces.nsILocalFile) - }; - kPrefValueSet1.wstring.data = kPrefValueSet1.wstring_data; - kPrefValueSet1.unichar.data = kPrefValueSet1.unichar_data; - SafeFileInit(kPrefValueSet1.file, kPrefValueSet1.file_data); - - // preference values, set 2 - const kPrefValueSet2 = - { - int: 42, - bool: false, - string: "Mozilla", - wstring_data: "헤드라인A", - unichar_data: "áôùšŽ", - file_data: "/home", - - wstring: Components.classes["@mozilla.org/pref-localizedstring;1"] - .createInstance(Components.interfaces.nsIPrefLocalizedString), - unichar: Components.classes["@mozilla.org/supports-string;1"] - .createInstance(Components.interfaces.nsISupportsString), - file: Components.classes["@mozilla.org/file/local;1"] - .createInstance(Components.interfaces.nsILocalFile) - }; - kPrefValueSet2.wstring.data = kPrefValueSet2.wstring_data; - kPrefValueSet2.unichar.data = kPrefValueSet2.unichar_data; - SafeFileInit(kPrefValueSet2.file, kPrefValueSet2.file_data); - - - function SafeFileInit(aFile, aPath) - { - // set file path without dying for exceptions - try - { - aFile.initWithPath(aPath); - } - catch (ignored) {} - } - - function CreateEmptyPrefValueSet() - { - var result = - { - int: undefined, - bool: undefined, - string: undefined, - wstring_data: undefined, - unichar_data: undefined, - file_data: undefined, - wstring: undefined, - unichar: undefined, - file: undefined - }; - return result; - } - - function WritePrefsToSystem(aPrefValueSet) - { - // write preference data via XPCOM - kPref.setIntPref ("tests.static_preference_int", aPrefValueSet.int); - kPref.setBoolPref("tests.static_preference_bool", aPrefValueSet.bool); - kPref.setCharPref("tests.static_preference_string", aPrefValueSet.string); - kPref.setComplexValue("tests.static_preference_wstring", - Components.interfaces.nsIPrefLocalizedString, - aPrefValueSet.wstring); - kPref.setComplexValue("tests.static_preference_unichar", - Components.interfaces.nsISupportsString, - aPrefValueSet.unichar); - kPref.setComplexValue("tests.static_preference_file", - Components.interfaces.nsILocalFile, - aPrefValueSet.file); - } - - function ReadPrefsFromSystem() - { - // read preference data via XPCOM - var result = CreateEmptyPrefValueSet(); - try {result.int = kPref.getIntPref ("tests.static_preference_int") } catch (ignored) {}; - try {result.bool = kPref.getBoolPref("tests.static_preference_bool") } catch (ignored) {}; - try {result.string = kPref.getCharPref("tests.static_preference_string")} catch (ignored) {}; - try - { - result.wstring = kPref.getComplexValue("tests.static_preference_wstring", - Components.interfaces.nsIPrefLocalizedString); - result.wstring_data = result.wstring.data; - } - catch (ignored) {}; - try - { - result.unichar = kPref.getComplexValue("tests.static_preference_unichar", - Components.interfaces.nsISupportsString); - result.unichar_data = result.unichar.data; - } - catch (ignored) {}; - try - { - result.file = kPref.getComplexValue("tests.static_preference_file", - Components.interfaces.nsILocalFile); - result.file_data = result.file.data; - } - catch (ignored) {}; - return result; - } - - function GetXULElement(aPrefWindow, aID) - { - return aPrefWindow.document.getElementById(aID); - } - - function WritePrefsToPreferences(aPrefWindow, aPrefValueSet) - { - // write preference data into <preference>s - GetXULElement(aPrefWindow, "tests.static_preference_int" ).value = aPrefValueSet.int; - GetXULElement(aPrefWindow, "tests.static_preference_bool" ).value = aPrefValueSet.bool; - GetXULElement(aPrefWindow, "tests.static_preference_string" ).value = aPrefValueSet.string; - GetXULElement(aPrefWindow, "tests.static_preference_wstring").value = aPrefValueSet.wstring_data; - GetXULElement(aPrefWindow, "tests.static_preference_unichar").value = aPrefValueSet.unichar_data; - GetXULElement(aPrefWindow, "tests.static_preference_file" ).value = aPrefValueSet.file_data; - } - - function ReadPrefsFromPreferences(aPrefWindow) - { - // read preference data from <preference>s - var result = - { - int: GetXULElement(aPrefWindow, "tests.static_preference_int" ).value, - bool: GetXULElement(aPrefWindow, "tests.static_preference_bool" ).value, - string: GetXULElement(aPrefWindow, "tests.static_preference_string" ).value, - wstring_data: GetXULElement(aPrefWindow, "tests.static_preference_wstring").value, - unichar_data: GetXULElement(aPrefWindow, "tests.static_preference_unichar").value, - file_data: GetXULElement(aPrefWindow, "tests.static_preference_file" ).value, - wstring: Components.classes["@mozilla.org/pref-localizedstring;1"] - .createInstance(Components.interfaces.nsIPrefLocalizedString), - unichar: Components.classes["@mozilla.org/supports-string;1"] - .createInstance(Components.interfaces.nsISupportsString), - file: Components.classes["@mozilla.org/file/local;1"] - .createInstance(Components.interfaces.nsILocalFile) - } - result.wstring.data = result.wstring_data; - result.unichar.data = result.unichar_data; - SafeFileInit(result.file, result.file_data); - return result; - } - - function WritePrefsToUI(aPrefWindow, aPrefValueSet) - { - // write preference data into UI elements - GetXULElement(aPrefWindow, "static_element_int" ).value = aPrefValueSet.int; - GetXULElement(aPrefWindow, "static_element_bool" ).checked = aPrefValueSet.bool; - GetXULElement(aPrefWindow, "static_element_string" ).value = aPrefValueSet.string; - GetXULElement(aPrefWindow, "static_element_wstring").value = aPrefValueSet.wstring_data; - GetXULElement(aPrefWindow, "static_element_unichar").value = aPrefValueSet.unichar_data; - GetXULElement(aPrefWindow, "static_element_file" ).value = aPrefValueSet.file_data; - } - - function ReadPrefsFromUI(aPrefWindow) - { - // read preference data from <preference>s - var result = - { - int: GetXULElement(aPrefWindow, "static_element_int" ).value, - bool: GetXULElement(aPrefWindow, "static_element_bool" ).checked, - string: GetXULElement(aPrefWindow, "static_element_string" ).value, - wstring_data: GetXULElement(aPrefWindow, "static_element_wstring").value, - unichar_data: GetXULElement(aPrefWindow, "static_element_unichar").value, - file_data: GetXULElement(aPrefWindow, "static_element_file" ).value, - wstring: Components.classes["@mozilla.org/pref-localizedstring;1"] - .createInstance(Components.interfaces.nsIPrefLocalizedString), - unichar: Components.classes["@mozilla.org/supports-string;1"] - .createInstance(Components.interfaces.nsISupportsString), - file: Components.classes["@mozilla.org/file/local;1"] - .createInstance(Components.interfaces.nsILocalFile) - } - result.wstring.data = result.wstring_data; - result.unichar.data = result.unichar_data; - SafeFileInit(result.file, result.file_data); - return result; - } - - - function RunInstantPrefTest(aPrefWindow) - { - // remark: there's currently no UI element binding for files - - // were all <preferences> correctly initialized? - var expected = kPrefValueSet1; - var found = ReadPrefsFromPreferences(aPrefWindow); - ok(found.int === expected.int, "instant pref init int" ); - ok(found.bool === expected.bool, "instant pref init bool" ); - ok(found.string === expected.string, "instant pref init string" ); - ok(found.wstring_data === expected.wstring_data, "instant pref init wstring"); - ok(found.unichar_data === expected.unichar_data, "instant pref init unichar"); - todo(found.file_data === expected.file_data, "instant pref init file" ); - - // were all elements correctly initialized? (loose check) - found = ReadPrefsFromUI(aPrefWindow); - ok(found.int == expected.int, "instant element init int" ); - ok(found.bool == expected.bool, "instant element init bool" ); - ok(found.string == expected.string, "instant element init string" ); - ok(found.wstring_data == expected.wstring_data, "instant element init wstring"); - ok(found.unichar_data == expected.unichar_data, "instant element init unichar"); - todo(found.file_data == expected.file_data, "instant element init file" ); - - // do some changes in the UI - expected = kPrefValueSet2; - WritePrefsToUI(aPrefWindow, expected); - - // UI changes should get passed to the <preference>s, - // but currently they aren't if the changes are made programmatically - // (the handlers preference.change/prefpane.input and prefpane.change - // are called for manual changes, though). - found = ReadPrefsFromPreferences(aPrefWindow); - todo(found.int === expected.int, "instant change pref int" ); - todo(found.bool === expected.bool, "instant change pref bool" ); - todo(found.string === expected.string, "instant change pref string" ); - todo(found.wstring_data === expected.wstring_data, "instant change pref wstring"); - todo(found.unichar_data === expected.unichar_data, "instant change pref unichar"); - todo(found.file_data === expected.file_data, "instant change pref file" ); - - // and these changes should get passed to the system instantly - // (which obviously can't pass with the above failing) - found = ReadPrefsFromSystem(); - todo(found.int === expected.int, "instant change element int" ); - todo(found.bool === expected.bool, "instant change element bool" ); - todo(found.string === expected.string, "instant change element string" ); - todo(found.wstring_data === expected.wstring_data, "instant change element wstring"); - todo(found.unichar_data === expected.unichar_data, "instant change element unichar"); - todo(found.file_data === expected.file_data, "instant change element file" ); - - // try resetting the prefs to default values (which should be empty here) - GetXULElement(aPrefWindow, "tests.static_preference_int" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_bool" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_string" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_wstring").reset(); - GetXULElement(aPrefWindow, "tests.static_preference_unichar").reset(); - GetXULElement(aPrefWindow, "tests.static_preference_file" ).reset(); - - // check system - expected = CreateEmptyPrefValueSet(); - found = ReadPrefsFromSystem(); - ok(found.int === expected.int, "instant reset system int" ); - ok(found.bool === expected.bool, "instant reset system bool" ); - ok(found.string === expected.string, "instant reset system string" ); - ok(found.wstring_data === expected.wstring_data, "instant reset system wstring"); - ok(found.unichar_data === expected.unichar_data, "instant reset system unichar"); - ok(found.file_data === expected.file_data, "instant reset system file" ); - - // check UI - expected = - { - // alas, we don't have XUL elements with typeof(value) == int :( - // int: 0, - int: "", - bool: false, - string: "", - wstring_data: "", - unichar_data: "", - file_data: "", - wstring: {}, - unichar: {}, - file: {} - }; - found = ReadPrefsFromUI(aPrefWindow); - ok(found.int === expected.int, "instant reset element int" ); - ok(found.bool === expected.bool, "instant reset element bool" ); - ok(found.string === expected.string, "instant reset element string" ); - ok(found.wstring_data === expected.wstring_data, "instant reset element wstring"); - ok(found.unichar_data === expected.unichar_data, "instant reset element unichar"); -// ok(found.file_data === expected.file_data, "instant reset element file" ); - - // check hasUserValue - ok(GetXULElement(aPrefWindow, "tests.static_preference_int" ).hasUserValue === false, "instant reset hasUserValue int" ); - ok(GetXULElement(aPrefWindow, "tests.static_preference_bool" ).hasUserValue === false, "instant reset hasUserValue bool" ); - ok(GetXULElement(aPrefWindow, "tests.static_preference_string" ).hasUserValue === false, "instant reset hasUserValue string" ); - ok(GetXULElement(aPrefWindow, "tests.static_preference_wstring").hasUserValue === false, "instant reset hasUserValue wstring"); - ok(GetXULElement(aPrefWindow, "tests.static_preference_unichar").hasUserValue === false, "instant reset hasUserValue unichar"); - ok(GetXULElement(aPrefWindow, "tests.static_preference_file" ).hasUserValue === false, "instant reset hasUserValue file" ); - - // done with instant apply checks - } - - function RunNonInstantPrefTestGeneral(aPrefWindow) - { - // Non-instant apply tests are harder: not only do we need to check that - // fiddling with the values does *not* change the system settings, but - // also that they *are* (not) set after closing (cancelling) the dialog... - - // remark: there's currently no UI element binding for files - - // were all <preferences> correctly initialized? - var expected = kPrefValueSet1; - var found = ReadPrefsFromPreferences(aPrefWindow); - ok(found.int === expected.int, "non-instant pref init int" ); - ok(found.bool === expected.bool, "non-instant pref init bool" ); - ok(found.string === expected.string, "non-instant pref init string" ); - ok(found.wstring_data === expected.wstring_data, "non-instant pref init wstring"); - ok(found.unichar_data === expected.unichar_data, "non-instant pref init unichar"); - todo(found.file_data === expected.file_data, "non-instant pref init file" ); - - // were all elements correctly initialized? (loose check) - found = ReadPrefsFromUI(aPrefWindow); - ok(found.int == expected.int, "non-instant element init int" ); - ok(found.bool == expected.bool, "non-instant element init bool" ); - ok(found.string == expected.string, "non-instant element init string" ); - ok(found.wstring_data == expected.wstring_data, "non-instant element init wstring"); - ok(found.unichar_data == expected.unichar_data, "non-instant element init unichar"); - todo(found.file_data == expected.file_data, "non-instant element init file" ); - - // do some changes in the UI - expected = kPrefValueSet2; - WritePrefsToUI(aPrefWindow, expected); - - // UI changes should get passed to the <preference>s, - // but currently they aren't if the changes are made programmatically - // (the handlers preference.change/prefpane.input and prefpane.change - // are called for manual changes, though). - found = ReadPrefsFromPreferences(aPrefWindow); - todo(found.int === expected.int, "non-instant change pref int" ); - todo(found.bool === expected.bool, "non-instant change pref bool" ); - todo(found.string === expected.string, "non-instant change pref string" ); - todo(found.wstring_data === expected.wstring_data, "non-instant change pref wstring"); - todo(found.unichar_data === expected.unichar_data, "non-instant change pref unichar"); - todo(found.file_data === expected.file_data, "non-instant change pref file" ); - - // and these changes should *NOT* get passed to the system - // (which obviously always passes with the above failing) - expected = kPrefValueSet1; - found = ReadPrefsFromSystem(); - ok(found.int === expected.int, "non-instant change element int" ); - ok(found.bool === expected.bool, "non-instant change element bool" ); - ok(found.string === expected.string, "non-instant change element string" ); - ok(found.wstring_data === expected.wstring_data, "non-instant change element wstring"); - ok(found.unichar_data === expected.unichar_data, "non-instant change element unichar"); - todo(found.file_data === expected.file_data, "non-instant change element file" ); - - // try resetting the prefs to default values (which should be empty here) - GetXULElement(aPrefWindow, "tests.static_preference_int" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_bool" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_string" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_wstring").reset(); - GetXULElement(aPrefWindow, "tests.static_preference_unichar").reset(); - GetXULElement(aPrefWindow, "tests.static_preference_file" ).reset(); - - // check system: the current values *MUST NOT* change - expected = kPrefValueSet1; - found = ReadPrefsFromSystem(); - ok(found.int === expected.int, "non-instant reset system int" ); - ok(found.bool === expected.bool, "non-instant reset system bool" ); - ok(found.string === expected.string, "non-instant reset system string" ); - ok(found.wstring_data === expected.wstring_data, "non-instant reset system wstring"); - ok(found.unichar_data === expected.unichar_data, "non-instant reset system unichar"); - todo(found.file_data === expected.file_data, "non-instant reset system file" ); - - // check UI: these values should be reset - expected = - { - // alas, we don't have XUL elements with typeof(value) == int :( - // int: 0, - int: "", - bool: false, - string: "", - wstring_data: "", - unichar_data: "", - file_data: "", - wstring: {}, - unichar: {}, - file: {} - }; - found = ReadPrefsFromUI(aPrefWindow); - ok(found.int === expected.int, "non-instant reset element int" ); - ok(found.bool === expected.bool, "non-instant reset element bool" ); - ok(found.string === expected.string, "non-instant reset element string" ); - ok(found.wstring_data === expected.wstring_data, "non-instant reset element wstring"); - ok(found.unichar_data === expected.unichar_data, "non-instant reset element unichar"); -// ok(found.file_data === expected.file_data, "non-instant reset element file" ); - - // check hasUserValue - ok(GetXULElement(aPrefWindow, "tests.static_preference_int" ).hasUserValue === false, "non-instant reset hasUserValue int" ); - ok(GetXULElement(aPrefWindow, "tests.static_preference_bool" ).hasUserValue === false, "non-instant reset hasUserValue bool" ); - ok(GetXULElement(aPrefWindow, "tests.static_preference_string" ).hasUserValue === false, "non-instant reset hasUserValue string" ); - ok(GetXULElement(aPrefWindow, "tests.static_preference_wstring").hasUserValue === false, "non-instant reset hasUserValue wstring"); - ok(GetXULElement(aPrefWindow, "tests.static_preference_unichar").hasUserValue === false, "non-instant reset hasUserValue unichar"); - ok(GetXULElement(aPrefWindow, "tests.static_preference_file" ).hasUserValue === false, "non-instant reset hasUserValue file" ); - } - - function RunNonInstantPrefTestClose(aPrefWindow) - { - WritePrefsToPreferences(aPrefWindow, kPrefValueSet2); - } - - function RunCheckCommandRedirect(aPrefWindow) - { - GetXULElement(aPrefWindow, "checkbox").click(); - ok(GetXULElement(aPrefWindow, "tests.static_preference_bool").value, "redirected command bool"); - GetXULElement(aPrefWindow, "checkbox").click(); - ok(!GetXULElement(aPrefWindow, "tests.static_preference_bool").value, "redirected command bool"); - } - - function RunResetPrefTest(aPrefWindow) - { - // try resetting the prefs to default values - GetXULElement(aPrefWindow, "tests.static_preference_int" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_bool" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_string" ).reset(); - GetXULElement(aPrefWindow, "tests.static_preference_wstring").reset(); - GetXULElement(aPrefWindow, "tests.static_preference_unichar").reset(); - GetXULElement(aPrefWindow, "tests.static_preference_file" ).reset(); - } - - function InitTestPrefs(aInstantApply) - { - // set instant apply mode and init prefs to set 1 - kPref.setBoolPref("browser.preferences.instantApply", aInstantApply); - WritePrefsToSystem(kPrefValueSet1); - } - - function RunTestInstant() - { - // test with instantApply - InitTestPrefs(true); - openDialog("window_preferences.xul", "", "modal", RunInstantPrefTest, false); - - // - test deferred reset in child window - InitTestPrefs(true); - openDialog("window_preferences2.xul", "", "modal", RunResetPrefTest, false); - expected = kPrefValueSet1; - found = ReadPrefsFromSystem(); - ok(found.int === expected.int, "instant reset deferred int" ); - ok(found.bool === expected.bool, "instant reset deferred bool" ); - ok(found.string === expected.string, "instant reset deferred string" ); - ok(found.wstring_data === expected.wstring_data, "instant reset deferred wstring"); - ok(found.unichar_data === expected.unichar_data, "instant reset deferred unichar"); - todo(found.file_data === expected.file_data, "instant reset deferred file" ); - } - - function RunTestNonInstant() - { - // test without instantApply - // - general tests, similar to instant apply - InitTestPrefs(false); - openDialog("window_preferences.xul", "", "modal", RunNonInstantPrefTestGeneral, false); - - // - test Cancel - InitTestPrefs(false); - openDialog("window_preferences.xul", "", "modal", RunNonInstantPrefTestClose, false); - var expected = kPrefValueSet1; - var found = ReadPrefsFromSystem(); - ok(found.int === expected.int, "non-instant cancel system int" ); - ok(found.bool === expected.bool, "non-instant cancel system bool" ); - ok(found.string === expected.string, "non-instant cancel system string" ); - ok(found.wstring_data === expected.wstring_data, "non-instant cancel system wstring"); - ok(found.unichar_data === expected.unichar_data, "non-instant cancel system unichar"); - todo(found.file_data === expected.file_data, "non-instant cancel system file" ); - - // - test Accept - InitTestPrefs(false); - openDialog("window_preferences.xul", "", "modal", RunNonInstantPrefTestClose, true); - expected = kPrefValueSet2; - found = ReadPrefsFromSystem(); - ok(found.int === expected.int, "non-instant accept system int" ); - ok(found.bool === expected.bool, "non-instant accept system bool" ); - ok(found.string === expected.string, "non-instant accept system string" ); - ok(found.wstring_data === expected.wstring_data, "non-instant accept system wstring"); - ok(found.unichar_data === expected.unichar_data, "non-instant accept system unichar"); - todo(found.file_data === expected.file_data, "non-instant accept system file" ); - - // - test deferred reset in child window - InitTestPrefs(false); - openDialog("window_preferences2.xul", "", "modal", RunResetPrefTest, true); - expected = CreateEmptyPrefValueSet(); - found = ReadPrefsFromSystem(); - ok(found.int === expected.int, "non-instant reset deferred int" ); - ok(found.bool === expected.bool, "non-instant reset deferred bool" ); - ok(found.string === expected.string, "non-instant reset deferred string" ); - ok(found.wstring_data === expected.wstring_data, "non-instant reset deferred wstring"); - ok(found.unichar_data === expected.unichar_data, "non-instant reset deferred unichar"); - ok(found.file_data === expected.file_data, "non-instant reset deferred file" ); - } - - function RunTestCommandRedirect() - { - openDialog("window_preferences_commandretarget.xul", "", "modal", RunCheckCommandRedirect, true); - } - - function RunTest() - { - RunTestInstant(); - RunTestNonInstant(); - RunTestCommandRedirect(); - SimpleTest.finish(); - } - ]]> - </script> - - <body xmlns="http://www.w3.org/1999/xhtml"> - <p id="display"></p> - <div id="content" style="display: none"></div> - <pre id="test"></pre> - </body> - -</window> |