mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
181bea7c15
bug512295-1.html and bug512295-2.html are sending key events which hides touch caret. Turn off the touch caret preference to fix test cases that ought to be failed by definition of the touch caret behavior.
200 lines
6.5 KiB
HTML
200 lines
6.5 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Reftests with caret drawing</title>
|
|
<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">
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
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 = [];
|
|
SimpleTest.waitForFocus(nextTest);
|
|
}
|
|
|
|
function doSnapShot(iframe) {
|
|
iframe.snapshot = snapshotWindow(iframe.contentWindow, true);
|
|
callbackTestCanvas(iframe);
|
|
};
|
|
|
|
function remotePageLoaded(callback) {
|
|
var iframe = this;
|
|
setTimeout(function(){
|
|
doSnapShot(iframe);
|
|
callback();
|
|
}, 0);
|
|
};
|
|
|
|
const MAX_ITERATIONS = 1000;
|
|
|
|
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");
|
|
endTest();
|
|
} else {
|
|
setTimeout(iframeLoadCompleted, 10);
|
|
}
|
|
return;
|
|
}
|
|
iframe.remotePageLoaded(function() {
|
|
if (next) {
|
|
setTimeout(function(){createIframe(next,null);}, 0)
|
|
}
|
|
});
|
|
}
|
|
iframe.addEventListener("load", iframeLoadCompleted, false);
|
|
window.document.body.appendChild(iframe);
|
|
iframe.focus();
|
|
};
|
|
|
|
function refTest(test,ref) {
|
|
createIframe(test,ref);
|
|
};
|
|
|
|
var caretBlinkTime = null;
|
|
function endTest() {
|
|
if (caretBlinkTime !== null) {
|
|
SpecialPowers.setIntPref("ui.caretBlinkTime", caretBlinkTime);
|
|
} else {
|
|
SpecialPowers.clearUserPref("ui.caretBlinkTime");
|
|
}
|
|
|
|
// finish(), yet let the test actually end first, to be safe.
|
|
SimpleTest.executeSoon(SimpleTest.finish);
|
|
}
|
|
|
|
var tests = [
|
|
[ 'bug106855-1.html' , 'bug106855-1-ref.html' ] ,
|
|
[ 'bug106855-2.html' , 'bug106855-1-ref.html' ] ,
|
|
[ 'bug389321-2.html' , 'bug389321-2-ref.html' ] ,
|
|
[ 'bug389321-3.html' , 'bug389321-3-ref.html' ] ,
|
|
[ 'bug613807-1.html' , 'bug613807-1-ref.html' ] ,
|
|
// The following test cases are all involving with one sending
|
|
// synthesizeKey(), the other without. They ought to be failed
|
|
// when touch caret preference on. Test them with preference off.
|
|
function() {SpecialPowers.setBoolPref("touchcaret.enabled", false);} ,
|
|
[ 'bug240933-1.html' , 'bug240933-1-ref.html' ] ,
|
|
[ 'bug240933-2.html' , 'bug240933-1-ref.html' ] ,
|
|
[ 'bug389321-1.html' , 'bug389321-1-ref.html' ] ,
|
|
[ 'bug482484.html' , 'bug482484-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' ] ,
|
|
[ 'bug632215-1.html' , 'bug632215-ref.html' ] ,
|
|
[ 'bug632215-2.html' , 'bug632215-ref.html' ] ,
|
|
[ 'bug633044-1.html' , 'bug633044-1-ref.html' ] ,
|
|
[ 'bug634406-1.html' , 'bug634406-1-ref.html' ] ,
|
|
[ 'bug644428-1.html' , 'bug644428-1-ref.html' ] ,
|
|
function() {SpecialPowers.setBoolPref("bidi.browser.ui", true);} ,
|
|
[ 'bug646382-1.html' , 'bug646382-1-ref.html' ] ,
|
|
[ 'bug646382-2.html' , 'bug646382-2-ref.html' ] ,
|
|
[ 'bug664087-1.html' , 'bug664087-1-ref.html' ] ,
|
|
[ 'bug664087-2.html' , 'bug664087-2-ref.html' ] ,
|
|
[ 'bug682712-1.html' , 'bug682712-1-ref.html' ] ,
|
|
function() {SpecialPowers.clearUserPref("bidi.browser.ui");} ,
|
|
[ 'bug746993-1.html' , 'bug746993-1-ref.html' ] ,
|
|
[ 'bug1007065-1.html' , 'bug1007065-1-ref.html' ] ,
|
|
[ 'bug1007067-1.html' , 'bug1007067-1-ref.html' ] ,
|
|
function() {SpecialPowers.clearUserPref("touchcaret.enabled");} ,
|
|
];
|
|
|
|
if (navigator.appVersion.indexOf("Android") == -1 &&
|
|
SpecialPowers.Services.appinfo.name != "B2G") {
|
|
tests.push(function() {SpecialPowers.setBoolPref("touchcaret.enabled", false);});
|
|
tests.push([ 'bug512295-1.html' , 'bug512295-1-ref.html' ]);
|
|
tests.push([ 'bug512295-2.html' , 'bug512295-2-ref.html' ]);
|
|
tests.push(function() {SpecialPowers.clearUserPref("touchcaret.enabled");});
|
|
tests.push(function() {SpecialPowers.setBoolPref("layout.css.overflow-clip-box.enabled", true);});
|
|
tests.push([ 'bug966992-1.html' , 'bug966992-1-ref.html' ]);
|
|
tests.push([ 'bug966992-2.html' , 'bug966992-2-ref.html' ]);
|
|
tests.push([ 'bug966992-3.html' , 'bug966992-3-ref.html' ]);
|
|
tests.push(function() {SpecialPowers.setBoolPref("layout.css.overflow-clip-box.enabled", false);});
|
|
tests.push([ 'bug923376.html' , 'bug923376-ref.html' ]);
|
|
} else {
|
|
is(SpecialPowers.getIntPref("layout.spellcheckDefault"), 0, "Spellcheck should be turned off for this platrom or this if..else check removed");
|
|
}
|
|
|
|
var testIndex = 0;
|
|
|
|
function nextTest() {
|
|
if (testIndex < tests.length) {
|
|
if (typeof(tests[testIndex]) == 'function') {
|
|
tests[testIndex]();
|
|
SimpleTest.executeSoon(nextTest);
|
|
} else {
|
|
refTest(tests[testIndex][0],tests[testIndex][1]);
|
|
}
|
|
++testIndex;
|
|
} else {
|
|
endTest();
|
|
}
|
|
}
|
|
function runTests() {
|
|
try {
|
|
try {
|
|
caretBlinkTime = SpecialPowers.getIntPref("ui.caretBlinkTime");
|
|
} catch (e) {}
|
|
SpecialPowers.setIntPref("ui.caretBlinkTime", -1);
|
|
|
|
nextTest();
|
|
} catch(e) {
|
|
endTest();
|
|
}
|
|
}
|
|
|
|
SimpleTest.waitForFocus(runTests);
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|