summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/DurationFormat/constructor-options-style-valid.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/intl402/DurationFormat/constructor-options-style-valid.js')
-rw-r--r--js/src/tests/test262/intl402/DurationFormat/constructor-options-style-valid.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/tests/test262/intl402/DurationFormat/constructor-options-style-valid.js b/js/src/tests/test262/intl402/DurationFormat/constructor-options-style-valid.js
new file mode 100644
index 0000000000..03ebfe4d2d
--- /dev/null
+++ b/js/src/tests/test262/intl402/DurationFormat/constructor-options-style-valid.js
@@ -0,0 +1,34 @@
+// |reftest| skip -- Intl.DurationFormat is not supported
+// Copyright 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-Intl.DurationFormat
+description: Checks handling of valid values for the style option to the DurationFormat constructor.
+info: |
+ InitializeDurationFormat (DurationFormat, locales, options)
+ (...)
+ 13. Let style be ? GetOption(options, "style", "string", « "long", "short", "narrow", "digital" », "short").
+ 14. Set durationFormat.[[Style]] to style.
+features: [Intl.DurationFormat]
+---*/
+
+const validOptions = [
+ [undefined, "short"],
+ ["long", "long"],
+ ["short", "short"],
+ ["narrow", "narrow"],
+ ["digital", "digital"],
+ [{ toString() { return "short"; } }, "short"],
+ [{ toString() { return "long"; } }, "long"],
+ [{ toString() { return "narrow"; } }, "narrow"],
+ [{ toString() { return "digital"; } }, "digital"],
+];
+
+for (const [validOption, expected] of validOptions) {
+ const df = new Intl.DurationFormat([], {"style": validOption});
+ const resolvedOptions = df.resolvedOptions();
+ assert.sameValue(resolvedOptions.style, expected);
+}
+
+reportCompare(0, 0);