| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Console Count Reset - Automated Test</title> |
| <link rel="help" href="https://console.spec.whatwg.org/#countreset"> |
| <meta name="assert" content="Console countReset method logging is observable via WebDriver BiDi log.entryAdded"> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js?feature=bidi"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <script src="/console/helper.js"></script> |
| |
| <script> |
| promise_test(async (t) => { |
| const unsubscribe = await test_driver.bidi.log.entry_added.subscribe({contexts: [window]}); |
| t.add_cleanup(async () => await unsubscribe()); |
| |
| const expected_counts = [ |
| "default: 1","default: 1","default: 1","default: 1", |
| "default: 1","default: 1","default: 1","default: 1", |
| "a label: 1","a label: 1" |
| ]; |
| |
| const counts_promise = waitForConsoleEntries(t, { |
| count: expected_counts.length, |
| accept: (entry) => |
| entry.method === "count" && |
| typeof entry.text === "string" && |
| (entry.text === "default: 1" || entry.text === "a label: 1"), |
| }).then(entries => entries.map(({text}) => text)); |
| |
| console.count(); |
| console.countReset(); |
| console.count(); |
| console.countReset(); |
| |
| console.count(undefined); |
| console.countReset(undefined); |
| console.count(undefined); |
| console.countReset(undefined); |
| |
| console.count("default"); |
| console.countReset("default"); |
| console.count("default"); |
| console.countReset("default"); |
| |
| console.count({toString() {return "default"}}); |
| console.countReset({toString() {return "default"}}); |
| console.count({toString() {return "default"}}); |
| console.countReset({toString() {return "default"}}); |
| |
| console.count("a label"); |
| console.countReset("a label"); |
| console.count("a label"); |
| |
| const count_entries = await counts_promise; |
| assert_array_equals(count_entries, expected_counts); |
| |
| const missing_label = "__wpt_missing_label__"; |
| |
| const warning_promise = waitForConsoleEntries(t, { |
| count: 1, |
| accept: (entry) => |
| typeof entry.text === "string" && entry.text.includes(missing_label), |
| }); |
| console.countReset(missing_label); |
| |
| const [warning_entry] = await warning_promise; |
| assert_true( |
| typeof warning_entry.text === "string" && warning_entry.text.length > 0, |
| "Missing-label countReset should produce a non-empty message" |
| ); |
| }, "console.countReset resets counts and logs a message for missing labels"); |
| </script> |