зеркало из https://github.com/mozilla/gecko-dev.git
Bug 997570 - Test for order of execution of onsyncfrompreference handler. r=MattN
This commit is contained in:
Родитель
ad26c076c9
Коммит
5a769cb72b
|
@ -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]
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
Загрузка…
Ссылка в новой задаче