Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<meta charset="utf-8">
<title>Console Count Reset - Automated Test</title>
<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>