Index: chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/SyncCustomizationFragmentTest.java |
diff --git a/chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/SyncCustomizationFragmentTest.java b/chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/SyncCustomizationFragmentTest.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c578ea812ded78802e2fd327306261a0577feaf8 |
--- /dev/null |
+++ b/chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/SyncCustomizationFragmentTest.java |
@@ -0,0 +1,86 @@ |
+// 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.sync; |
+ |
+import android.app.Activity; |
+import android.app.FragmentTransaction; |
+import android.preference.SwitchPreference; |
+import android.test.suitebuilder.annotation.SmallTest; |
+ |
+import org.chromium.base.ThreadUtils; |
+import org.chromium.base.test.util.Feature; |
+import org.chromium.chrome.R; |
+import org.chromium.chrome.browser.sync.ui.SyncCustomizationFragment; |
+import org.chromium.sync.AndroidSyncSettings; |
+ |
+/** |
+ * Tests for SyncCustomizationFragment. |
+ */ |
+public class SyncCustomizationFragmentTest extends SyncTestBase { |
+ private static final String TAG = "SyncCustomizationFragmentTest"; |
+ private static final String TEST_ACCOUNT = "test@gmail.com"; |
+ |
+ private Activity mActivity; |
+ private AndroidSyncSettings mAndroidSyncSettings; |
+ |
+ @Override |
+ protected void setUp() throws Exception { |
+ super.setUp(); |
+ mAndroidSyncSettings = AndroidSyncSettings.get(mContext); |
+ mActivity = getActivity(); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"Sync"}) |
+ public void testSyncSwitch() throws Exception { |
+ setupTestAccountAndSignInToSync(CLIENT_ID); |
+ |
+ // Make sure sync is actually enabled. |
+ mAndroidSyncSettings.enableChromeSync(); |
+ getInstrumentation().waitForIdleSync(); |
+ SyncCustomizationFragment fragment = startSyncCustomizationFragment(); |
+ final SwitchPreference syncSwitch = getSyncSwitch(fragment); |
+ |
+ assertTrue(syncSwitch.isChecked()); |
+ assertTrue(mAndroidSyncSettings.isChromeSyncEnabled()); |
+ toggleSwitch(syncSwitch); |
+ assertFalse(syncSwitch.isChecked()); |
+ assertFalse(mAndroidSyncSettings.isChromeSyncEnabled()); |
+ toggleSwitch(syncSwitch); |
+ assertTrue(syncSwitch.isChecked()); |
+ assertTrue(mAndroidSyncSettings.isChromeSyncEnabled()); |
+ } |
+ |
+ private SyncCustomizationFragment startSyncCustomizationFragment() { |
+ FragmentTransaction transaction = mActivity.getFragmentManager().beginTransaction(); |
+ transaction.add(R.id.content_container, new SyncCustomizationFragment(), TAG); |
+ transaction.commit(); |
+ getInstrumentation().waitForIdleSync(); |
+ return (SyncCustomizationFragment) mActivity.getFragmentManager().findFragmentByTag(TAG); |
+ } |
+ |
+ private SwitchPreference getSyncSwitch(SyncCustomizationFragment fragment) { |
+ return (SwitchPreference) fragment.findPreference( |
+ SyncCustomizationFragment.PREF_SYNC_SWITCH); |
+ } |
+ |
+ private SwitchPreference getSyncEverything(SyncCustomizationFragment fragment) { |
+ return (SwitchPreference) fragment.findPreference( |
+ SyncCustomizationFragment.PREFERENCE_SYNC_EVERYTHING); |
+ } |
+ |
+ private void toggleSwitch(final SwitchPreference pref) { |
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
+ @Override |
+ public void run() { |
+ boolean newValue = !pref.isChecked(); |
+ pref.getOnPreferenceChangeListener().onPreferenceChange( |
+ pref, Boolean.valueOf(newValue)); |
+ pref.setChecked(newValue); |
+ } |
+ }); |
+ getInstrumentation().waitForIdleSync(); |
+ } |
+} |