gecko/layout/base/tests/test_reftests_with_caret.html

145 lines
4.5 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" />
<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;
function endTest() {
SimpleTest.finish();
netscape.security.PrivilegeManager.enablePrivilege(
'UniversalPreferencesRead UniversalPreferencesWrite UniversalXPConnect');
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);
prefs.setIntPref("ui.caretBlinkTime", 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);
caretBlinkTime = prefs.getIntPref("ui.caretBlinkTime");
prefs.setIntPref("ui.caretBlinkTime", -1);
nextTest();
} catch(e) {
endTest();
}
}
</script>
</head>
<body onload="runTests()">
</body>
</html>