summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/badging
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/badging
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/badging')
-rw-r--r--testing/web-platform/tests/badging/META.yml1
-rw-r--r--testing/web-platform/tests/badging/badge-error.https.html36
-rw-r--r--testing/web-platform/tests/badging/badge-success.https.html62
-rw-r--r--testing/web-platform/tests/badging/idlharness.https.any.js17
4 files changed, 116 insertions, 0 deletions
diff --git a/testing/web-platform/tests/badging/META.yml b/testing/web-platform/tests/badging/META.yml
new file mode 100644
index 0000000000..1826b19d02
--- /dev/null
+++ b/testing/web-platform/tests/badging/META.yml
@@ -0,0 +1 @@
+spec: https://w3c.github.io/badging/
diff --git a/testing/web-platform/tests/badging/badge-error.https.html b/testing/web-platform/tests/badging/badge-error.https.html
new file mode 100644
index 0000000000..3da5cf61e8
--- /dev/null
+++ b/testing/web-platform/tests/badging/badge-error.https.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<title>Badging: Unsupported values</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.setAppBadge(-1));
+}, "Negative value not allowed");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.setAppBadge(
+ Number.MAX_SAFE_INTEGER + 1));
+}, "Value too large (2^53)");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.setAppBadge(Infinity));
+}, "Positive infinity");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.setAppBadge(-Infinity));
+}, "Negative infinity");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.setAppBadge(NaN));
+}, "NaN");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.setAppBadge("Foo"));
+}, 'Cannot convert to long: "Foo"');
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.setAppBadge({}));
+}, "Cannot convert to long: object");
+
+</script>
diff --git a/testing/web-platform/tests/badging/badge-success.https.html b/testing/web-platform/tests/badging/badge-success.https.html
new file mode 100644
index 0000000000..6a25962e7b
--- /dev/null
+++ b/testing/web-platform/tests/badging/badge-success.https.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<title>Badging: Supported values</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge();
+ assert_equals(result, undefined);
+}, "No parameter should show a flag with no numeric value.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(undefined);
+ assert_equals(result, undefined);
+}, "undefined should show a flag with no numeric value.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(1);
+ assert_equals(result, undefined);
+}, "An integer value of 3 should show the badge vale 3.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(10.6);
+ assert_equals(result, undefined);
+}, "Non-whole number should round down to nearest integer (10).");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(Number.MAX_SAFE_INTEGER);
+ assert_equals(result, undefined);
+}, "Maximum allowed value (2^53 - 1) should display saturated value: '99+'.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(0);
+ assert_equals(result, undefined);
+}, "Set to zero should clear the badge.");
+
+promise_test(async t => {
+ const result = await navigator.clearAppBadge();
+ assert_equals(result, undefined);
+}, "Should clear the badge.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(null);
+ assert_equals(result, undefined);
+}, "Setting to null should clear the badge.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(false);
+ assert_equals(result, undefined);
+}, "Setting to false should clear the badge.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge(true);
+ assert_equals(result, undefined);
+}, "Setting to true should display a value of 1.");
+
+promise_test(async t => {
+ const result = await navigator.setAppBadge("3");
+ assert_equals(result, undefined);
+}, "Setting to the string '3' should display a value of 3.");
+
+</script>
diff --git a/testing/web-platform/tests/badging/idlharness.https.any.js b/testing/web-platform/tests/badging/idlharness.https.any.js
new file mode 100644
index 0000000000..3e3ee9e7c4
--- /dev/null
+++ b/testing/web-platform/tests/badging/idlharness.https.any.js
@@ -0,0 +1,17 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+// META: timeout=long
+
+'use strict';
+
+idl_test(
+ ['badging'],
+ ['html', 'dom'],
+ idl_array => {
+ if (self.GLOBAL.isWorker()) {
+ idl_array.add_objects({ WorkerNavigator: ['navigator'] });
+ } else {
+ idl_array.add_objects({ Navigator: ['navigator'] });
+ }
+ }
+);