blob: 2ae0d40dfd14222422c5350421c87f817e927622 [file] [log] [blame] [edit]
"use strict";
test(() => {
assert_true("setAppBadge" in navigator, "navigator.setAppBadge should exist");
assert_true(
"clearAppBadge" in navigator,
"navigator.clearAppBadge should exist",
);
}, "Badging API interface exists");
promise_test(async () => {
const numberTestCases = [
{ value: undefined, desc: "undefined" },
{ value: null, desc: "null (coerced to 0)" },
{ value: 1, desc: "integer value of 1" },
{ value: 10.6, desc: "non-whole number" },
{ value: Number.MAX_SAFE_INTEGER, desc: "maximum allowed value" },
{ value: 0, desc: "zero" },
];
for (const { value, desc } of numberTestCases) {
const result = await navigator.setAppBadge(value);
assert_equals(
result,
undefined,
`setAppBadge resolves successfully when passed ${desc} as input`,
);
}
}, "Resolves successfully for number input cases");
promise_test(async () => {
const stringTestCases = [
{ value: "3", desc: "numeric string '3' (coerced to 3)" },
{
value: " 300.000 ",
desc: "numeric string ' 300.000 ' (coerced to 300)",
},
{ value: "", desc: "empty string (coerced to 0)" },
];
for (const { value, desc } of stringTestCases) {
const result = await navigator.setAppBadge(value);
assert_equals(
result,
undefined,
`setAppBadge resolves successfully when passed ${desc} as input`,
);
}
}, "Resolves successfully for string input cases");
promise_test(async () => {
const resultFalse = await navigator.setAppBadge(false);
assert_equals(
resultFalse,
undefined,
"setAppBadge resolves successfully when passed false as input (coerced to 0)",
);
const resultTrue = await navigator.setAppBadge(true);
assert_equals(
resultTrue,
undefined,
"setAppBadge resolves successfully when passed true as input (coerced to 1)",
);
}, "Resolves successfully for boolean input cases");
promise_test(async () => {
const result = await navigator.clearAppBadge();
assert_equals(result, undefined, "clearAppBadge should return undefined");
}, "clearAppBadge resolves successfully");
promise_test(async () => {
// Test calling setAppBadge with no arguments (should set flag)
const result = await navigator.setAppBadge();
assert_equals(
result,
undefined,
"setAppBadge() with no arguments should return undefined",
);
}, "setAppBadge with no arguments succeeds (flag mode)");