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