servo/tests/wpt/web-platform-tests/console/console-counting-label-conversion.any.js

55 lines
1.9 KiB
JavaScript

"use strict";
// https://console.spec.whatwg.org/#count
// https://console.spec.whatwg.org/#countreset
// TODO(domfarolino): make this a link to
// https://console.spec.whatwg/org/#counting pending
// the resolution of https://github.com/whatwg/console/issues/135
// TODO(domfarolino): DRY up the label conversion tests for count/countReset/time/timeEnd
// by probably making a helper function that passes in the console method to perform the
// conversion with so we're not duplicating everything
test(() => {
let countLabelToStringCalled = false;
console.count({
toString() {
countLabelToStringCalled = true;
}
});
assert_true(countLabelToStringCalled, "toString() must be called on count()'s label when label is an object");
}, "console.count()'s label gets converted to string via label.toString() when label is an object");
test(() => {
assert_throws({name: "Error"}, () => {
console.count({
toString() {
throw new Error("conversion error");
}
});
}, "count() must re-throw any exceptions thrown by label.toString() conversion");
}, "console.count() throws exceptions generated by erroneous label.toString() conversion");
test(() => {
let countLabelToStringCalled = false;
console.countReset({
toString() {
countLabelToStringCalled = true;
}
});
assert_true(countLabelToStringCalled, "toString() must be called on countReset()'s label when label is an object");
}, "console.countReset()'s label gets converted to string via label.toString() when label is an object");
test(() => {
assert_throws({name: "Error"}, () => {
console.countReset({
toString() {
throw new Error("conversion error");
}
});
}, "countReset() must re-throw any exceptions thrown by label.toString() conversion");
}, "console.countReset() throws exceptions generated by erroneous label.toString() conversion");