diff options
Diffstat (limited to 'deps/v8/test/intl/collator')
-rw-r--r-- | deps/v8/test/intl/collator/de-sort.js | 14 | ||||
-rw-r--r-- | deps/v8/test/intl/collator/options.js | 121 |
2 files changed, 135 insertions, 0 deletions
diff --git a/deps/v8/test/intl/collator/de-sort.js b/deps/v8/test/intl/collator/de-sort.js index 278b9492d3..005620c3be 100644 --- a/deps/v8/test/intl/collator/de-sort.js +++ b/deps/v8/test/intl/collator/de-sort.js @@ -42,3 +42,17 @@ assertEquals('flüße', result[5]); assertEquals('FUSSE', result[6]); assertEquals('Fuße', result[7]); assertEquals('März', result[8]); + +result = ["AE", "Ä"].sort(new Intl.Collator("de", {usage: "sort"}).compare) +assertEquals("Ä", result[0]); +assertEquals("AE", result[1]); +result = ["AE", "Ä"].sort(new Intl.Collator("de", {usage: "search"}).compare) +assertEquals("AE", result[0]); +assertEquals("Ä", result[1]); + + +var collator = new Intl.Collator("de", {usage: "search"}); +collator.resolvedOptions() // This triggers the code that removes the u-co-search keyword +result = ["AE", "Ä"].sort(collator.compare) +assertEquals("AE", result[0]); +assertEquals("Ä", result[1]); diff --git a/deps/v8/test/intl/collator/options.js b/deps/v8/test/intl/collator/options.js new file mode 100644 index 0000000000..f03ff2cafc --- /dev/null +++ b/deps/v8/test/intl/collator/options.js @@ -0,0 +1,121 @@ +// Copyright 2016 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. + +// No locale +var collatorWithOptions = new Intl.Collator(undefined); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag(%GetDefaultICULocale(), locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator(undefined, {usage: 'sort'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag(%GetDefaultICULocale(), locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator(undefined, {usage: 'search'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertEquals('search', usage); +assertEquals('default', collation); +assertLanguageTag(%GetDefaultICULocale(), locale); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator(locale); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag(%GetDefaultICULocale(), locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +// With Locale +collatorWithOptions = new Intl.Collator('en-US'); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US', {usage: 'sort'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US', {usage: 'search'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertEquals('search', usage); +assertEquals('default', collation); +assertLanguageTag('en-US', locale); +assertEquals(locale.indexOf('-co-search'), -1); + +// With invalid collation value = 'search' +collatorWithOptions = new Intl.Collator('en-US-u-co-search'); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US-u-co-search', {usage: 'sort'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US-u-co-search', {usage: 'search'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('search', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +// With invalid collation value = 'standard' +collatorWithOptions = new Intl.Collator('en-US-u-co-standard'); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US-u-co-standard', {usage: 'sort'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US-u-co-standard', {usage: 'search'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('search', usage); +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +// With valid collation value = 'emoji' +collatorWithOptions = new Intl.Collator('en-US-u-co-emoji'); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('emoji', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US-u-co-emoji', {usage: 'sort'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('sort', usage); +assertEquals('emoji', collation); +assertEquals(locale.indexOf('-co-search'), -1); + +collatorWithOptions = new Intl.Collator('en-US-u-co-emoji', {usage: 'search'}); +var { locale, usage, collation } = collatorWithOptions.resolvedOptions(); +assertLanguageTag('en-US', locale); +assertEquals('search', usage); +// usage = search overwrites emoji as a collation value. +assertEquals('default', collation); +assertEquals(locale.indexOf('-co-search'), -1); |