Bug 997570 - Test for order of execution of onsyncfrompreference handler. r=MattN

This commit is contained in:
Manish Goregaokar 2014-04-26 13:14:00 +02:00
parent ad26c076c9
commit 5a769cb72b
3 changed files with 106 additions and 0 deletions

View File

@ -130,6 +130,8 @@ skip-if = os == "win" # Intermittent failures, bug 919016
[test_preferences.xul]
[test_preferences_beforeaccept.xul]
support-files = window_preferences_beforeaccept.xul
[test_preferences_onsyncfrompreference.xul]
support-files = window_preferences_onsyncfrompreference.xul
[test_progressmeter.xul]
[test_props.xul]
[test_radio.xul]

View File

@ -0,0 +1,62 @@
<?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"?>
<!-- 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/. -->
<window title="Preferences Window beforeaccept Tests"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript"
src="chrome://mochikit/content/MochiKit/packed.js"/>
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
<script type="application/javascript">
<![CDATA[
const PREFS = ['tests.onsyncfrompreference.pref1',
'tests.onsyncfrompreference.pref2',
'tests.onsyncfrompreference.pref3'];
SimpleTest.waitForExplicitFinish();
for (let pref of PREFS) {
SpecialPowers.setIntPref(pref, 1);
}
let counter = 0;
let prefWindow = openDialog("window_preferences_onsyncfrompreference.xul", "", "", onSync);
SimpleTest.registerCleanupFunction(() => {
for (let pref of PREFS) {
SpecialPowers.clearUserPref(pref);
}
prefWindow.close();
});
// Onsyncfrompreference handler for the prefs
function onSync() {
for (let pref of PREFS) {
// The `value` field of each <preference> element should be initialized by now.
is(SpecialPowers.getIntPref(pref), prefWindow.document.getElementById(pref).value,
"Pref constructor was called correctly")
}
counter++;
if (counter == PREFS.length) {
SimpleTest.finish();
}
return true;
}
]]>
</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>

View File

@ -0,0 +1,42 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<!-- 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/. -->
<!--
XUL Widget Test for preferences window with onsyncfrompreference
This test ensures that onsyncfrompreference handlers are called after all the
values of the corresponding preference element have been set correctly
-->
<prefwindow xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="preferences window"
width="300" height="300"
windowtype="test:preferences">
<prefpane id="sample_pane" label="Sample Prefpane">
<preferences id="sample_preferences">
<preference id="tests.onsyncfrompreference.pref1"
name="tests.onsyncfrompreference.pref1"
type="int"/>
<preference id="tests.onsyncfrompreference.pref2"
name="tests.onsyncfrompreference.pref2"
type="int"/>
<preference id="tests.onsyncfrompreference.pref3"
name="tests.onsyncfrompreference.pref3"
type="int"/>
</preferences>
</prefpane>
<label>Test Prefpane</label>
<checkbox id="check1" label="Label1"
preference="tests.onsyncfrompreference.pref1"
onsyncfrompreference="return window.arguments[0]();"
onsynctopreference="return 1;"/>
<checkbox id="check2" label="Label2"
preference="tests.onsyncfrompreference.pref2"
onsyncfrompreference="return window.arguments[0]();"
onsynctopreference="return 1;"/>
<checkbox id="check3" label="Label3"
preference="tests.onsyncfrompreference.pref3"
onsyncfrompreference="return window.arguments[0]();"
onsynctopreference="return 1;"/>
</prefwindow>