OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.physicalweb; | 5 package org.chromium.chrome.browser.physicalweb; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.test.InstrumentationTestCase; | 8 import android.test.InstrumentationTestCase; |
9 import android.test.suitebuilder.annotation.SmallTest; | 9 import android.test.suitebuilder.annotation.SmallTest; |
10 import android.text.TextUtils; | 10 import android.text.TextUtils; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
54 || acceptLanguage.equals(languageCode)); | 54 || acceptLanguage.equals(languageCode)); |
55 } | 55 } |
56 } | 56 } |
57 | 57 |
58 @SmallTest | 58 @SmallTest |
59 public void testLanguageTagIsPrepended() { | 59 public void testLanguageTagIsPrepended() { |
60 Locale locale = new Locale("en", "GB"); | 60 Locale locale = new Locale("en", "GB"); |
61 String defaultLocale = LocaleUtils.toLanguageTag(locale); | 61 String defaultLocale = LocaleUtils.toLanguageTag(locale); |
62 String languageList = "fr-CA,fr-FR,fr"; | 62 String languageList = "fr-CA,fr-FR,fr"; |
63 | 63 |
64 // Should prepend the language tag "en-GB" as well as the language code "en". | |
Ryan Sleevi
2016/12/15 23:44:07
Why should "en" no longer be added?
Yirui Huang
2016/12/16 08:00:08
From both Android Chrome and Webview, we are retur
| |
65 String languageListWithTag = | 64 String languageListWithTag = |
66 PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList); | 65 PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList); |
67 assertEquals("en-GB,en,fr-CA,fr-FR,fr", languageListWithTag); | 66 assertEquals("en-GB,fr-CA,fr-FR,fr", languageListWithTag); |
68 } | 67 } |
69 | 68 |
70 @SmallTest | 69 @SmallTest |
71 public void testLanguageOnlyTagIsPrepended() { | 70 public void testLanguageOnlyTagIsPrepended() { |
72 Locale locale = new Locale("mas"); | 71 Locale locale = new Locale("mas"); |
73 String defaultLocale = LocaleUtils.toLanguageTag(locale); | 72 String defaultLocale = LocaleUtils.toLanguageTag(locale); |
74 String languageList = "fr-CA,fr-FR,fr"; | 73 String languageList = "fr-CA,fr-FR,fr"; |
75 | 74 |
76 // Should prepend the language code only language tag "aaa". | 75 // Should prepend the language code only. |
77 String languageListWithTag = | 76 String languageListWithTag = |
78 PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList); | 77 PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList); |
79 assertEquals("mas,fr-CA,fr-FR,fr", languageListWithTag); | 78 assertEquals("mas,fr-CA,fr-FR,fr", languageListWithTag); |
80 } | 79 } |
81 | 80 |
82 @SmallTest | 81 @SmallTest |
83 public void testSpecialLengthCountryCodeIsPrepended() { | 82 public void testSpecialLengthCountryCodeIsPrepended() { |
84 Locale locale = new Locale("es", "005"); | 83 Locale locale = new Locale("es", "005"); |
85 String defaultLocale = LocaleUtils.toLanguageTag(locale); | 84 String defaultLocale = LocaleUtils.toLanguageTag(locale); |
86 String languageList = "fr-CA,fr-FR,fr"; | 85 String languageList = "fr-CA,fr-FR,fr"; |
87 | 86 |
88 // Should prepend the language tag "aa-AAA" as well as the language code "aa". | |
89 String languageListWithTag = | 87 String languageListWithTag = |
90 PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList); | 88 PwsClientImpl.prependToAcceptLanguagesIfNecessary(defaultLocale, languageList); |
91 assertEquals("es-005,es,fr-CA,fr-FR,fr", languageListWithTag); | 89 assertEquals("es-005,fr-CA,fr-FR,fr", languageListWithTag); |
92 } | 90 } |
93 | 91 |
94 @SmallTest | 92 @SmallTest |
95 public void testMultipleLanguageTagIsPrepended() { | 93 public void testMultipleLanguageTagIsPrepended() { |
96 String locale = "jp-JP,is-IS"; | 94 String locale = "jp-JP,is-IS"; |
97 String languageList = "en-US,en"; | 95 String languageList = "en-US,en"; |
98 | 96 |
99 // Should prepend the language tag "aa-AA" as well as the language code "aa". | |
100 String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNec essary(locale, | 97 String languageListWithTag = PwsClientImpl.prependToAcceptLanguagesIfNec essary(locale, |
101 languageList); | 98 languageList); |
102 assertEquals("jp-JP,jp,is-IS,is,en-US,en", languageListWithTag); | 99 assertEquals("jp-JP,is-IS,en-US,en", languageListWithTag); |
103 | |
104 // Make sure the language code is only inserted after the last languageT ag that | |
105 // contains that language. | |
106 locale = "jp-JP,fr-CA,fr-FR"; | |
107 languageListWithTag = | |
108 PwsClientImpl.prependToAcceptLanguagesIfNecessary(locale, langua geList); | |
109 assertEquals("jp-JP,jp,fr-CA,fr-FR,fr,en-US,en", languageListWithTag); | |
110 } | 100 } |
111 | 101 |
112 @SmallTest | 102 @SmallTest |
113 public void testLanguageTagIsPrependedWhenListContainsLanguageCode() { | 103 public void testLanguageTagIsPrependedWhenListContainsLanguageCode() { |
114 Locale locale = new Locale("fr", "FR"); | 104 Locale locale = new Locale("fr", "FR"); |
115 String defaultLocale = LocaleUtils.toLanguageTag(locale); | 105 String defaultLocale = LocaleUtils.toLanguageTag(locale); |
116 String languageList = "fr-CA,fr"; | 106 String languageList = "fr-CA,fr"; |
117 | 107 |
118 // Should prepend the language tag "xx-XX" but not the language code "xx " as it's already | 108 // Should prepend the language tag "xx-XX" but not the language code "xx " as it's already |
119 // included at the end of the list. | 109 // included at the end of the list. |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
154 String acceptLanguage = PwsClientImpl.generateAcceptLanguageHeader(langu ageList); | 144 String acceptLanguage = PwsClientImpl.generateAcceptLanguageHeader(langu ageList); |
155 assertEquals("en-US,en-GB;q=0.8,en;q=0.6,jp-JP;q=0.4,jp;q=0.2", acceptLa nguage); | 145 assertEquals("en-US,en-GB;q=0.8,en;q=0.6,jp-JP;q=0.4,jp;q=0.2", acceptLa nguage); |
156 | 146 |
157 // When there are six or more items, the q-value should not go below 0.2 . | 147 // When there are six or more items, the q-value should not go below 0.2 . |
158 languageList = "mas,es,en,jp,ch,fr"; | 148 languageList = "mas,es,en,jp,ch,fr"; |
159 acceptLanguage = PwsClientImpl.generateAcceptLanguageHeader(languageList ); | 149 acceptLanguage = PwsClientImpl.generateAcceptLanguageHeader(languageList ); |
160 assertEquals("mas,es;q=0.8,en;q=0.6,jp;q=0.4,ch;q=0.2,fr;q=0.2", | 150 assertEquals("mas,es;q=0.8,en;q=0.6,jp;q=0.4,ch;q=0.2,fr;q=0.2", |
161 acceptLanguage); | 151 acceptLanguage); |
162 } | 152 } |
163 } | 153 } |
OLD | NEW |