summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/RelativeTimeFormat/prototype/formatToParts/result-type.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /js/src/tests/test262/intl402/RelativeTimeFormat/prototype/formatToParts/result-type.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/intl402/RelativeTimeFormat/prototype/formatToParts/result-type.js')
-rw-r--r--js/src/tests/test262/intl402/RelativeTimeFormat/prototype/formatToParts/result-type.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/js/src/tests/test262/intl402/RelativeTimeFormat/prototype/formatToParts/result-type.js b/js/src/tests/test262/intl402/RelativeTimeFormat/prototype/formatToParts/result-type.js
new file mode 100644
index 0000000000..127642a5ef
--- /dev/null
+++ b/js/src/tests/test262/intl402/RelativeTimeFormat/prototype/formatToParts/result-type.js
@@ -0,0 +1,84 @@
+// Copyright 2018 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-Intl.RelativeTimeFormat.prototype.formatToParts
+description: Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
+info: |
+ FormatRelativeTimeToParts ( relativeTimeFormat, value, unit )
+
+ 3. Let n be 0.
+ 4. For each part in parts, do:
+ a. Let O be ObjectCreate(%ObjectPrototype%).
+ b. Perform ! CreateDataPropertyOrThrow(O, "type", part.[[Type]]).
+ c. Perform ! CreateDataPropertyOrThrow(O, "value", part.[[Value]]).
+ d. If part has a [[Unit]] field,
+ i. Perform ! CreateDataPropertyOrThrow(O, "unit", part.[[Unit]]).
+ e. Perform ! CreateDataPropertyOrThrow(result, ! ToString(n), O).
+ f. Increment n by 1.
+
+features: [Intl.RelativeTimeFormat]
+includes: [propertyHelper.js]
+---*/
+
+const rtf = new Intl.RelativeTimeFormat("en-US");
+
+assert.sameValue(typeof rtf.formatToParts, "function", "formatToParts should be supported");
+
+const parts = rtf.formatToParts(3, "second");
+
+assert.sameValue(Object.getPrototypeOf(parts), Array.prototype, "parts: prototype");
+assert.sameValue(Array.isArray(parts), true, "parts: isArray");
+assert.sameValue(parts.length, 3, "parts: length");
+
+assert.sameValue(Object.getPrototypeOf(parts[0]), Object.prototype, "parts[0]: prototype");
+verifyProperty(parts[0], "type", {
+ value: "literal",
+ writable: true,
+ enumerable: true,
+ configurable: true,
+});
+verifyProperty(parts[0], "value", {
+ value: "in ",
+ writable: true,
+ enumerable: true,
+ configurable: true,
+});
+
+
+assert.sameValue(Object.getPrototypeOf(parts[1]), Object.prototype, "parts[1]: prototype");
+verifyProperty(parts[1], "type", {
+ value: "integer",
+ writable: true,
+ enumerable: true,
+ configurable: true,
+});
+verifyProperty(parts[1], "value", {
+ value: "3",
+ writable: true,
+ enumerable: true,
+ configurable: true,
+});
+verifyProperty(parts[1], "unit", {
+ value: "second",
+ writable: true,
+ enumerable: true,
+ configurable: true,
+});
+
+
+assert.sameValue(Object.getPrototypeOf(parts[2]), Object.prototype, "parts[2]: prototype");
+verifyProperty(parts[2], "type", {
+ value: "literal",
+ writable: true,
+ enumerable: true,
+ configurable: true,
+});
+verifyProperty(parts[2], "value", {
+ value: " seconds",
+ writable: true,
+ enumerable: true,
+ configurable: true,
+});
+
+reportCompare(0, 0);