Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3657)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java

Issue 1139643006: Rename chrome/android/javatests to javatests_shell. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java
deleted file mode 100644
index f49bac9d708706287caca9c46d3dff294012c09a..0000000000000000000000000000000000000000
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java
+++ /dev/null
@@ -1,296 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.preferences;
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.test.util.Feature;
-import org.chromium.chrome.browser.accessibility.FontSizePrefs;
-import org.chromium.chrome.browser.preferences.website.ContentSetting;
-import org.chromium.chrome.browser.preferences.website.GeolocationInfo;
-import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridge;
-import org.chromium.chrome.browser.search_engines.TemplateUrlService;
-import org.chromium.chrome.browser.search_engines.TemplateUrlService.LoadListener;
-import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl;
-import org.chromium.chrome.shell.ChromeShellTestBase;
-import org.chromium.chrome.shell.preferences.ChromeShellMainPreferences;
-import org.chromium.content.browser.test.util.CallbackHelper;
-import org.chromium.content.browser.test.util.UiUtils;
-
-import java.lang.reflect.Method;
-import java.text.NumberFormat;
-import java.util.List;
-
-/**
- * Tests for the Settings menu.
- */
-public class PreferencesTest extends ChromeShellTestBase {
-
- // Category for launching the Notification Preferences screen.
- private static final String CATEGORY_NOTIFICATION_PREFERENCES =
- "android.intent.category.NOTIFICATION_PREFERENCES";
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- startChromeBrowserProcessSync(getInstrumentation().getTargetContext());
- }
-
- /**
- * Launches the preferences menu and starts the preferences activity named fragmentName.
- * Returns the activity that was started.
- */
- public static Preferences startPreferences(Instrumentation instrumentation,
- String fragmentName) {
- Context context = instrumentation.getTargetContext();
- Intent intent = PreferencesLauncher.createIntentForSettingsPage(context, fragmentName);
- Activity activity = instrumentation.startActivitySync(intent);
- assertTrue(activity instanceof Preferences);
- return (Preferences) activity;
- }
-
- public static void clickPreference(PreferenceFragment fragment, Preference preference) {
- try {
- Method performClick = Preference.class.getDeclaredMethod("performClick",
- PreferenceScreen.class);
- performClick.invoke(preference, fragment.getPreferenceScreen());
- } catch (ReflectiveOperationException e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Change search engine and make sure it works correctly.
- */
- @SmallTest
- @Feature({"Preferences"})
- public void testSearchEnginePreference() throws Exception {
- ensureTemplateUrlServiceLoaded();
-
- // Set the second search engine as the default using TemplateUrlService.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- TemplateUrlService.getInstance().setSearchEngine(1);
- }
- });
-
- final Preferences prefActivity = startPreferences(getInstrumentation(),
- ChromeShellMainPreferences.class.getName());
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- // Ensure that the second search engine in the list is selected.
- PreferenceFragment fragment = (PreferenceFragment)
- prefActivity.getFragmentForTest();
- SearchEnginePreference pref = (SearchEnginePreference)
- fragment.findPreference(SearchEnginePreference.PREF_SEARCH_ENGINE);
- assertNotNull(pref);
- assertEquals("1", pref.getValueForTesting());
-
- // Simulate selecting the third search engine, ensure that TemplateUrlService is
- // updated, but location permission not granted for the new engine.
- pref.setValueForTesting("2");
- TemplateUrlService templateUrlService = TemplateUrlService.getInstance();
- assertEquals(2, templateUrlService.getDefaultSearchEngineIndex());
- assertEquals(ContentSetting.ASK, locationPermissionForSearchEngine(2));
-
- // Simulate selecting the fourth search engine and but set a blocked permission
- // first and ensure that location permission is NOT granted.
- String url = templateUrlService.getSearchEngineUrlFromTemplateUrl(3);
- WebsitePreferenceBridge.nativeSetGeolocationSettingForOrigin(
- url, url, ContentSetting.BLOCK.toInt());
- pref.setValueForTesting("3");
- assertEquals(3, TemplateUrlService.getInstance().getDefaultSearchEngineIndex());
- assertEquals(ContentSetting.BLOCK, locationPermissionForSearchEngine(3));
- assertEquals(ContentSetting.ASK, locationPermissionForSearchEngine(2));
-
- // Make sure a pre-existing ALLOW value does not get deleted when switching away
- // from a search engine.
- url = templateUrlService.getSearchEngineUrlFromTemplateUrl(4);
- WebsitePreferenceBridge.nativeSetGeolocationSettingForOrigin(
- url, url, ContentSetting.ALLOW.toInt());
- pref.setValueForTesting("4");
- assertEquals(4, TemplateUrlService.getInstance().getDefaultSearchEngineIndex());
- assertEquals(ContentSetting.ALLOW, locationPermissionForSearchEngine(4));
- pref.setValueForTesting("3");
- assertEquals(ContentSetting.ALLOW, locationPermissionForSearchEngine(4));
- }
- });
- }
-
- /**
- * Make sure that when a user switches to a search engine that uses HTTP, the location
- * permission is not added.
- */
- @SmallTest
- @Feature({"Preferences"})
- public void testSearchEnginePreferenceHttp() throws Exception {
- ensureTemplateUrlServiceLoaded();
-
- final Preferences prefActivity = startPreferences(getInstrumentation(),
- ChromeShellMainPreferences.class.getName());
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- // Ensure that the second search engine in the list is selected.
- PreferenceFragment fragment = (PreferenceFragment)
- prefActivity.getFragmentForTest();
- SearchEnginePreference pref = (SearchEnginePreference)
- fragment.findPreference(SearchEnginePreference.PREF_SEARCH_ENGINE);
- assertNotNull(pref);
- assertEquals("0", pref.getValueForTesting());
-
- // Simulate selecting a search engine that uses HTTP.
- int index = indexOfFirstHttpSearchEngine();
- pref.setValueForTesting(Integer.toString(index));
-
- TemplateUrlService templateUrlService = TemplateUrlService.getInstance();
- assertEquals(index, templateUrlService.getDefaultSearchEngineIndex());
- assertEquals(ContentSetting.ASK, locationPermissionForSearchEngine(index));
- }
- });
- }
-
- private int indexOfFirstHttpSearchEngine() {
- TemplateUrlService templateUrlService = TemplateUrlService.getInstance();
- List<TemplateUrl> urls = templateUrlService.getLocalizedSearchEngines();
- int index;
- for (index = 0; index < urls.size(); ++index) {
- String url = templateUrlService.getSearchEngineUrlFromTemplateUrl(index);
- if (url.startsWith("http:")) {
- return index;
- }
- }
- fail();
- return index;
- }
-
- private void ensureTemplateUrlServiceLoaded() throws Exception {
- // Make sure the template_url_service is loaded.
- final CallbackHelper onTemplateUrlServiceLoadedHelper = new CallbackHelper();
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- if (TemplateUrlService.getInstance().isLoaded()) {
- onTemplateUrlServiceLoadedHelper.notifyCalled();
- } else {
- TemplateUrlService.getInstance().registerLoadListener(new LoadListener() {
- @Override
- public void onTemplateUrlServiceLoaded() {
- onTemplateUrlServiceLoadedHelper.notifyCalled();
- }
- });
- TemplateUrlService.getInstance().load();
- }
- }
- });
- onTemplateUrlServiceLoadedHelper.waitForCallback(0);
- }
-
- private ContentSetting locationPermissionForSearchEngine(int index) {
- String url = TemplateUrlService.getInstance().getSearchEngineUrlFromTemplateUrl(index);
- GeolocationInfo locationSettings = new GeolocationInfo(url, null);
- ContentSetting locationPermission = locationSettings.getContentSetting();
- return locationPermission;
- }
-
- // TODO(mvanouwerkerk): Write new preference intent tests for notification settings.
- // https://crbug.com/461885
-
- /**
- * Tests setting FontScaleFactor and ForceEnableZoom in AccessibilityPreferences and ensures
- * that ForceEnableZoom changes corresponding to FontScaleFactor.
- */
- @SmallTest
- @Feature({"Accessibility"})
- public void testAccessibilityPreferences() throws Exception {
- String accessibilityPrefClassname = AccessibilityPreferences.class.getName();
- AccessibilityPreferences accessibilityPref = (AccessibilityPreferences)
- startPreferences(getInstrumentation(), accessibilityPrefClassname)
- .getFragmentForTest();
- SeekBarPreference textScalePref = (SeekBarPreference) accessibilityPref.findPreference(
- AccessibilityPreferences.PREF_TEXT_SCALE);
- SeekBarLinkedCheckBoxPreference forceEnableZoomPref =
- (SeekBarLinkedCheckBoxPreference) accessibilityPref
- .findPreference(AccessibilityPreferences.PREF_FORCE_ENABLE_ZOOM);
- NumberFormat percentFormat = NumberFormat.getPercentInstance();
- // Arbitrary value 0.4f to be larger and smaller than threshold.
- float fontSmallerThanThreshold =
- AccessibilityPreferences.FORCE_ENABLE_ZOOM_THRESHOLD_MULTIPLIER - 0.4f;
- float fontBiggerThanThreshold =
- AccessibilityPreferences.FORCE_ENABLE_ZOOM_THRESHOLD_MULTIPLIER + 0.4f;
-
- // Set the textScaleFactor above the threshold.
- userSetTextScale(accessibilityPref, textScalePref, fontBiggerThanThreshold);
- UiUtils.settleDownUI(getInstrumentation());
- // Since above the threshold, this will check the force enable zoom button.
- assertEquals(percentFormat.format(fontBiggerThanThreshold), textScalePref.getSummary());
- assertTrue(forceEnableZoomPref.isChecked());
- assertFontSizePrefs(true, fontBiggerThanThreshold);
-
- // Set the textScaleFactor below the threshold.
- userSetTextScale(accessibilityPref, textScalePref, fontSmallerThanThreshold);
- UiUtils.settleDownUI(getInstrumentation());
- // Since below the threshold and userSetForceEnableZoom is false, this will uncheck
- // the force enable zoom button.
- assertEquals(percentFormat.format(fontSmallerThanThreshold), textScalePref.getSummary());
- assertFalse(forceEnableZoomPref.isChecked());
- assertFontSizePrefs(false, fontSmallerThanThreshold);
-
- userSetTextScale(accessibilityPref, textScalePref, fontBiggerThanThreshold);
- // Sets onUserSetForceEnableZoom to be true.
- userSetForceEnableZoom(accessibilityPref, forceEnableZoomPref, true);
- UiUtils.settleDownUI(getInstrumentation());
- // Since userSetForceEnableZoom is true, when the text scale is moved below the threshold
- // ForceEnableZoom should remain checked.
- userSetTextScale(accessibilityPref, textScalePref, fontSmallerThanThreshold);
- assertTrue(forceEnableZoomPref.isChecked());
- assertFontSizePrefs(true, fontSmallerThanThreshold);
- }
-
- private void assertFontSizePrefs(final boolean expectedForceEnableZoom,
- final float expectedFontScale) {
- final Context targetContext = getInstrumentation().getTargetContext();
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- FontSizePrefs fontSizePrefs = FontSizePrefs.getInstance(targetContext);
- assertEquals(expectedForceEnableZoom, fontSizePrefs.getForceEnableZoom());
- assertEquals(expectedFontScale, fontSizePrefs.getFontScaleFactor(), 0.001f);
- }
- });
- }
-
- private static void userSetTextScale(final AccessibilityPreferences accessibilityPref,
- final SeekBarPreference textScalePref, final float textScale) {
- ThreadUtils.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- accessibilityPref.onPreferenceChange(textScalePref, textScale);
- }
- });
- }
-
- private static void userSetForceEnableZoom(final AccessibilityPreferences accessibilityPref,
- final SeekBarLinkedCheckBoxPreference forceEnableZoomPref, final boolean enabled) {
- ThreadUtils.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- accessibilityPref.onPreferenceChange(forceEnableZoomPref, enabled);
- }
- });
- }
-}

Powered by Google App Engine
This is Rietveld 408576698