| Index: chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/PwsClientImplTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/PwsClientImplTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/PwsClientImplTest.java
|
| index 94d061bef1d7656a1be521fa13334935ca98854b..2db5bf8440f6ef61ffc3f204bc69d96e1348ea06 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/PwsClientImplTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/PwsClientImplTest.java
|
| @@ -9,6 +9,8 @@ import android.test.InstrumentationTestCase;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
| import android.text.TextUtils;
|
|
|
| +import org.chromium.base.LocaleUtils;
|
| +
|
| import java.util.Locale;
|
|
|
| /**
|
| @@ -35,19 +37,10 @@ public class PwsClientImplTest extends InstrumentationTestCase {
|
| }
|
|
|
| @SmallTest
|
| - public void testDefaultLocaleIsValid() {
|
| - // Ensure the current locale is of the form xx_XX, otherwise it will not be prepended
|
| - // correctly in prependToAcceptLanguagesIfNecessary.
|
| - String defaultLocale = Locale.getDefault().toString();
|
| - assertEquals(5, defaultLocale.length());
|
| - assertEquals('_', defaultLocale.charAt(2));
|
| - }
|
| -
|
| - @SmallTest
|
| public void testMakeLanguageTag() {
|
| - assertEquals("en-GB", PwsClientImpl.makeLanguageTag("en", "GB"));
|
| + assertEquals("en-", PwsClientImpl.makeLanguageTag("en", ""));
|
| assertEquals("fr-CA", PwsClientImpl.makeLanguageTag("fr", "CA"));
|
| - assertEquals("zh-TW", PwsClientImpl.makeLanguageTag("zh", "TW"));
|
| + assertEquals("es-419", PwsClientImpl.makeLanguageTag("es", "419"));
|
| }
|
|
|
| @SmallTest
|
| @@ -61,36 +54,55 @@ public class PwsClientImplTest extends InstrumentationTestCase {
|
|
|
| @SmallTest
|
| public void testLanguageTagIsIncludedInAcceptLanguageHeader() {
|
| - String defaultLocale = Locale.getDefault().toString();
|
| - String languageCode = defaultLocale.substring(0, 2);
|
| - String countryCode = defaultLocale.substring(3);
|
| - String languageTag = PwsClientImpl.makeLanguageTag(languageCode, countryCode);
|
| + String defaultLocale = LocaleUtils.getDefaultLocale();
|
| + String[] languageTags = defaultLocale.split(",");
|
|
|
| // Ensure Accept-Language contains the full language tag.
|
| String acceptLanguage = mPwsClientImpl.getAcceptLanguage();
|
| - assertTrue(acceptLanguage.contains(languageTag));
|
| -
|
| - // Ensure Accept-Language also contains the language code by itself. Include the separator
|
| - // character so we don't match, for instance, the "en" in "en-US".
|
| - assertTrue(acceptLanguage.startsWith(languageCode + ",")
|
| - || acceptLanguage.contains(languageCode + ";")
|
| - || acceptLanguage.equals(languageCode));
|
| + for (String tag : languageTags) {
|
| + assertTrue(acceptLanguage.contains(tag));
|
| + }
|
| }
|
|
|
| @SmallTest
|
| public void testLanguageTagIsPrepended() {
|
| - String locale = new Locale("aa", "AA").toString();
|
| + Locale locale = new Locale("aa", "AA");
|
| + String defaultLocale = LocaleUtils.getLocale(locale);
|
| String languageList = "xx-XX,xx-YY,xx";
|
|
|
| // Should prepend the language tag "aa-AA" as well as the language code "aa".
|
| - String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| - languageList);
|
| + String languageListWithTag =
|
| + PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList);
|
| assertEquals("aa-AA,aa,xx-XX,xx-YY,xx", languageListWithTag);
|
| }
|
|
|
| @SmallTest
|
| + public void testLanguageOnlyTagIsPrepended() {
|
| + Locale locale = new Locale("aaa");
|
| + String defaultLocale = LocaleUtils.getLocale(locale);
|
| + String languageList = "xx-XX,xx-YY,xx";
|
| +
|
| + // Should prepend the language code only language tag "aaa".
|
| + String languageListWithTag =
|
| + PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList);
|
| + assertEquals("aaa,xx-XX,xx-YY,xx", languageListWithTag);
|
| + }
|
| +
|
| + @SmallTest
|
| + public void testSpecialLengthCountryCodeIsPrepended() {
|
| + Locale locale = new Locale("aa", "AAA");
|
| + String defaultLocale = LocaleUtils.getLocale(locale);
|
| + String languageList = "xx-XX,xx-YY,xx";
|
| +
|
| + // Should prepend the language tag "aa-AAA" as well as the language code "aa".
|
| + String languageListWithTag =
|
| + PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList);
|
| + assertEquals("aa-AAA,aa,xx-XX,xx-YY,xx", languageListWithTag);
|
| + }
|
| +
|
| + @SmallTest
|
| public void testMultipleLanguageTagIsPrepended() {
|
| - String locale = "aa_AA,bb_BB";
|
| + String locale = "aa-AA,bb-BB";
|
| String languageList = "xx-XX,xx-YY,xx";
|
|
|
| // Should prepend the language tag "aa-AA" as well as the language code "aa".
|
| @@ -100,58 +112,44 @@ public class PwsClientImplTest extends InstrumentationTestCase {
|
|
|
| // Make sure the language code is only inserted after the last languageTag that
|
| // contains that language.
|
| - locale = "aa_AA,bb_BB,bb_XX";
|
| - languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| - languageList);
|
| + locale = "aa-AA,bb-BB,bb-XX";
|
| + languageListWithTag =
|
| + PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale, languageList);
|
| assertEquals("aa-AA,aa,bb-BB,bb-XX,bb,xx-XX,xx-YY,xx", languageListWithTag);
|
| }
|
|
|
| @SmallTest
|
| public void testLanguageTagIsPrependedWhenListContainsLanguageCode() {
|
| - String locale = new Locale("xx", "XX").toString();
|
| + Locale locale = new Locale("xx", "XX");
|
| + String defaultLocale = LocaleUtils.getLocale(locale);
|
| String languageList = "xx-YY,xx";
|
|
|
| // Should prepend the language tag "xx-XX" but not the language code "xx" as it's already
|
| // included at the end of the list.
|
| - String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| - languageList);
|
| + String languageListWithTag =
|
| + PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList);
|
| assertEquals("xx-XX,xx-YY,xx", languageListWithTag);
|
| -
|
| - // Test again with the language code "xx" in the middle of the list.
|
| - languageList = "xx-YY,xx-ZZ,xx";
|
| - languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| - languageList);
|
| - assertEquals("xx-XX,xx-YY,xx-ZZ,xx", languageListWithTag);
|
| - }
|
| -
|
| - @SmallTest
|
| - public void testInvalidLanguageTagNotPrepended() {
|
| - String locale = "not_valid";
|
| - String languageList = "xx-XX,xx";
|
| -
|
| - // Language list should be unmodified since the language tag is invalid.
|
| - String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| - languageList);
|
| - assertEquals(languageList, languageListWithTag);
|
| }
|
|
|
| @SmallTest
|
| public void testLanguageTagNotPrependedWhenUnnecessary() {
|
| - String locale = new Locale("xx", "XX").toString();
|
| + Locale locale = new Locale("xx", "XX");
|
| + String defaultLocale = LocaleUtils.getLocale(locale);
|
| String languageList = "xx-XX,xx-YY,xx";
|
|
|
| // Language list should be unmodified since the tag is already present.
|
| - String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| - languageList);
|
| + String languageListWithTag =
|
| + PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList);
|
| assertEquals(languageList, languageListWithTag);
|
| }
|
|
|
| @SmallTest
|
| public void testMultiLanguageTagNotPrependedWhenUnnecessary() {
|
| String locale = "xx-XX,yy-YY";
|
| - String languageList = "xx-XX,xx,yy-YY,yy";
|
| + String languageList = "xx-XX,yy-YY,xx,yy";
|
|
|
| - // Language list should be unmodified since the tag is already present.
|
| + // Language list should be unmodified since the tag is already present. However, the order
|
| + // changes because a language-code-only language tag is acceptable now.
|
| String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| languageList);
|
| assertEquals(languageList, languageListWithTag);
|
|
|