diff options
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.js | 32 |
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); |