| 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 06a4457c356727c274e22c680ef729c36e043e7c..94d061bef1d7656a1be521fa13334935ca98854b 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
|
| @@ -80,12 +80,30 @@ public class PwsClientImplTest extends InstrumentationTestCase {
|
| @SmallTest
|
| public void testLanguageTagIsPrepended() {
|
| String locale = new Locale("aa", "AA").toString();
|
| - String languageList = "xx-XX,xx,xx-YY";
|
| + 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);
|
| - assertEquals("aa-AA,aa,xx-XX,xx,xx-YY", languageListWithTag);
|
| + assertEquals("aa-AA,aa,xx-XX,xx-YY,xx", languageListWithTag);
|
| + }
|
| +
|
| + @SmallTest
|
| + public void testMultipleLanguageTagIsPrepended() {
|
| + 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".
|
| + String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| + languageList);
|
| + assertEquals("aa-AA,aa,bb-BB,bb,xx-XX,xx-YY,xx", languageListWithTag);
|
| +
|
| + // 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);
|
| + assertEquals("aa-AA,aa,bb-BB,bb-XX,bb,xx-XX,xx-YY,xx", languageListWithTag);
|
| }
|
|
|
| @SmallTest
|
| @@ -100,10 +118,10 @@ public class PwsClientImplTest extends InstrumentationTestCase {
|
| assertEquals("xx-XX,xx-YY,xx", languageListWithTag);
|
|
|
| // Test again with the language code "xx" in the middle of the list.
|
| - languageList = "xx-YY,xx,xx-ZZ";
|
| + languageList = "xx-YY,xx-ZZ,xx";
|
| languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| languageList);
|
| - assertEquals("xx-XX,xx-YY,xx,xx-ZZ", languageListWithTag);
|
| + assertEquals("xx-XX,xx-YY,xx-ZZ,xx", languageListWithTag);
|
| }
|
|
|
| @SmallTest
|
| @@ -120,7 +138,18 @@ public class PwsClientImplTest extends InstrumentationTestCase {
|
| @SmallTest
|
| public void testLanguageTagNotPrependedWhenUnnecessary() {
|
| String locale = new Locale("xx", "XX").toString();
|
| - String languageList = "xx-XX,xx,xx-YY";
|
| + String languageList = "xx-XX,xx-YY,xx";
|
| +
|
| + // Language list should be unmodified since the tag is already present.
|
| + String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| + languageList);
|
| + assertEquals(languageList, languageListWithTag);
|
| + }
|
| +
|
| + @SmallTest
|
| + public void testMultiLanguageTagNotPrependedWhenUnnecessary() {
|
| + String locale = "xx-XX,yy-YY";
|
| + String languageList = "xx-XX,xx,yy-YY,yy";
|
|
|
| // Language list should be unmodified since the tag is already present.
|
| String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale,
|
| @@ -130,11 +159,11 @@ public class PwsClientImplTest extends InstrumentationTestCase {
|
|
|
| @SmallTest
|
| public void testAcceptLanguageQvalues() {
|
| - String languageList = "xx-XX,xx,xx-YY,zz-ZZ,zz";
|
| + String languageList = "xx-XX,xx-YY,xx,zz-ZZ,zz";
|
|
|
| // Should insert q-values for each item except the first which implicitly has q=1.0.
|
| String acceptLanguage = PwsClientImpl.generateAcceptLanguageHeader(languageList);
|
| - assertEquals("xx-XX,xx;q=0.8,xx-YY;q=0.6,zz-ZZ;q=0.4,zz;q=0.2", acceptLanguage);
|
| + assertEquals("xx-XX,xx-YY;q=0.8,xx;q=0.6,zz-ZZ;q=0.4,zz;q=0.2", acceptLanguage);
|
|
|
| // When there are six or more items, the q-value should not go below 0.2.
|
| languageList = "xx-XA,xx-XB,xx-XC,xx-XD,xx-XE,xx-XF";
|
|
|