blob: 902300dab93441891dbd98d2cf7cb9be10c5dd17 [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/elements-test.js"></script>
<script src="../../http/tests/inspector/debugger-test.js"></script>
<script>
function test()
{
var inspectorResource;
WebInspector.showPanel("elements");
InspectorTest.selectNodeAndWaitForStyles("inspected", step1);
function step1(node)
{
WebInspector.cssModel.addRule(node.id, "#inspected", successCallback, failureCallback);
function successCallback()
{
// setTimwout is needed here because showScriptSource callback is triggered by uiSourceCode addRevision handling
// and we need to wait until the code flow exits StyleFile.addRevision.
InspectorTest.showScriptSource("inspector-stylesheet", setTimeout.bind(this, step2, 0));
}
function failureCallback()
{
InspectorTest.addResult("Failed to add rule.");
InspectorTest.completeTest();
}
}
function step2(sourceFrame)
{
var uiSourceCode = sourceFrame._uiSourceCode;
InspectorTest.addResult("Inspector stylesheet URL: " + uiSourceCode.displayName());
uiSourceCode.requestContent(printContent());
InspectorTest.addResult("\nSetting new content");
uiSourceCode.setWorkingCopy("#inspected { background-color: green; }");
uiSourceCode.commitWorkingCopy(step3.bind(this, uiSourceCode));
}
function step3(uiSourceCode)
{
uiSourceCode.requestContent(printContent(selectNode));
function selectNode()
{
InspectorTest.selectNodeAndWaitForStyles("inspected", dumpStyles);
}
function dumpStyles()
{
InspectorTest.dumpSelectedElementStyles(true, false, true);
InspectorTest.completeTest();
}
}
function printContent(next)
{
function result(content)
{
InspectorTest.addResult("Inspector stylesheet content:");
InspectorTest.addResult(content);
if (next)
next();
}
return result;
}
}
</script>
</head>
<body onload="runTest()">
<p>
Tests that adding a new rule creates inspector stylesheet resource and allows its live editing.
</p>
<div id="inspected">Text</div>
</body>
</html>