OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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.preferences; | 5 package org.chromium.chrome.browser.preferences; |
6 | 6 |
7 import android.app.Activity; | 7 import android.app.Activity; |
8 import android.app.Instrumentation; | 8 import android.app.Instrumentation; |
9 import android.content.Context; | 9 import android.content.Context; |
10 import android.content.Intent; | 10 import android.content.Intent; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 /** | 77 /** |
78 * Change search engine and make sure it works correctly. | 78 * Change search engine and make sure it works correctly. |
79 */ | 79 */ |
80 @SmallTest | 80 @SmallTest |
81 @Feature({"Preferences"}) | 81 @Feature({"Preferences"}) |
82 @DisableIf.Build(hardware_is = "sprout", message = "crashes on android-one:
crbug.com/540720") | 82 @DisableIf.Build(hardware_is = "sprout", message = "crashes on android-one:
crbug.com/540720") |
83 @RetryOnFailure | 83 @RetryOnFailure |
84 public void testSearchEnginePreference() throws Exception { | 84 public void testSearchEnginePreference() throws Exception { |
85 ensureTemplateUrlServiceLoaded(); | 85 ensureTemplateUrlServiceLoaded(); |
86 | 86 |
| 87 final Preferences prefActivity = |
| 88 startPreferences(getInstrumentation(), SearchEnginePreference.cl
ass.getName()); |
| 89 |
87 // Set the second search engine as the default using TemplateUrlService. | 90 // Set the second search engine as the default using TemplateUrlService. |
88 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 91 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
89 @Override | 92 @Override |
90 public void run() { | 93 public void run() { |
91 TemplateUrlService.getInstance().setSearchEngine(1); | 94 SearchEnginePreference pref = |
| 95 (SearchEnginePreference) prefActivity.getFragmentForTest
(); |
| 96 pref.setValueForTesting("1"); |
92 } | 97 } |
93 }); | 98 }); |
94 | 99 |
95 final Preferences prefActivity = | |
96 startPreferences(getInstrumentation(), SearchEnginePreference.cl
ass.getName()); | |
97 | 100 |
98 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 101 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
99 @Override | 102 @Override |
100 public void run() { | 103 public void run() { |
101 // Ensure that the second search engine in the list is selected. | 104 // Ensure that the second search engine in the list is selected. |
102 SearchEnginePreference pref = | 105 SearchEnginePreference pref = |
103 (SearchEnginePreference) prefActivity.getFragmentForTest
(); | 106 (SearchEnginePreference) prefActivity.getFragmentForTest
(); |
104 assertNotNull(pref); | 107 assertNotNull(pref); |
105 assertEquals("1", pref.getValueForTesting()); | 108 assertEquals("1", pref.getValueForTesting()); |
106 | 109 |
107 // Simulate selecting the third search engine, ensure that Templ
ateUrlService is | 110 // Simulate selecting the third search engine, ensure that Templ
ateUrlService is |
108 // updated, but location permission not granted for the new engi
ne. | 111 // updated, but location permission not granted for the new engi
ne. |
109 pref.setValueForTesting("2"); | 112 String keyword2 = pref.setValueForTesting("2"); |
110 TemplateUrlService templateUrlService = TemplateUrlService.getIn
stance(); | 113 TemplateUrlService templateUrlService = TemplateUrlService.getIn
stance(); |
111 assertEquals(2, templateUrlService.getDefaultSearchEngineIndex()
); | 114 assertEquals(keyword2, |
112 assertEquals(ContentSetting.ASK, locationPermissionForSearchEngi
ne(2)); | 115 templateUrlService.getDefaultSearchEngineTemplateUrl().g
etKeyword()); |
| 116 assertEquals(ContentSetting.ASK, locationPermissionForSearchEngi
ne(keyword2)); |
113 | 117 |
114 // Simulate selecting the fourth search engine and but set a blo
cked permission | 118 // Simulate selecting the fourth search engine and but set a blo
cked permission |
115 // first and ensure that location permission is NOT granted. | 119 // first and ensure that location permission is NOT granted. |
116 String url = templateUrlService.getSearchEngineUrlFromTemplateUr
l(3); | 120 String keyword3 = pref.getKeywordFromIndexForTesting(3); |
| 121 String url = templateUrlService.getSearchEngineUrlFromTemplateUr
l(keyword3); |
117 WebsitePreferenceBridge.nativeSetGeolocationSettingForOrigin( | 122 WebsitePreferenceBridge.nativeSetGeolocationSettingForOrigin( |
118 url, url, ContentSetting.BLOCK.toInt(), false); | 123 url, url, ContentSetting.BLOCK.toInt(), false); |
119 pref.setValueForTesting("3"); | 124 keyword3 = pref.setValueForTesting("3"); |
120 assertEquals(3, TemplateUrlService.getInstance().getDefaultSearc
hEngineIndex()); | 125 assertEquals(keyword3, TemplateUrlService.getInstance() |
121 assertEquals(ContentSetting.BLOCK, locationPermissionForSearchEn
gine(3)); | 126 .getDefaultSearchEngineTemplateUr
l() |
122 assertEquals(ContentSetting.ASK, locationPermissionForSearchEngi
ne(2)); | 127 .getKeyword()); |
| 128 assertEquals(ContentSetting.BLOCK, locationPermissionForSearchEn
gine(keyword3)); |
| 129 assertEquals(ContentSetting.ASK, locationPermissionForSearchEngi
ne(keyword2)); |
123 | 130 |
124 // Make sure a pre-existing ALLOW value does not get deleted whe
n switching away | 131 // Make sure a pre-existing ALLOW value does not get deleted whe
n switching away |
125 // from a search engine. | 132 // from a search engine. |
126 url = templateUrlService.getSearchEngineUrlFromTemplateUrl(4); | 133 String keyword4 = pref.getKeywordFromIndexForTesting(4); |
| 134 url = templateUrlService.getSearchEngineUrlFromTemplateUrl(keywo
rd4); |
127 WebsitePreferenceBridge.nativeSetGeolocationSettingForOrigin( | 135 WebsitePreferenceBridge.nativeSetGeolocationSettingForOrigin( |
128 url, url, ContentSetting.ALLOW.toInt(), false); | 136 url, url, ContentSetting.ALLOW.toInt(), false); |
129 pref.setValueForTesting("4"); | 137 keyword4 = pref.setValueForTesting("4"); |
130 assertEquals(4, TemplateUrlService.getInstance().getDefaultSearc
hEngineIndex()); | 138 assertEquals(keyword4, TemplateUrlService.getInstance() |
131 assertEquals(ContentSetting.ALLOW, locationPermissionForSearchEn
gine(4)); | 139 .getDefaultSearchEngineTemplateUr
l() |
| 140 .getKeyword()); |
| 141 assertEquals(ContentSetting.ALLOW, locationPermissionForSearchEn
gine(keyword4)); |
132 pref.setValueForTesting("3"); | 142 pref.setValueForTesting("3"); |
133 assertEquals(ContentSetting.ALLOW, locationPermissionForSearchEn
gine(4)); | 143 assertEquals(ContentSetting.ALLOW, locationPermissionForSearchEn
gine(keyword4)); |
134 } | 144 } |
135 }); | 145 }); |
136 } | 146 } |
137 | 147 |
138 /** | 148 /** |
139 * Make sure that when a user switches to a search engine that uses HTTP, th
e location | 149 * Make sure that when a user switches to a search engine that uses HTTP, th
e location |
140 * permission is not added. | 150 * permission is not added. |
141 */ | 151 */ |
142 /* | 152 /* |
143 * @SmallTest | 153 * @SmallTest |
144 * @Feature({"Preferences"}) | 154 * @Feature({"Preferences"}) |
145 * BUG=crbug.com/540706 | 155 * BUG=crbug.com/540706 |
146 */ | 156 */ |
147 @FlakyTest | 157 @FlakyTest |
148 @DisableIf.Build(hardware_is = "sprout", message = "fails on android-one: cr
bug.com/540706") | 158 @DisableIf.Build(hardware_is = "sprout", message = "fails on android-one: cr
bug.com/540706") |
149 public void testSearchEnginePreferenceHttp() throws Exception { | 159 public void testSearchEnginePreferenceHttp() throws Exception { |
150 ensureTemplateUrlServiceLoaded(); | 160 ensureTemplateUrlServiceLoaded(); |
151 | 161 |
| 162 final Preferences prefActivity = |
| 163 startPreferences(getInstrumentation(), SearchEnginePreference.cl
ass.getName()); |
| 164 |
152 // Set the first search engine as the default using TemplateUrlService. | 165 // Set the first search engine as the default using TemplateUrlService. |
153 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 166 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
154 @Override | 167 @Override |
155 public void run() { | 168 public void run() { |
156 TemplateUrlService.getInstance().setSearchEngine(0); | 169 SearchEnginePreference pref = |
| 170 (SearchEnginePreference) prefActivity.getFragmentForTest
(); |
| 171 pref.setValueForTesting("0"); |
157 } | 172 } |
158 }); | 173 }); |
159 | 174 |
160 final Preferences prefActivity = | |
161 startPreferences(getInstrumentation(), SearchEnginePreference.cl
ass.getName()); | |
162 | |
163 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 175 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
164 @Override | 176 @Override |
165 public void run() { | 177 public void run() { |
166 // Ensure that the first search engine in the list is selected. | 178 // Ensure that the first search engine in the list is selected. |
167 SearchEnginePreference pref = | 179 SearchEnginePreference pref = |
168 (SearchEnginePreference) prefActivity.getFragmentForTest
(); | 180 (SearchEnginePreference) prefActivity.getFragmentForTest
(); |
169 assertNotNull(pref); | 181 assertNotNull(pref); |
170 assertEquals("0", pref.getValueForTesting()); | 182 assertEquals("0", pref.getValueForTesting()); |
171 | 183 |
172 // Simulate selecting a search engine that uses HTTP. | 184 // Simulate selecting a search engine that uses HTTP. |
173 int index = indexOfFirstHttpSearchEngine(); | 185 int index = indexOfFirstHttpSearchEngine(pref); |
174 pref.setValueForTesting(Integer.toString(index)); | 186 String keyword = pref.setValueForTesting(Integer.toString(index)
); |
175 | 187 |
176 TemplateUrlService templateUrlService = TemplateUrlService.getIn
stance(); | 188 TemplateUrlService templateUrlService = TemplateUrlService.getIn
stance(); |
177 assertEquals(index, templateUrlService.getDefaultSearchEngineInd
ex()); | 189 assertEquals(keyword, |
178 assertEquals(ContentSetting.ASK, locationPermissionForSearchEngi
ne(index)); | 190 templateUrlService.getDefaultSearchEngineTemplateUrl().g
etKeyword()); |
| 191 assertEquals(ContentSetting.ASK, locationPermissionForSearchEngi
ne(keyword)); |
179 } | 192 } |
180 }); | 193 }); |
181 } | 194 } |
182 | 195 |
183 private int indexOfFirstHttpSearchEngine() { | 196 private int indexOfFirstHttpSearchEngine(SearchEnginePreference pref) { |
184 TemplateUrlService templateUrlService = TemplateUrlService.getInstance()
; | 197 TemplateUrlService templateUrlService = TemplateUrlService.getInstance()
; |
185 List<TemplateUrl> urls = templateUrlService.getLocalizedSearchEngines(); | 198 List<TemplateUrl> urls = templateUrlService.getSearchEngines(); |
186 int index; | 199 int index; |
187 for (index = 0; index < urls.size(); ++index) { | 200 for (index = 0; index < urls.size(); ++index) { |
188 String url = templateUrlService.getSearchEngineUrlFromTemplateUrl(in
dex); | 201 String keyword = pref.getKeywordFromIndexForTesting(index); |
| 202 String url = templateUrlService.getSearchEngineUrlFromTemplateUrl(ke
yword); |
189 if (url.startsWith("http:")) { | 203 if (url.startsWith("http:")) { |
190 return index; | 204 return index; |
191 } | 205 } |
192 } | 206 } |
193 fail(); | 207 fail(); |
194 return index; | 208 return index; |
195 } | 209 } |
196 | 210 |
197 private void ensureTemplateUrlServiceLoaded() throws Exception { | 211 private void ensureTemplateUrlServiceLoaded() throws Exception { |
198 // Make sure the template_url_service is loaded. | 212 // Make sure the template_url_service is loaded. |
(...skipping 10 matching lines...) Expand all Loading... |
209 onTemplateUrlServiceLoadedHelper.notifyCalled(); | 223 onTemplateUrlServiceLoadedHelper.notifyCalled(); |
210 } | 224 } |
211 }); | 225 }); |
212 TemplateUrlService.getInstance().load(); | 226 TemplateUrlService.getInstance().load(); |
213 } | 227 } |
214 } | 228 } |
215 }); | 229 }); |
216 onTemplateUrlServiceLoadedHelper.waitForCallback(0); | 230 onTemplateUrlServiceLoadedHelper.waitForCallback(0); |
217 } | 231 } |
218 | 232 |
219 private ContentSetting locationPermissionForSearchEngine(int index) { | 233 private ContentSetting locationPermissionForSearchEngine(String keyword) { |
220 String url = TemplateUrlService.getInstance().getSearchEngineUrlFromTemp
lateUrl(index); | 234 String url = TemplateUrlService.getInstance().getSearchEngineUrlFromTemp
lateUrl(keyword); |
221 GeolocationInfo locationSettings = new GeolocationInfo(url, null, false)
; | 235 GeolocationInfo locationSettings = new GeolocationInfo(url, null, false)
; |
222 ContentSetting locationPermission = locationSettings.getContentSetting()
; | 236 ContentSetting locationPermission = locationSettings.getContentSetting()
; |
223 return locationPermission; | 237 return locationPermission; |
224 } | 238 } |
225 | 239 |
226 /** | 240 /** |
227 * Tests setting FontScaleFactor and ForceEnableZoom in AccessibilityPrefere
nces and ensures | 241 * Tests setting FontScaleFactor and ForceEnableZoom in AccessibilityPrefere
nces and ensures |
228 * that ForceEnableZoom changes corresponding to FontScaleFactor. | 242 * that ForceEnableZoom changes corresponding to FontScaleFactor. |
229 */ | 243 */ |
230 @SmallTest | 244 @SmallTest |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 private static void userSetForceEnableZoom(final AccessibilityPreferences ac
cessibilityPref, | 314 private static void userSetForceEnableZoom(final AccessibilityPreferences ac
cessibilityPref, |
301 final SeekBarLinkedCheckBoxPreference forceEnableZoomPref, final boo
lean enabled) { | 315 final SeekBarLinkedCheckBoxPreference forceEnableZoomPref, final boo
lean enabled) { |
302 ThreadUtils.runOnUiThread(new Runnable() { | 316 ThreadUtils.runOnUiThread(new Runnable() { |
303 @Override | 317 @Override |
304 public void run() { | 318 public void run() { |
305 accessibilityPref.onPreferenceChange(forceEnableZoomPref, enable
d); | 319 accessibilityPref.onPreferenceChange(forceEnableZoomPref, enable
d); |
306 } | 320 } |
307 }); | 321 }); |
308 } | 322 } |
309 } | 323 } |
OLD | NEW |