| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/inspector-test.js"></script> |
| <script> |
| function test() |
| { |
| let suite = InspectorTest.createAsyncSuite("console.time and console.timeEnd"); |
| |
| suite.addTestCase({ |
| name: "DefaultLabel", |
| description: "Test that default label works as expected.", |
| test(resolve, reject) { |
| let seen = 0; |
| const expected = 3; |
| WI.consoleManager.addEventListener(WI.ConsoleManager.Event.MessageAdded, handler); |
| function handler(event) { |
| let message = event.data.message; |
| InspectorTest.expectThat(message.type === WI.ConsoleMessage.MessageType.Timing, "Should receive a Timing type message."); |
| InspectorTest.expectThat(message.messageText.includes("default"), "Message should contain the 'default' label name somewhere."); |
| if (++seen === expected) { |
| WI.consoleManager.removeEventListener(WI.ConsoleManager.Event.MessageAdded, handler); |
| resolve(); |
| } |
| } |
| |
| InspectorTest.evaluateInPage("console.time()"); |
| InspectorTest.evaluateInPage("console.timeEnd()"); |
| |
| InspectorTest.evaluateInPage("console.time(undefined)"); |
| InspectorTest.evaluateInPage("console.timeEnd('default')"); |
| |
| InspectorTest.evaluateInPage("console.time('default')"); |
| InspectorTest.evaluateInPage("console.timeEnd(undefined)"); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "UserLabels", |
| description: "Test that user labels works as expected.", |
| test(resolve, reject) { |
| WI.consoleManager.awaitEvent(WI.ConsoleManager.Event.MessageAdded) |
| .then((event) => { |
| let message = event.data.message; |
| InspectorTest.expectThat(message.type === WI.ConsoleMessage.MessageType.Timing, "Should receive a Timing type message."); |
| InspectorTest.expectThat(message.messageText.includes("my-label"), "Message should contain the 'my-label' label name somewhere."); |
| }) |
| .then(resolve, reject); |
| |
| InspectorTest.evaluateInPage("console.time('my-label')"); |
| InspectorTest.evaluateInPage("console.timeEnd('my-label')"); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "MultipleTimers", |
| description: "Test that multiple timers running at the same time work as expected.", |
| test(resolve, reject) { |
| let seen = 0; |
| const expected = 2; |
| WI.consoleManager.addEventListener(WI.ConsoleManager.Event.MessageAdded, handler); |
| function handler(event) { |
| let message = event.data.message; |
| let expectedLabel = seen === 0 ? "my-label-2" : "my-label-1"; |
| InspectorTest.expectThat(message.type === WI.ConsoleMessage.MessageType.Timing, "Should receive a Timing type message."); |
| InspectorTest.expectThat(message.messageText.includes(expectedLabel), "Message should contain the '" + expectedLabel + "' label name somewhere."); |
| if (++seen === expected) { |
| WI.consoleManager.removeEventListener(WI.ConsoleManager.Event.MessageAdded, handler); |
| resolve(); |
| } |
| } |
| |
| InspectorTest.evaluateInPage("console.time('my-label-1')"); |
| InspectorTest.evaluateInPage("console.time('my-label-2')"); |
| InspectorTest.evaluateInPage("console.timeEnd('my-label-2')"); |
| InspectorTest.evaluateInPage("console.timeEnd('my-label-1')"); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "WarnWhenExisting", |
| description: "Test for a warning when trying to start an already started timer.", |
| test(resolve, reject) { |
| WI.consoleManager.addEventListener(WI.ConsoleManager.Event.MessageAdded, handler); |
| function handler(event) { |
| let message = event.data.message; |
| if (message.level === WI.ConsoleMessage.MessageLevel.Warning) { |
| InspectorTest.expectThat(message.type === WI.ConsoleMessage.MessageType.Timing, "Should receive a Timing type message."); |
| InspectorTest.pass("Should receive a Warning level message"); |
| InspectorTest.expectThat(message.messageText.includes("default"), "Message should contain the 'default' label name somewhere."); |
| return; |
| } |
| if (message.type === WI.ConsoleMessage.MessageType.Timing) { |
| WI.consoleManager.removeEventListener(WI.ConsoleManager.Event.MessageAdded, handler); |
| resolve(); |
| } |
| } |
| |
| InspectorTest.evaluateInPage("console.time()"); |
| InspectorTest.evaluateInPage("console.time()"); // Warning |
| InspectorTest.evaluateInPage("console.timeEnd()"); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "WarnWhenNotExisting", |
| description: "Test for a warning when trying to start an already started timer.", |
| test(resolve, reject) { |
| WI.consoleManager.awaitEvent(WI.ConsoleManager.Event.MessageAdded) |
| .then((event) => { |
| let message = event.data.message; |
| InspectorTest.expectThat(message.type === WI.ConsoleMessage.MessageType.Timing, "Should receive a Timing type message."); |
| InspectorTest.expectThat(message.level === WI.ConsoleMessage.MessageLevel.Warning, "Should receive a Warning level message."); |
| InspectorTest.expectThat(message.messageText.includes("default"), "Message should contain the 'default' label name somewhere."); |
| }) |
| .then(resolve, reject); |
| |
| InspectorTest.evaluateInPage("console.timeEnd()"); |
| } |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests for the console.time and console.timeEnd APIs.</p> |
| </body> |
| </html> |