90 lines
2.8 KiB
HTML
90 lines
2.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function load() {
|
|
window.context2d = document.getCSSCanvasContext("2d", "css-canvas", 10, 10);
|
|
|
|
runTest();
|
|
}
|
|
|
|
let clients = [];
|
|
|
|
function createClient() {
|
|
clients.push(document.body.appendChild(document.createElement("div")));
|
|
}
|
|
|
|
function destroyClients() {
|
|
for (let client of clients)
|
|
client.remove();
|
|
|
|
clients = [];
|
|
|
|
setTimeout(() => { GCController.collect(); }, 0);
|
|
}
|
|
|
|
function test() {
|
|
let suite = InspectorTest.createAsyncSuite("Canvas.requestClientNodes.CSS");
|
|
|
|
function logClientNodes(clientNodes) {
|
|
for (let clientNode of clientNodes) {
|
|
if (clientNode)
|
|
InspectorTest.pass(`Client node "${clientNode.appropriateSelectorFor()}" is valid.`);
|
|
else
|
|
InspectorTest.fail("Invalid client node.");
|
|
}
|
|
}
|
|
|
|
suite.addTestCase({
|
|
name: "Canvas.requestClientNodes.CSS.Create",
|
|
description: "Check that creating a CSS canvas client node is tracked correctly.",
|
|
test(resolve, reject) {
|
|
WI.Canvas.awaitEvent(WI.Canvas.Event.ClientNodesChanged)
|
|
.then((event) => {
|
|
InspectorTest.expectEqual(event.target.cssCanvasName, "css-canvas", `Canvas with created client should have CSS name "css-canvas".`);
|
|
event.target.requestClientNodes((clientNodes) => {
|
|
InspectorTest.expectEqual(clientNodes.length, 1, "There should be one client node.");
|
|
logClientNodes(clientNodes);
|
|
resolve();
|
|
});
|
|
});
|
|
|
|
InspectorTest.evaluateInPage(`createClient()`);
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "Canvas.requestClientNodes.CSS.Destroy",
|
|
description: "Check that destroying a CSS canvas client node is tracked correctly.",
|
|
test(resolve, reject) {
|
|
WI.Canvas.awaitEvent(WI.Canvas.Event.ClientNodesChanged)
|
|
.then((event) => {
|
|
InspectorTest.expectEqual(event.target.cssCanvasName, "css-canvas", `Canvas with destroyed client should have CSS name "css-canvas".`);
|
|
event.target.requestClientNodes((clientNodes) => {
|
|
InspectorTest.expectEqual(clientNodes.length, 0, "There should be no client nodes.");
|
|
logClientNodes(clientNodes);
|
|
resolve();
|
|
});
|
|
});
|
|
|
|
InspectorTest.evaluateInPage(`destroyClients()`);
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
<style>
|
|
div {
|
|
width: 10px;
|
|
height: 10px;
|
|
background-image: -webkit-canvas(css-canvas);
|
|
}
|
|
</style>
|
|
</head>
|
|
<body onload="load()">
|
|
<p>Test that CanvasAgent tracks changes in the client nodes of a CSS canvas.</p>
|
|
</body>
|
|
</html>
|