mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
var gWindowUtils;
|
|
|
|
try {
|
|
gWindowUtils = SpecialPowers.getDOMWindowUtils(window);
|
|
if (gWindowUtils && !gWindowUtils.compareCanvases)
|
|
gWindowUtils = null;
|
|
} catch (e) {
|
|
gWindowUtils = null;
|
|
}
|
|
|
|
function snapshotWindow(win, withCaret) {
|
|
return SpecialPowers.snapshotWindow(win, withCaret);
|
|
}
|
|
|
|
// If the two snapshots don't compare as expected (true for equal, false for
|
|
// unequal), returns their serializations as data URIs. In all cases, returns
|
|
// whether the comparison was as expected.
|
|
function compareSnapshots(s1, s2, expected) {
|
|
var s1Str, s2Str;
|
|
var correct = false;
|
|
if (gWindowUtils) {
|
|
// First, check that the canvases are the same size.
|
|
var equal;
|
|
if (s1.width != s2.width || s1.height != s2.height) {
|
|
equal = false;
|
|
} else {
|
|
try {
|
|
equal = (gWindowUtils.compareCanvases(s1, s2, {}) == 0);
|
|
} catch (e) {
|
|
equal = false;
|
|
ok(false, "Exception thrown from compareCanvases: " + e);
|
|
}
|
|
}
|
|
correct = (equal == expected);
|
|
}
|
|
|
|
if (!correct) {
|
|
s1Str = s1.toDataURL();
|
|
s2Str = s2.toDataURL();
|
|
|
|
if (!gWindowUtils) {
|
|
correct = ((s1Str == s2Str) == expected);
|
|
}
|
|
}
|
|
|
|
return [correct, s1Str, s2Str];
|
|
}
|
|
|
|
function assertSnapshots(s1, s2, expected, s1name, s2name) {
|
|
var [correct, s1Str, s2Str] = compareSnapshots(s1, s2, expected);
|
|
var sym = expected ? "==" : "!=";
|
|
ok(correct, "reftest comparison: " + sym + " " + s1name + " " + s2name);
|
|
if (!correct) {
|
|
var report = "REFTEST TEST-UNEXPECTED-FAIL | " + s1name + " | image comparison (" + sym + ")\n";
|
|
if (expected) {
|
|
report += "REFTEST IMAGE 1 (TEST): " + s1Str + "\n";
|
|
report += "REFTEST IMAGE 2 (REFERENCE): " + s2Str + "\n";
|
|
} else {
|
|
report += "REFTEST IMAGE: " + s1Str + "\n";
|
|
}
|
|
dump(report);
|
|
}
|
|
}
|