aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/intl/number-format/unified/percent.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/intl/number-format/unified/percent.js')
-rw-r--r--deps/v8/test/intl/number-format/unified/percent.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/deps/v8/test/intl/number-format/unified/percent.js b/deps/v8/test/intl/number-format/unified/percent.js
new file mode 100644
index 0000000000..9918210ec7
--- /dev/null
+++ b/deps/v8/test/intl/number-format/unified/percent.js
@@ -0,0 +1,65 @@
+// Copyright 2019 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-intl-numberformat-unified
+//
+// Test the handling of "percent" w/ "unit"
+
+let nf1 = new Intl.NumberFormat("en-US", {
+ style: "percent",
+ unitDisplay: "long" // Read, but ignored.
+});
+
+let resolved1 = nf1.resolvedOptions();
+assertEquals("percent", resolved1.style);
+assertEquals(undefined, resolved1.unit);
+assertEquals(undefined, resolved1.unitDisplay);
+
+let parts1 = nf1.formatToParts(100);
+assertEquals(4, parts1.length);
+assertEquals("integer", parts1[0].type);
+assertEquals("10", parts1[0].value);
+assertEquals("group", parts1[1].type);
+assertEquals(",", parts1[1].value);
+assertEquals("integer", parts1[2].type);
+assertEquals("000", parts1[2].value);
+assertEquals("percentSign", parts1[3].type);
+assertEquals("%", parts1[3].value);
+
+let nf2 = new Intl.NumberFormat("en-US", {
+ style: "unit",
+ unit: "percent",
+ unitDisplay: "long" // This is OK
+});
+
+let resolved2 = nf2.resolvedOptions();
+assertEquals("unit", resolved2.style);
+assertEquals("percent", resolved2.unit);
+assertEquals("long", resolved2.unitDisplay);
+
+let parts2 = nf2.formatToParts(100);
+assertEquals(3, parts2.length);
+assertEquals("integer", parts2[0].type);
+assertEquals("100", parts2[0].value);
+assertEquals("literal", parts2[1].type);
+assertEquals(" ", parts2[1].value);
+assertEquals("unit", parts2[2].type);
+assertEquals("percent", parts2[2].value);
+
+let nf3 = new Intl.NumberFormat("en-US", {
+ style: "unit",
+ unit: "percent"
+});
+
+let resolved3 = nf3.resolvedOptions();
+assertEquals("unit", resolved3.style);
+assertEquals("percent", resolved3.unit);
+assertEquals("short", resolved3.unitDisplay);
+
+let parts3 = nf3.formatToParts(100);
+assertEquals(2, parts3.length);
+assertEquals("integer", parts3[0].type);
+assertEquals("100", parts3[0].value);
+assertEquals("unit", parts3[1].type);
+assertEquals("%", parts3[1].value);