| "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)"); |