OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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.sync; | 5 package org.chromium.chrome.browser.sync; |
6 | 6 |
7 import android.accounts.Account; | 7 import android.accounts.Account; |
8 import android.app.Activity; | 8 import android.app.Activity; |
| 9 import android.test.suitebuilder.annotation.LargeTest; |
9 import android.util.Log; | 10 import android.util.Log; |
10 | 11 |
11 import org.chromium.base.ThreadUtils; | 12 import org.chromium.base.ThreadUtils; |
12 import org.chromium.base.test.util.HostDrivenTest; | 13 import org.chromium.base.test.util.Feature; |
13 import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator; | 14 import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator; |
14 import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory
; | 15 import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory
; |
15 import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerat
or; | 16 import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerat
or; |
16 import org.chromium.chrome.shell.ChromeShellActivity; | 17 import org.chromium.chrome.shell.ChromeShellActivity; |
17 import org.chromium.chrome.shell.ChromeShellTestBase; | 18 import org.chromium.chrome.shell.ChromeShellTestBase; |
18 import org.chromium.chrome.shell.sync.SyncController; | 19 import org.chromium.chrome.shell.sync.SyncController; |
19 import org.chromium.chrome.test.util.browser.sync.SyncTestUtil; | 20 import org.chromium.chrome.test.util.browser.sync.SyncTestUtil; |
20 import org.chromium.content.browser.ContentViewCore; | 21 import org.chromium.content.browser.ContentViewCore; |
21 import org.chromium.content.browser.test.util.Criteria; | 22 import org.chromium.content.browser.test.util.Criteria; |
22 import org.chromium.content.browser.test.util.CriteriaHelper; | 23 import org.chromium.content.browser.test.util.CriteriaHelper; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 SyncStatusHelper.overrideSyncStatusHelperForTests(mContext, syncContentR
esolverDelegate); | 59 SyncStatusHelper.overrideSyncStatusHelperForTests(mContext, syncContentR
esolverDelegate); |
59 // This call initializes the ChromeSigninController to use our test cont
ext. | 60 // This call initializes the ChromeSigninController to use our test cont
ext. |
60 ChromeSigninController.get(mContext); | 61 ChromeSigninController.get(mContext); |
61 startChromeBrowserProcessSync(getInstrumentation().getTargetContext()); | 62 startChromeBrowserProcessSync(getInstrumentation().getTargetContext()); |
62 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 63 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
63 @Override | 64 @Override |
64 public void run() { | 65 public void run() { |
65 mSyncController = SyncController.get(mContext); | 66 mSyncController = SyncController.get(mContext); |
66 } | 67 } |
67 }); | 68 }); |
68 SyncTestUtil.verifySyncServerIsRunning(); | 69 FakeServerHelper.useFakeServer(getInstrumentation().getTargetContext()); |
69 } | 70 } |
70 | 71 |
71 @HostDrivenTest | 72 @Override |
| 73 protected void tearDown() throws Exception { |
| 74 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 75 @Override |
| 76 public void run() { |
| 77 mSyncController.stop(); |
| 78 FakeServerHelper.deleteFakeServer(); |
| 79 } |
| 80 }); |
| 81 |
| 82 super.tearDown(); |
| 83 } |
| 84 |
| 85 @LargeTest |
| 86 @Feature({"Sync"}) |
72 public void testGetAboutSyncInfoYieldsValidData() throws Throwable { | 87 public void testGetAboutSyncInfoYieldsValidData() throws Throwable { |
73 setupTestAccountAndSignInToSync(FOREIGN_SESSION_TEST_MACHINE_ID); | 88 setupTestAccountAndSignInToSync(FOREIGN_SESSION_TEST_MACHINE_ID); |
74 | 89 |
75 final SyncTestUtil.AboutSyncInfoGetter syncInfoGetter = | 90 final SyncTestUtil.AboutSyncInfoGetter syncInfoGetter = |
76 new SyncTestUtil.AboutSyncInfoGetter(getActivity()); | 91 new SyncTestUtil.AboutSyncInfoGetter(getActivity()); |
77 runTestOnUiThread(syncInfoGetter); | 92 runTestOnUiThread(syncInfoGetter); |
78 | 93 |
79 boolean gotInfo = CriteriaHelper.pollForCriteria(new Criteria() { | 94 boolean gotInfo = CriteriaHelper.pollForCriteria(new Criteria() { |
80 @Override | 95 @Override |
81 public boolean isSatisfied() { | 96 public boolean isSatisfied() { |
82 return !syncInfoGetter.getAboutInfo().isEmpty(); | 97 return !syncInfoGetter.getAboutInfo().isEmpty(); |
83 } | 98 } |
84 }, SyncTestUtil.UI_TIMEOUT_MS, SyncTestUtil.CHECK_INTERVAL_MS); | 99 }, SyncTestUtil.UI_TIMEOUT_MS, SyncTestUtil.CHECK_INTERVAL_MS); |
85 | 100 |
86 assertTrue("Couldn't get about info.", gotInfo); | 101 assertTrue("Couldn't get about info.", gotInfo); |
87 } | 102 } |
88 | 103 |
89 @HostDrivenTest | 104 @LargeTest |
| 105 @Feature({"Sync"}) |
90 public void testAboutSyncPageDisplaysCurrentSyncStatus() throws InterruptedE
xception { | 106 public void testAboutSyncPageDisplaysCurrentSyncStatus() throws InterruptedE
xception { |
91 setupTestAccountAndSignInToSync(FOREIGN_SESSION_TEST_MACHINE_ID); | 107 setupTestAccountAndSignInToSync(FOREIGN_SESSION_TEST_MACHINE_ID); |
92 | 108 |
93 loadUrlWithSanitization("chrome://sync"); | 109 loadUrlWithSanitization("chrome://sync"); |
94 SyncTestUtil.AboutSyncInfoGetter aboutInfoGetter = | 110 SyncTestUtil.AboutSyncInfoGetter aboutInfoGetter = |
95 new SyncTestUtil.AboutSyncInfoGetter(getActivity()); | 111 new SyncTestUtil.AboutSyncInfoGetter(getActivity()); |
96 try { | 112 try { |
97 runTestOnUiThread(aboutInfoGetter); | 113 runTestOnUiThread(aboutInfoGetter); |
98 } catch (Throwable t) { | 114 } catch (Throwable t) { |
99 Log.w(TAG, | 115 Log.w(TAG, |
(...skipping 23 matching lines...) Expand all Loading... |
123 return innerHtml.contains(expectedSyncSummary); | 139 return innerHtml.contains(expectedSyncSummary); |
124 } | 140 } |
125 | 141 |
126 }; | 142 }; |
127 boolean hadExpectedStatus = CriteriaHelper.pollForCriteria( | 143 boolean hadExpectedStatus = CriteriaHelper.pollForCriteria( |
128 checker, SyncTestUtil.UI_TIMEOUT_MS, SyncTestUtil.CHECK_INTERVAL
_MS); | 144 checker, SyncTestUtil.UI_TIMEOUT_MS, SyncTestUtil.CHECK_INTERVAL
_MS); |
129 assertTrue("Sync status not present on about sync page: " + expectedSync
Summary, | 145 assertTrue("Sync status not present on about sync page: " + expectedSync
Summary, |
130 hadExpectedStatus); | 146 hadExpectedStatus); |
131 } | 147 } |
132 | 148 |
133 @HostDrivenTest | 149 @LargeTest |
| 150 @Feature({"Sync"}) |
134 public void testDisableAndEnableSync() throws InterruptedException { | 151 public void testDisableAndEnableSync() throws InterruptedException { |
135 setupTestAccountAndSignInToSync(FOREIGN_SESSION_TEST_MACHINE_ID); | 152 setupTestAccountAndSignInToSync(FOREIGN_SESSION_TEST_MACHINE_ID); |
136 Account account = | 153 Account account = |
137 AccountManagerHelper.createAccountFromName(SyncTestUtil.DEFAULT_
TEST_ACCOUNT); | 154 AccountManagerHelper.createAccountFromName(SyncTestUtil.DEFAULT_
TEST_ACCOUNT); |
138 | 155 |
139 // Disabling Android sync should turn Chrome sync engine off. | 156 // Disabling Android sync should turn Chrome sync engine off. |
140 SyncStatusHelper.get(mContext).disableAndroidSync(account); | 157 SyncStatusHelper.get(mContext).disableAndroidSync(account); |
141 SyncTestUtil.verifySyncIsDisabled(mContext, account); | 158 SyncTestUtil.verifySyncIsDisabled(mContext, account); |
142 | 159 |
143 // Enabling Android sync should turn Chrome sync engine on. | 160 // Enabling Android sync should turn Chrome sync engine on. |
(...skipping 29 matching lines...) Expand all Loading... |
173 | 190 |
174 SyncTestUtil.verifySyncIsSignedIn(mContext, defaultTestAccount); | 191 SyncTestUtil.verifySyncIsSignedIn(mContext, defaultTestAccount); |
175 assertTrue("Sync everything should be enabled", | 192 assertTrue("Sync everything should be enabled", |
176 SyncTestUtil.isSyncEverythingEnabled(mContext)); | 193 SyncTestUtil.isSyncEverythingEnabled(mContext)); |
177 } | 194 } |
178 | 195 |
179 private static ContentViewCore getContentViewCore(ChromeShellActivity activi
ty) { | 196 private static ContentViewCore getContentViewCore(ChromeShellActivity activi
ty) { |
180 return activity.getActiveContentViewCore(); | 197 return activity.getActiveContentViewCore(); |
181 } | 198 } |
182 } | 199 } |
OLD | NEW |