blob: f876a610ea81bd7acd47d91d11bdb14aa012f10f [file] [log] [blame]
<html>
<head>
<script type="text/javascript" src="../http/tests/inspector-protocol/inspector-protocol-test.js"></script>
<script>
var styleElement1;
var styleElement2;
function createStyleSheet(textContent)
{
var styleElement = document.createElement("style");
styleElement.textContent = textContent;
document.head.appendChild(styleElement);
return styleElement;
}
function reopenWebInspector()
{
setTimeout(deferredReopening, 0);
function deferredReopening()
{
log("Closing inspector.\n");
closeInspector();
window.didReopen = 1;
log("Removing style sheet.\n");
document.head.removeChild(styleElement1);
log("Reopening inspector.");
openInspector();
}
}
function openWebInspector()
{
delete window.didReopen;
styleElement1 = createStyleSheet("body.class1 { color: red; } \n /*# sourceURL=foo.css */");
styleElement2 = createStyleSheet("body.class2 { color: green; } \n /*# sourceURL=bar.css */");
runTest();
}
function test()
{
InspectorTest.log("Running test");
InspectorTest.sendCommand("Runtime.evaluate", {"expression": "window.didReopen"}, dispatch);
function dispatch(response)
{
var result = response.result.result;
if (result.type !== "number") {
InspectorTest.log("Opening front-end for the first time");
runTests(reopenInspector);
} else {
InspectorTest.log("Opening front-end second time");
runTests(InspectorTest.completeTest.bind(InspectorTest));
}
}
function reopenInspector()
{
InspectorTest.sendCommand("Runtime.evaluate", {"expression": "reopenWebInspector()"});
}
function runTests(callback)
{
InspectorTest.eventHandler["CSS.styleSheetAdded"] = styleSheetAdded;
InspectorTest.eventHandler["CSS.styleSheetRemoved"] = styleSheetRemoved;
var headersAdded = [];
var headersRemoved = [];
function styleSheetAdded(response)
{
headersAdded.push(response.params.header);
}
function styleSheetRemoved(response)
{
headersRemoved.push(response.params.styleSheetId);
}
InspectorTest.log("Enabling CSS domain.");
InspectorTest.sendCommandOrDie("DOM.enable", {});
InspectorTest.sendCommand("CSS.enable", {}, wasEnabled);
function wasEnabled()
{
function compareFunction(a, b)
{
return a.styleSheetId - b.styleSheetId;
}
var headers = {};
headersAdded.sort(compareFunction);
for (var i = 0; i < headersAdded.length; ++i) {
var header = headersAdded[i];
headers[header.styleSheetId] = header.sourceURL;
InspectorTest.log(" - style sheet added: " + header.sourceURL);
}
headersRemoved.sort();
for (var i = 0; i < headersRemoved.length; ++i)
InspectorTest.log(" - style sheet removed: " + headers[headersRemoved[i]]);
callback();
}
}
}
</script>
</head>
<body onload="openWebInspector()">
<p>This test checks that if style sheet is removed between two inspector launches it is not reported to frontend.</p>
</body>
</html>