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.accounts.Account; | |
8 import android.app.Activity; | 7 import android.app.Activity; |
9 import android.app.DialogFragment; | |
10 import android.app.Instrumentation; | 8 import android.app.Instrumentation; |
11 import android.content.Context; | 9 import android.content.Context; |
12 import android.content.Intent; | 10 import android.content.Intent; |
13 import android.preference.Preference; | 11 import android.preference.Preference; |
14 import android.preference.PreferenceFragment; | 12 import android.preference.PreferenceFragment; |
15 import android.preference.PreferenceScreen; | 13 import android.preference.PreferenceScreen; |
16 import android.test.suitebuilder.annotation.SmallTest; | 14 import android.test.suitebuilder.annotation.SmallTest; |
17 | 15 |
18 import org.chromium.base.ThreadUtils; | 16 import org.chromium.base.ThreadUtils; |
19 import org.chromium.base.test.util.DisabledTest; | 17 import org.chromium.base.test.util.DisabledTest; |
20 import org.chromium.base.test.util.Feature; | 18 import org.chromium.base.test.util.Feature; |
21 import org.chromium.chrome.browser.accessibility.FontSizePrefs; | 19 import org.chromium.chrome.browser.accessibility.FontSizePrefs; |
22 import org.chromium.chrome.browser.preferences.website.ContentSetting; | 20 import org.chromium.chrome.browser.preferences.website.ContentSetting; |
23 import org.chromium.chrome.browser.preferences.website.GeolocationInfo; | 21 import org.chromium.chrome.browser.preferences.website.GeolocationInfo; |
24 import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridge; | 22 import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridge; |
25 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 23 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
26 import org.chromium.chrome.browser.search_engines.TemplateUrlService.LoadListene
r; | 24 import org.chromium.chrome.browser.search_engines.TemplateUrlService.LoadListene
r; |
27 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl
; | 25 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl
; |
28 import org.chromium.chrome.browser.signin.SigninManager; | |
29 import org.chromium.chrome.browser.sync.ui.ChooseAccountFragment; | |
30 import org.chromium.content.browser.test.NativeLibraryTestBase; | 26 import org.chromium.content.browser.test.NativeLibraryTestBase; |
31 import org.chromium.content.browser.test.util.CallbackHelper; | 27 import org.chromium.content.browser.test.util.CallbackHelper; |
32 import org.chromium.content.browser.test.util.UiUtils; | 28 import org.chromium.content.browser.test.util.UiUtils; |
33 import org.chromium.sync.signin.AccountManagerHelper; | |
34 import org.chromium.sync.test.util.MockAccountManager; | |
35 import org.chromium.sync.test.util.SimpleFuture; | |
36 | 29 |
37 import java.lang.reflect.InvocationTargetException; | 30 import java.lang.reflect.InvocationTargetException; |
38 import java.lang.reflect.Method; | 31 import java.lang.reflect.Method; |
39 import java.text.NumberFormat; | 32 import java.text.NumberFormat; |
40 import java.util.List; | 33 import java.util.List; |
41 | 34 |
42 /** | 35 /** |
43 * Tests for the Settings menu. | 36 * Tests for the Settings menu. |
44 */ | 37 */ |
45 public class PreferencesTest extends NativeLibraryTestBase { | 38 public class PreferencesTest extends NativeLibraryTestBase { |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 onTemplateUrlServiceLoadedHelper.waitForCallback(0); | 205 onTemplateUrlServiceLoadedHelper.waitForCallback(0); |
213 } | 206 } |
214 | 207 |
215 private ContentSetting locationPermissionForSearchEngine(int index) { | 208 private ContentSetting locationPermissionForSearchEngine(int index) { |
216 String url = TemplateUrlService.getInstance().getSearchEngineUrlFromTemp
lateUrl(index); | 209 String url = TemplateUrlService.getInstance().getSearchEngineUrlFromTemp
lateUrl(index); |
217 GeolocationInfo locationSettings = new GeolocationInfo(url, null, false)
; | 210 GeolocationInfo locationSettings = new GeolocationInfo(url, null, false)
; |
218 ContentSetting locationPermission = locationSettings.getContentSetting()
; | 211 ContentSetting locationPermission = locationSettings.getContentSetting()
; |
219 return locationPermission; | 212 return locationPermission; |
220 } | 213 } |
221 | 214 |
222 /** | |
223 * Tests that double-clicking on sign-in doesn't show two sign-in prompts. | |
224 * | |
225 * This is a regression test for http://crbug.com/515055. | |
226 */ | |
227 @SmallTest | |
228 @Feature({"Preferences"}) | |
229 public void testDoubleSignin() throws Exception { | |
230 // Sets up state so that displayAccountPicker() shows a ChooseAccountFra
gment. | |
231 setUpTestAccount(); | |
232 final Preferences prefActivity = startPreferences(getInstrumentation(), | |
233 MainPreferences.class.getName()); | |
234 final MainPreferences mainPrefs = (MainPreferences) prefActivity.getFrag
mentForTest(); | |
235 | |
236 DialogFragment fragment1 = displayAccountPicker(mainPrefs); | |
237 DialogFragment fragment2 = displayAccountPicker(mainPrefs); | |
238 assertTrue(fragment1 instanceof ChooseAccountFragment); | |
239 assertNull(fragment2); | |
240 } | |
241 | |
242 private DialogFragment displayAccountPicker(final MainPreferences mainPrefs) | |
243 throws InterruptedException { | |
244 final SimpleFuture<DialogFragment> result = new SimpleFuture<DialogFragm
ent>(); | |
245 ThreadUtils.runOnUiThread(new Runnable() { | |
246 public void run() { | |
247 mainPrefs.displayAccountPicker(result.createCallback()); | |
248 } | |
249 }); | |
250 return result.get(); | |
251 } | |
252 | |
253 private void setUpTestAccount() { | |
254 final Context context = getInstrumentation().getTargetContext(); | |
255 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | |
256 @Override | |
257 public void run() { | |
258 SigninManager.get(context).onFirstRunCheckDone(); | |
259 } | |
260 }); | |
261 Account account = AccountManagerHelper.createAccountFromName("test@chrom
ium.org"); | |
262 MockAccountManager accountManager = new MockAccountManager(context, cont
ext, account); | |
263 AccountManagerHelper.overrideAccountManagerHelperForTests(context, accou
ntManager); | |
264 } | |
265 | |
266 // TODO(mvanouwerkerk): Write new preference intent tests for notification s
ettings. | 215 // TODO(mvanouwerkerk): Write new preference intent tests for notification s
ettings. |
267 // https://crbug.com/461885 | 216 // https://crbug.com/461885 |
268 | 217 |
269 /** | 218 /** |
270 * Tests setting FontScaleFactor and ForceEnableZoom in AccessibilityPrefere
nces and ensures | 219 * Tests setting FontScaleFactor and ForceEnableZoom in AccessibilityPrefere
nces and ensures |
271 * that ForceEnableZoom changes corresponding to FontScaleFactor. | 220 * that ForceEnableZoom changes corresponding to FontScaleFactor. |
272 */ | 221 */ |
273 @SmallTest | 222 @SmallTest |
274 @Feature({"Accessibility"}) | 223 @Feature({"Accessibility"}) |
275 public void testAccessibilityPreferences() throws Exception { | 224 public void testAccessibilityPreferences() throws Exception { |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 private static void userSetForceEnableZoom(final AccessibilityPreferences ac
cessibilityPref, | 292 private static void userSetForceEnableZoom(final AccessibilityPreferences ac
cessibilityPref, |
344 final SeekBarLinkedCheckBoxPreference forceEnableZoomPref, final boo
lean enabled) { | 293 final SeekBarLinkedCheckBoxPreference forceEnableZoomPref, final boo
lean enabled) { |
345 ThreadUtils.runOnUiThread(new Runnable() { | 294 ThreadUtils.runOnUiThread(new Runnable() { |
346 @Override | 295 @Override |
347 public void run() { | 296 public void run() { |
348 accessibilityPref.onPreferenceChange(forceEnableZoomPref, enable
d); | 297 accessibilityPref.onPreferenceChange(forceEnableZoomPref, enable
d); |
349 } | 298 } |
350 }); | 299 }); |
351 } | 300 } |
352 } | 301 } |
OLD | NEW |