summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/Segmenter/constructor/constructor/options-granularity-valid.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/intl402/Segmenter/constructor/constructor/options-granularity-valid.js')
-rw-r--r--js/src/tests/test262/intl402/Segmenter/constructor/constructor/options-granularity-valid.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/js/src/tests/test262/intl402/Segmenter/constructor/constructor/options-granularity-valid.js b/js/src/tests/test262/intl402/Segmenter/constructor/constructor/options-granularity-valid.js
new file mode 100644
index 0000000000..f96b1cf45a
--- /dev/null
+++ b/js/src/tests/test262/intl402/Segmenter/constructor/constructor/options-granularity-valid.js
@@ -0,0 +1,32 @@
+// |reftest| skip-if(!Intl.Segmenter) -- Intl.Segmenter is not enabled unconditionally
+// Copyright 2018 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-Intl.Segmenter
+description: Checks handling of valid values for the granularity option to the Segmenter constructor.
+info: |
+ Intl.Segmenter ([ locales [ , options ]])
+
+ 11. Let granularity be ? GetOption(options, "granularity", "string", « "grapheme", "word", "sentence" », "grapheme").
+ 12. Set segmenter.[[SegmenterGranularity]] to granularity.
+features: [Intl.Segmenter]
+---*/
+
+const validOptions = [
+ [undefined, "grapheme"],
+ ["grapheme", "grapheme"],
+ ["word", "word"],
+ ["sentence", "sentence"],
+ [{ toString() { return "word"; } }, "word"],
+];
+
+for (const [granularity, expected] of validOptions) {
+ const segmenter = new Intl.Segmenter([], { granularity });
+ const resolvedOptions = segmenter.resolvedOptions();
+ assert.sameValue(resolvedOptions.granularity, expected);
+}
+
+assert.throws(RangeError, () => new Intl.Segmenter([], {granularity: "line"}));
+
+reportCompare(0, 0);