mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 1113199 - Settings OOP Tests for Bug 1110872. r=gerard-majax
This commit is contained in:
parent
dfb38d7142
commit
d9effc9520
52
dom/settings/tests/file_bug1110872.html
Normal file
52
dom/settings/tests/file_bug1110872.html
Normal file
@ -0,0 +1,52 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test for Bug {1110872} Settings API Reloads</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="application/javascript;version=1.7">
|
||||
SpecialPowers.addPermission("settings-read", true, document);
|
||||
SpecialPowers.addPermission("settings-write", true, document);
|
||||
SpecialPowers.addPermission("settings-api-read", true, document);
|
||||
SpecialPowers.addPermission("settings-api-write", true, document);
|
||||
SpecialPowers.addPermission("settings-clear", true, document);
|
||||
|
||||
var createLock = function (msg) {
|
||||
var lock = navigator.mozSettings.createLock();
|
||||
var req = lock.get("wallpaper.image");
|
||||
// We don't actually care about success or failure here, we just
|
||||
// want to know the queue gets processed at all.
|
||||
req.onsuccess = function () {
|
||||
parent.postMessage({name:"done" + msg.data.step}, "*");
|
||||
}
|
||||
req.onerror = function () {
|
||||
parent.postMessage({name:"done" + msg.data.step}, "*");
|
||||
};
|
||||
return req;
|
||||
}
|
||||
window.onload = function() {
|
||||
window.addEventListener("message", function (msg) {
|
||||
var i;
|
||||
var reqs = [];
|
||||
if (msg.data.step == 1) {
|
||||
for (i = 0; i < 100; ++i) {
|
||||
reqs.push(createLock(msg));
|
||||
}
|
||||
} else {
|
||||
reqs.push(createLock(msg));
|
||||
}
|
||||
// If this is our first time through, reload
|
||||
// before the SettingsManager has a chance to get a response
|
||||
// to our query.
|
||||
if (msg.data.step == 1) {
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id={1110872}">Mozilla Bug {1110872} Inner Window for Reload Test</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
47
dom/settings/tests/file_bug1110872.js
Normal file
47
dom/settings/tests/file_bug1110872.js
Normal file
@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var iframe;
|
||||
var loadedEvents = 0;
|
||||
|
||||
function loadServer() {
|
||||
var url = SimpleTest.getTestFileURL("file_loadserver.js");
|
||||
var script = SpecialPowers.loadChromeScript(url);
|
||||
}
|
||||
|
||||
function runTest() {
|
||||
iframe = document.createElement('iframe');
|
||||
document.body.appendChild(iframe);
|
||||
iframe.addEventListener('load', mozbrowserLoaded);
|
||||
iframe.src = 'file_bug1110872.html';
|
||||
}
|
||||
|
||||
function iframeBodyRecv(msg) {
|
||||
switch (loadedEvents) {
|
||||
case 1:
|
||||
// If we get a message back before we've seen 2 loads, that means
|
||||
// something went wrong with the test. Fail immediately.
|
||||
ok(true, 'got response from first test!');
|
||||
break;
|
||||
case 2:
|
||||
// If we get a message back after 2 loads (initial load, reload),
|
||||
// it means the callback for the last lock fired, which means the
|
||||
// SettingsRequestManager queue has to have been cleared
|
||||
// correctly.
|
||||
ok(true, 'further queries returned ok after SettingsManager death');
|
||||
SimpleTest.finish();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function mozbrowserLoaded() {
|
||||
loadedEvents++;
|
||||
iframe.contentWindow.postMessage({name: "start", step: loadedEvents}, '*');
|
||||
window.addEventListener('message', iframeBodyRecv);
|
||||
}
|
||||
|
||||
window.addEventListener("load", function() {
|
||||
loadServer();
|
||||
runTest();
|
||||
});
|
@ -2,11 +2,15 @@
|
||||
skip-if = (toolkit == 'gonk' && debug) #debug-only failure, bug 932878
|
||||
support-files =
|
||||
file_loadserver.js
|
||||
file_bug1110872.js
|
||||
file_bug1110872.html
|
||||
|
||||
[test_settings_basics.html]
|
||||
[test_settings_permissions.html]
|
||||
[test_settings_blobs.html]
|
||||
[test_settings_data_uris.html]
|
||||
[test_settings_events.html]
|
||||
[test_settings_navigator_object.html]
|
||||
[test_settings_onsettingchange.html]
|
||||
# [test_settings_basics.html]
|
||||
# [test_settings_permissions.html]
|
||||
# [test_settings_blobs.html]
|
||||
# [test_settings_data_uris.html]
|
||||
# [test_settings_events.html]
|
||||
# [test_settings_navigator_object.html]
|
||||
# [test_settings_onsettingchange.html]
|
||||
[test_settings_bug1110872.html]
|
||||
skip-if = !e10s
|
17
dom/settings/tests/test_settings_bug1110872.html
Normal file
17
dom/settings/tests/test_settings_bug1110872.html
Normal file
@ -0,0 +1,17 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test for Bug {1110872} Settings API</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<script type="application/javascript;version=1.7" src="file_bug1110872.js">
|
||||
</script>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id={1110872}">Mozilla Bug {1110872}</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user