blob: bd6bbc1bf576080417ba65dfba0158367c9de39d [file] [log] [blame]
<!doctype html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script>
function test()
{
let suite = InspectorTest.createAsyncSuite("DOM.highlightFrame");
let mainFrame = WI.frameResourceManager.mainFrame;
let childFrames = mainFrame.childFrameCollection.toArray();
InspectorTest.expectEqual(childFrames.length, 2, "Page should have subframes.");
function getHighlight(callback) {
InspectorTest.evaluateInPage("window.internals.inspectorHighlightObject()", (error, value, wasThrown) => {
InspectorTest.assert(!error, "Unexpected error dumping highlight: " + error);
InspectorTest.assert(!wasThrown, "Unexpected exception when dumping highlight.");
callback(JSON.parse(value));
});
}
function dumpHighlight(callback) {
getHighlight((highlightObjectPayload) => {
InspectorTest.log("Highlight Object: " + JSON.stringify(highlightObjectPayload));
callback();
});
}
suite.addTestCase({
name: "CheckEmptyHighlight",
description: "Should not be a highlight yet.",
test(resolve, reject) {
getHighlight((highlightObjectPayload) => {
InspectorTest.expectThat(highlightObjectPayload.length === 0, "Should not be a highlight yet.");
resolve();
});
}
});
suite.addTestCase({
name: "HighlightMainFrame",
description: "Main frame does not have an owner element, so there will be no highlight.",
test(resolve, reject) {
DOMAgent.highlightFrame(mainFrame.id, undefined, undefined, (error) => {
getHighlight((highlightObjectPayload) => {
InspectorTest.expectThat(highlightObjectPayload.length === 0, "Should not be a highlight for the main frame.");
resolve();
});
});
}
});
suite.addTestCase({
name: "HighlightChildFrame1",
description: "Should highlight child frame 1.",
test(resolve, reject) {
DOMAgent.highlightFrame(childFrames[0].id, undefined, undefined, (error) => {
InspectorTest.assert(!error, "Should not have an error.");
dumpHighlight(resolve);
});
}
});
suite.addTestCase({
name: "HighlightChildFrame2",
description: "Should highlight child frame 2.",
test(resolve, reject) {
DOMAgent.highlightFrame(childFrames[1].id, undefined, undefined, (error) => {
InspectorTest.assert(!error, "Should not have an error.");
dumpHighlight(resolve);
});
}
});
// ------
suite.addTestCase({
name: "BadFrameId",
description: "Bad frame id should cause an error.",
test(resolve, reject) {
DOMAgent.highlightFrame("bad-frame-id", undefined, undefined, (error) => {
InspectorTest.expectThat(error, "Should produce an error.");
InspectorTest.log("Error: " + error);
resolve();
});
}
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>Tests for the DOM.highlightFrame command.</p>
<div>
<iframe id="frame-1" src="resources/highlight-iframe.html"></iframe>
<iframe id="frame-2" src="resources/highlight-iframe.html"></iframe>
</div>
</body>
</html>