70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
"use strict";
|
|
|
|
const kPrefHighlightAll = "findbar.highlightAll";
|
|
const kPrefModalHighlight = "findbar.modalHighlight";
|
|
|
|
add_setup(async function () {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
[kPrefHighlightAll, true],
|
|
[kPrefModalHighlight, true],
|
|
],
|
|
});
|
|
});
|
|
|
|
add_task(async function testIframeOffset() {
|
|
let url = kFixtureBaseURL + "file_FinderIframeTest.html";
|
|
|
|
await BrowserTestUtils.withNewTab(url, async function (browser) {
|
|
let findbar = gBrowser.getFindBar();
|
|
await promiseOpenFindbar(findbar);
|
|
|
|
let word = "frame";
|
|
let expectedResult = {
|
|
rectCount: 12,
|
|
insertCalls: [2, 4],
|
|
removeCalls: [0, 2],
|
|
};
|
|
let promise = promiseTestHighlighterOutput(
|
|
browser,
|
|
word,
|
|
expectedResult,
|
|
(maskNode, outlineNode, rects) => {
|
|
Assert.equal(
|
|
rects.length,
|
|
expectedResult.rectCount,
|
|
"Rect counts should match"
|
|
);
|
|
// Checks to guard against regressing this functionality:
|
|
let expectedOffsets = [
|
|
{ x: 16, y: 60 },
|
|
{ x: 68, y: 104 },
|
|
{ x: 21, y: 215 },
|
|
{ x: 78, y: 264 },
|
|
{ x: 21, y: 375 },
|
|
{ x: 78, y: 424 },
|
|
{ x: 20, y: 534 },
|
|
{ x: 93, y: 534 },
|
|
{ x: 71, y: 577 },
|
|
{ x: 145, y: 577 },
|
|
];
|
|
for (let i = 1, l = rects.length - 1; i < l; ++i) {
|
|
let rect = rects[i];
|
|
let expected = expectedOffsets[i - 1];
|
|
Assert.equal(
|
|
Math.floor(rect.x),
|
|
expected.x,
|
|
"Horizontal offset should match for rect " + i
|
|
);
|
|
Assert.equal(
|
|
Math.floor(rect.y),
|
|
expected.y,
|
|
"Vertical offset should match for rect " + i
|
|
);
|
|
}
|
|
}
|
|
);
|
|
await promiseEnterStringIntoFindField(findbar, word);
|
|
await promise;
|
|
});
|
|
});
|