Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /badging/badge-error.https.any.html - WPT Dashboard Interop Dashboard
- /badging/badge-error.https.any.worker.html - WPT Dashboard Interop Dashboard
"use strict";
promise_test(async (t) => {
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge(-1),
"Reject with TypeError if the value is negative",
);
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge(Number.MAX_SAFE_INTEGER + 1),
"Reject with TypeError if the value is larger than the maximum safe integer (2^53 - 1)",
);
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge(Infinity),
"Reject with TypeError if the value is positive infinity",
);
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge(-Infinity),
"Reject with TypeError if the value is negative infinity",
);
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge(NaN),
"Reject with TypeError if the value is NaN",
);
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge("Foo"),
"Reject with TypeError if the value cannot be converted to a long: string",
);
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge({}),
"Reject with TypeError if the value cannot be converted to a long: object",
);
await promise_rejects_js(
t,
TypeError,
navigator.setAppBadge([]),
"Reject with TypeError if the value cannot be converted to a long: array",
);
}, "Test various invalid input cases for setAppBadge()");
promise_test(async () => {
// Test sequential operations don't interfere
await navigator.setAppBadge(1);
await navigator.setAppBadge(5);
await navigator.setAppBadge(0);
await navigator.clearAppBadge();
await navigator.setAppBadge();
await navigator.clearAppBadge();
}, "Sequential badge operations work correctly");