mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 22:55:23 +00:00
9d4453c9fb
In particular, without this, the iframes are too small to catch failures for the reftest of bug 612271, for example, since the selectionStart and selectionEnd text at the bottom of the page falls outside of the visible area when the page is loaded inside the iframe. --HG-- extra : rebase_source : ccac88034602cfcf1c852625e1bf08c184444622
157 lines
4.7 KiB
HTML
157 lines
4.7 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Reftests with caret drawing</title>
|
|
<script type="text/javascript" src="/MochiKit/packed.js"></script>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
|
<script type="text/javascript" src="/tests/SimpleTest/WindowSnapshot.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
<style>
|
|
iframe {
|
|
width: 600px;
|
|
height: 600px;
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
|
|
var canvases = [];
|
|
function callbackTestCanvas(canvas)
|
|
{
|
|
canvases.push(canvas);
|
|
|
|
if (canvases.length != 2)
|
|
return;
|
|
|
|
var result = canvases[0];
|
|
var reference = canvases[1];
|
|
|
|
var ret = compareSnapshots(result.snapshot, reference.snapshot, true);
|
|
ok(ret[0], "Reftest " + result.src +
|
|
(ret[0] ? "" : (" FAILED\n" +
|
|
"RESULT=" + ret[1] + "\n" +
|
|
"REFERENCE=" + ret[2] + "\n")));
|
|
|
|
// Remove the iframes if the test was successful
|
|
if (ret[0]) {
|
|
result.parentNode.removeChild(result);
|
|
reference.parentNode.removeChild(reference);
|
|
}
|
|
canvases = [];
|
|
nextTest();
|
|
}
|
|
|
|
function doSnapShot(iframe) {
|
|
iframe.snapshot = snapshotWindow(iframe.contentWindow, true);
|
|
callbackTestCanvas(iframe);
|
|
};
|
|
|
|
function remotePageLoaded() {
|
|
var iframe = this;
|
|
setTimeout(function(){doSnapShot(iframe);}, 0)
|
|
};
|
|
|
|
const MAX_ITERATIONS = 10;
|
|
|
|
function createIframe(url,next) {
|
|
var iframe = document.createElement("iframe");
|
|
iframe.src = url;
|
|
iframe.remotePageLoaded = remotePageLoaded;
|
|
var me = this;
|
|
var currentIteration = 0;
|
|
function iframeLoadCompleted() {
|
|
var docEl = iframe.contentDocument.documentElement;
|
|
if (docEl.className.indexOf("reftest-wait") >= 0) {
|
|
if (currentIteration++ > MAX_ITERATIONS) {
|
|
ok(false, "iframe load for " + url + " timed out");
|
|
SimpleTest.finish();
|
|
} else {
|
|
setTimeout(iframeLoadCompleted, 10);
|
|
}
|
|
return;
|
|
}
|
|
iframe.remotePageLoaded();
|
|
if (next) setTimeout(function(){createIframe(next,null);}, 0)
|
|
}
|
|
iframe.addEventListener("load", iframeLoadCompleted, false);
|
|
window.document.body.appendChild(iframe);
|
|
};
|
|
|
|
function refTest(test,ref) {
|
|
createIframe(test,ref);
|
|
};
|
|
|
|
var caretBlinkTime = null;
|
|
function endTest() {
|
|
SimpleTest.finish();
|
|
netscape.security.PrivilegeManager.enablePrivilege(
|
|
'UniversalPreferencesRead UniversalPreferencesWrite UniversalXPConnect');
|
|
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
|
.getService(Components.interfaces.nsIPrefBranch);
|
|
if (caretBlinkTime !== null) {
|
|
prefs.setIntPref("ui.caretBlinkTime", caretBlinkTime);
|
|
} else {
|
|
prefs.clearUserPref("ui.caretBlinkTime");
|
|
}
|
|
}
|
|
|
|
var tests = [
|
|
[ 'bug106855-1.html' , 'bug106855-1-ref.html' ] ,
|
|
[ 'bug106855-2.html' , 'bug106855-1-ref.html' ] ,
|
|
[ 'bug240933-1.html' , 'bug240933-1-ref.html' ] ,
|
|
[ 'bug240933-2.html' , 'bug240933-1-ref.html' ] ,
|
|
[ 'bug389321-1.html' , 'bug389321-1-ref.html' ] ,
|
|
[ 'bug389321-2.html' , 'bug389321-2-ref.html' ] ,
|
|
[ 'bug389321-3.html' , 'bug389321-3-ref.html' ] ,
|
|
[ 'bug482484.html' , 'bug482484-ref.html' ] ,
|
|
[ 'bug512295-1.html' , 'bug512295-1-ref.html' ] ,
|
|
[ 'bug512295-2.html' , 'bug512295-2-ref.html' ] ,
|
|
[ 'bug585922.html' , 'bug585922-ref.html' ] ,
|
|
[ 'bug597519-1.html' , 'bug597519-1-ref.html' ] ,
|
|
[ 'bug602141-1.html' , 'bug602141-1-ref.html' ] ,
|
|
[ 'bug602141-2.html' , 'bug602141-2-ref.html' ] ,
|
|
[ 'bug602141-3.html' , 'bug602141-3-ref.html' ] ,
|
|
[ 'bug602141-4.html' , 'bug602141-4-ref.html' ] ,
|
|
[ 'bug612271-1.html' , 'bug612271-ref.html' ] ,
|
|
[ 'bug612271-2.html' , 'bug612271-ref.html' ] ,
|
|
[ 'bug612271-3.html' , 'bug612271-ref.html' ] ,
|
|
[ 'bug613433-1.html' , 'bug613433-ref.html' ] ,
|
|
[ 'bug613433-2.html' , 'bug613433-ref.html' ] ,
|
|
[ 'bug613433-3.html' , 'bug613433-ref.html' ] ,
|
|
[ 'bug613807-1.html' , 'bug613807-1-ref.html' ]
|
|
];
|
|
var testIndex = 0;
|
|
|
|
function nextTest() {
|
|
if (testIndex < tests.length) {
|
|
refTest(tests[testIndex][0],tests[testIndex][1]);
|
|
++testIndex;
|
|
} else {
|
|
endTest();
|
|
}
|
|
}
|
|
function runTests() {
|
|
try {
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
netscape.security.PrivilegeManager.enablePrivilege(
|
|
'UniversalPreferencesRead UniversalPreferencesWrite UniversalXPConnect');
|
|
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
|
|
.getService(Components.interfaces.nsIPrefBranch);
|
|
try {
|
|
caretBlinkTime = prefs.getIntPref("ui.caretBlinkTime");
|
|
} catch (e) {}
|
|
prefs.setIntPref("ui.caretBlinkTime", -1);
|
|
|
|
nextTest();
|
|
} catch(e) {
|
|
endTest();
|
|
}
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="runTests()">
|
|
</body>
|
|
</html>
|