| Index: chrome/android/javatests_shell/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java
|
| diff --git a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java b/chrome/android/javatests_shell/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java
|
| deleted file mode 100644
|
| index 99a2f430aac034d161567218d7abb2f2bea85c26..0000000000000000000000000000000000000000
|
| --- a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java
|
| +++ /dev/null
|
| @@ -1,229 +0,0 @@
|
| -// Copyright 2015 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.privacy;
|
| -
|
| -import android.content.Context;
|
| -import android.content.SharedPreferences;
|
| -import android.preference.PreferenceManager;
|
| -import android.test.InstrumentationTestCase;
|
| -import android.test.UiThreadTest;
|
| -import android.test.suitebuilder.annotation.SmallTest;
|
| -
|
| -import org.chromium.base.CommandLine;
|
| -import org.chromium.base.test.util.AdvancedMockContext;
|
| -import org.chromium.base.test.util.Feature;
|
| -import org.chromium.chrome.R;
|
| -
|
| -public class PrivacyPreferencesManagerTest extends InstrumentationTestCase {
|
| -
|
| - private static final boolean CELLULAR_DEVICE = true;
|
| - private static final boolean WIFI_DEVICE = false;
|
| -
|
| - private static final boolean CONNECTED = true;
|
| - private static final boolean DISCONNECTED = false;
|
| -
|
| - private static final boolean WIFI_ON = true;
|
| - private static final boolean WIFI_OFF = false;
|
| -
|
| - private static final boolean UPLOAD_OK = true;
|
| - private static final boolean UPLOAD_NOT_PERMITTED = false;
|
| -
|
| - private static final UserUploadPreference UPLOAD_ALWAYS = UserUploadPreference.ALWAYS;
|
| - private static final UserUploadPreference UPLOAD_WIFI_ONLY = UserUploadPreference.WIFI_ONLY;
|
| - private static final UserUploadPreference UPLOAD_NEVER = UserUploadPreference.NEVER;
|
| -
|
| - private static final boolean EXPERIMENT_ENABLED = true;
|
| - private static final boolean EXPERIMENT_DISABLED = false;
|
| - private static final boolean METRIC_REPORTING_SET = true;
|
| - private static final boolean METRIC_REPORTING_NOT_SET = false;
|
| - private static final boolean METRIC_REPORTING_ENABLED = true;
|
| - private static final boolean METRIC_REPORTING_DISABLED = false;
|
| -
|
| - // Perform the same test a few times to make sure any sort of
|
| - // caching still works.
|
| - private static final int REPS = 3;
|
| -
|
| - /**
|
| - * Enum used to specify user upload preference that is easy to read.
|
| - */
|
| - private static enum UserUploadPreference {
|
| - ALWAYS(R.string.crash_dump_always_upload_value),
|
| - WIFI_ONLY(R.string.crash_dump_only_with_wifi_value),
|
| - NEVER(R.string.crash_dump_never_upload_value);
|
| -
|
| - private final int mValueId;
|
| -
|
| - UserUploadPreference(int valueId) {
|
| - mValueId = valueId;
|
| - }
|
| -
|
| - public String toStringValue(Context context) {
|
| - return context.getString(mValueId);
|
| - }
|
| -
|
| - public boolean toBooleanValue() {
|
| - return !equals(NEVER); // return true for WIFI_ONLY for now
|
| - }
|
| - }
|
| -
|
| - @SmallTest
|
| - @Feature({"Android-AppBase"})
|
| - @UiThreadTest
|
| - public void testAllowCrashDumpUploadNowCellDev() {
|
| - CommandLine.init(null);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, DISCONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, DISCONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| -
|
| - runTest(CELLULAR_DEVICE, UPLOAD_WIFI_ONLY, CONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_WIFI_ONLY, DISCONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_WIFI_ONLY, CONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_WIFI_ONLY, DISCONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| -
|
| - runTest(CELLULAR_DEVICE, UPLOAD_NEVER, CONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_NEVER, DISCONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_NEVER, CONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_NEVER, DISCONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| -
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_DISABLED, UPLOAD_OK);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, DISCONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_DISABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_WIFI_ONLY, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_DISABLED, UPLOAD_OK);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_NEVER, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| -
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_OFF, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_SET, METRIC_REPORTING_DISABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(CELLULAR_DEVICE, UPLOAD_ALWAYS, DISCONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - }
|
| -
|
| - @SmallTest
|
| - @Feature({"Android-AppBase"})
|
| - @UiThreadTest
|
| - public void testAllowCrashDumpUploadNowWifiDev() {
|
| - CommandLine.init(null);
|
| - runTest(WIFI_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(WIFI_DEVICE, UPLOAD_ALWAYS, DISCONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| -
|
| - runTest(WIFI_DEVICE, UPLOAD_NEVER, CONNECTED, WIFI_ON, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| - runTest(WIFI_DEVICE, UPLOAD_NEVER, DISCONNECTED, WIFI_OFF, EXPERIMENT_DISABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| -
|
| - runTest(WIFI_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(WIFI_DEVICE, UPLOAD_NEVER, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_NOT_SET, METRIC_REPORTING_ENABLED, UPLOAD_NOT_PERMITTED);
|
| -
|
| - runTest(WIFI_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_SET, METRIC_REPORTING_ENABLED, UPLOAD_OK);
|
| - runTest(WIFI_DEVICE, UPLOAD_ALWAYS, CONNECTED, WIFI_ON, EXPERIMENT_ENABLED,
|
| - METRIC_REPORTING_SET, METRIC_REPORTING_DISABLED, UPLOAD_NOT_PERMITTED);
|
| - }
|
| -
|
| - private void runTest(boolean mobileCapable, UserUploadPreference userPreference,
|
| - boolean isConnected, boolean wifiOn, boolean experimentEnabled,
|
| - boolean hasSetMetricsReporting, boolean isMetricsReportinEnabled,
|
| - boolean uploadPermitted) {
|
| - PermissionContext context = new PermissionContext(getInstrumentation().getTargetContext());
|
| - PrivacyPreferencesManager preferenceManager =
|
| - new MockPrivacyPreferencesManager(context, mobileCapable, isConnected, wifiOn,
|
| - hasSetMetricsReporting, isMetricsReportinEnabled);
|
| - preferenceManager.setCellularExperiment(experimentEnabled);
|
| -
|
| - for (int i = 0; i < REPS; i++) {
|
| - setUpUserPreferences(context, userPreference);
|
| - String state =
|
| - String.format("[cellular = %b, preference = %b, connected = %b, wifi = %b,"
|
| - + "experiment = %b, reporting_set = %b, reporting = %b]",
|
| - mobileCapable, userPreference.toBooleanValue(), isConnected, wifiOn,
|
| - experimentEnabled, hasSetMetricsReporting, isMetricsReportinEnabled);
|
| - boolean res = preferenceManager.isUploadPermitted();
|
| - if (uploadPermitted) {
|
| - assertTrue("Upload should be permitted for " + state, res);
|
| - } else {
|
| - assertFalse("Upload should NOT be permitted for " + state, res);
|
| - }
|
| - }
|
| - }
|
| -
|
| - private void setUpUserPreferences(Context context, UserUploadPreference userPreference) {
|
| - SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
|
| - SharedPreferences.Editor ed = pref.edit()
|
| - .putString(PrivacyPreferencesManager.PREF_CRASH_DUMP_UPLOAD,
|
| - userPreference.toStringValue(context))
|
| - .putBoolean(PrivacyPreferencesManager.PREF_CRASH_DUMP_UPLOAD_NO_CELLULAR,
|
| - userPreference.toBooleanValue());
|
| - ed.apply();
|
| - }
|
| -
|
| - private static class MockPrivacyPreferencesManager extends PrivacyPreferencesManager {
|
| - private final boolean mIsMobileCapable;
|
| - private final boolean mIsConnected;
|
| - private final boolean mIsWifi;
|
| -
|
| - MockPrivacyPreferencesManager(Context context, boolean isMobileCapable, boolean isConnected,
|
| - boolean isWifi, boolean hasSetMetricsReporting, boolean isMetricsReportinEnabled) {
|
| - super(context);
|
| - mIsMobileCapable = isMobileCapable;
|
| - mIsConnected = isConnected;
|
| - mIsWifi = isWifi;
|
| -
|
| - if (hasSetMetricsReporting) setUsageAndCrashReporting(isMetricsReportinEnabled);
|
| - }
|
| -
|
| - @Override
|
| - public boolean isMobileNetworkCapable() {
|
| - return mIsMobileCapable;
|
| - }
|
| -
|
| - @Override
|
| - public boolean isNetworkAvailable() {
|
| - return mIsConnected;
|
| - }
|
| -
|
| - @Override
|
| - public boolean isWiFiOrEthernetNetwork() {
|
| - return mIsWifi;
|
| - }
|
| - }
|
| -
|
| - private static class PermissionContext extends AdvancedMockContext {
|
| - public PermissionContext(Context targetContext) {
|
| - super(targetContext);
|
| - }
|
| -
|
| - @Override
|
| - public Object getSystemService(String name) {
|
| - if (Context.CONNECTIVITY_SERVICE.equals(name)) {
|
| - return null;
|
| - }
|
| - fail("Should not ask for any other service than the ConnectionManager.");
|
| - return super.getSystemService(name);
|
| - }
|
| - }
|
| -}
|
|
|