66 lines
1.8 KiB
HTML
66 lines
1.8 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function test()
|
|
{
|
|
let suite = InspectorTest.createAsyncSuite("Object");
|
|
|
|
suite.addTestCase({
|
|
name: "WI.Object.prototype.dispatchEventToListeners",
|
|
description: "WI.Object shouldn't dispatch constructor-level events multiple times",
|
|
test(resolve, reject) {
|
|
class Parent extends WI.Object {}
|
|
class Child extends Parent {}
|
|
|
|
const eventName = "clicked";
|
|
let dispatchCount = 0;
|
|
|
|
Parent.addEventListener(eventName, () => dispatchCount++);
|
|
|
|
let child = new Child;
|
|
child.dispatchEventToListeners(eventName);
|
|
|
|
InspectorTest.log("Dispatch count: " + dispatchCount);
|
|
|
|
resolve();
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "WI.Object.prototype.awaitEvent",
|
|
description: "awaitEvent should only trigger once",
|
|
test(resolve, reject) {
|
|
const eventName = "test";
|
|
let dispatchCount = 0;
|
|
|
|
let object = new WI.Object;
|
|
|
|
object.awaitEvent(eventName).then(() => {
|
|
dispatchCount++;
|
|
|
|
InspectorTest.expectThat(dispatchCount === 1, "Await event handler should be dispatched just once.");
|
|
InspectorTest.log("Dispatch count: " + dispatchCount);
|
|
|
|
// Resolve test on second event dispatch.
|
|
object.awaitEvent(eventName).then(() => {
|
|
resolve();
|
|
});
|
|
|
|
object.dispatchEventToListeners(eventName);
|
|
});
|
|
|
|
object.dispatchEventToListeners(eventName);
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Testing WI.Object.</p>
|
|
</body>
|
|
</html>
|