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