a6d2fe4009
Simplified test for default locale under test/intl Remove GetDefaultLocale from runtime Move Intl::DefaultLocale from intl-object.h to internal function inside intl-object.cc Bug: v8:5751 Change-Id: I885abf30ff33d5213ee99c07ac1e92d3c5065d8b Reviewed-on: https://chromium-review.googlesource.com/c/1358022 Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Jungshik Shin <jshin@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#58081}
118 lines
4.8 KiB
JavaScript
118 lines
4.8 KiB
JavaScript
// 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();
|
|
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();
|
|
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);
|
|
assertEquals(locale.indexOf('-co-search'), -1);
|
|
|
|
collatorWithOptions = new Intl.Collator(locale);
|
|
var { locale, usage, collation } = collatorWithOptions.resolvedOptions();
|
|
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);
|