| <!DOCTYPE html> |
| <title>Badging: Supported values</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| // Testing valid input cases |
| 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, |
| `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, |
| `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, |
| "Resolves successfully when passed false as input (coerced to 0)" |
| ); |
| |
| const resultTrue = await navigator.setAppBadge(true); |
| assert_equals( |
| resultTrue, |
| undefined, |
| "Resolves successfully when passed true as input (coerced to 1)" |
| ); |
| }, "Resolves successfully for boolean input cases"); |
| </script> |