135 lines
5.0 KiB
HTML
135 lines
5.0 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function test()
|
|
{
|
|
const color = undefined;
|
|
const outlineColor = undefined;
|
|
const useViewportCoordinates = false;
|
|
const usePageCoordinates = true;
|
|
|
|
function getHighlightRects(callback) {
|
|
InspectorTest.evaluateInPage("JSON.stringify(Array.from(window.internals.inspectorHighlightRects()))", (error, value, wasThrown) => {
|
|
InspectorTest.assert(!error, "Unexpected error dumping highlight: " + error);
|
|
InspectorTest.assert(!wasThrown, "Unexpected exception when dumping highlight.");
|
|
callback(JSON.parse(value));
|
|
});
|
|
}
|
|
|
|
function dumpHighlightRects(callback) {
|
|
getHighlightRects((highlightRects) => {
|
|
InspectorTest.expectThat(highlightRects.length === 1, "Should be one highlight rect.");
|
|
InspectorTest.log("Highlight Rect: " + JSON.stringify(highlightRects[0]));
|
|
callback();
|
|
});
|
|
}
|
|
|
|
let suite = InspectorTest.createAsyncSuite("DOM.highlightQuad");
|
|
|
|
suite.addTestCase({
|
|
name: "CheckEmptyHighlight",
|
|
description: "Should not be a highlight yet.",
|
|
test(resolve, reject) {
|
|
getHighlightRects((highlightRects) => {
|
|
InspectorTest.expectThat(highlightRects.length === 0, "Should not be a highlight yet.");
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "HighlightSmallRectWithQuad",
|
|
description: "Should create a highlight using viewport coordinates.",
|
|
test(resolve, reject) {
|
|
let quad = new WI.Quad([0, 0, 100, 0, 100, 100, 100, 0]);
|
|
DOMAgent.highlightQuad(quad.toProtocol(), color, outlineColor, (error) => {
|
|
dumpHighlightRects(resolve);
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "HighlightSmallQuadViewportCoordinates",
|
|
description: "Should create a highlight using viewport coordinates.",
|
|
test(resolve, reject) {
|
|
let quad = new WI.Quad([100, 100, 150, 150, 100, 200, 50, 150]);
|
|
DOMAgent.highlightQuad(quad.toProtocol(), color, outlineColor, useViewportCoordinates, (error) => {
|
|
dumpHighlightRects(resolve);
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "HighlightSmallQuadPageCoordinates",
|
|
description: "Should create a highlight using page coordinates.",
|
|
test(resolve, reject) {
|
|
let quad = new WI.Quad([100, 100, 150, 150, 100, 200, 50, 150]);
|
|
DOMAgent.highlightQuad(quad.toProtocol(), color, outlineColor, usePageCoordinates, (error) => {
|
|
dumpHighlightRects(resolve);
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "HighlightSmallUnspecifiedCoordinatesUsesViewportCoordinates",
|
|
description: "Should create a highlight using page coordinates.",
|
|
test(resolve, reject) {
|
|
let quad = new WI.Quad([100, 100, 150, 150, 100, 200, 50, 150]);
|
|
DOMAgent.highlightQuad(quad.toProtocol(), color, outlineColor, (error) => {
|
|
dumpHighlightRects(resolve);
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "HighlightLargeQuadViewportCoordinates",
|
|
description: "Should create a highlight using viewport coordinates.",
|
|
test(resolve, reject) {
|
|
let quad = new WI.Quad([0, 0, 500, 0, 1000, 1000, 0, 2000]);
|
|
DOMAgent.highlightQuad(quad.toProtocol(), color, outlineColor, useViewportCoordinates, (error) => {
|
|
dumpHighlightRects(resolve);
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "HighlightLargeQuadPageCoordinates",
|
|
description: "Should create a highlight using viewport coordinates.",
|
|
test(resolve, reject) {
|
|
let quad = new WI.Quad([0, 0, 500, 0, 1000, 1000, 0, 2000]);
|
|
DOMAgent.highlightQuad(quad.toProtocol(), color, outlineColor, usePageCoordinates, (error) => {
|
|
dumpHighlightRects(resolve);
|
|
});
|
|
}
|
|
});
|
|
|
|
// ------
|
|
|
|
suite.addTestCase({
|
|
name: "BadQuadShouldError",
|
|
description: "Should get an error when specifying a quad with too few points.",
|
|
test(resolve, reject) {
|
|
let badQuadArray = [1, 2, 3, 4];
|
|
DOMAgent.highlightQuad(badQuadArray, color, outlineColor, usePageCoordinates, (error) => {
|
|
InspectorTest.expectThat(error, "Should produce an error.");
|
|
InspectorTest.log("Error: " + error);
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
|
|
InspectorTest.evaluateInPage("window.scrollTo(10, 10)", () => {
|
|
suite.runTestCasesAndFinish();
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Tests for the DOM.highlightQuad command.</p>
|
|
<!-- Ensure the page is scrollable so we can test highlight rects relative to a scroll page -->
|
|
<div style="height:2000px; width: 2000px; background:blue"></div>
|
|
</body>
|
|
</html>
|