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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java

Issue 2766373004: Convert the rest of chrome_public_test_apk InstrumentationTestCases to JUnit4 (Closed)
Patch Set: nits and rebase Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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; 5 package org.chromium.chrome.browser;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.support.test.InstrumentationRegistry;
8 import android.support.test.filters.SmallTest; 9 import android.support.test.filters.SmallTest;
9 import android.test.InstrumentationTestCase;
10 10
11 import com.google.android.gms.gcm.TaskParams; 11 import com.google.android.gms.gcm.TaskParams;
12 12
13 import org.junit.After;
14 import org.junit.Assert;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.junit.runner.RunWith;
18
13 import org.chromium.base.ContextUtils; 19 import org.chromium.base.ContextUtils;
14 import org.chromium.base.ThreadUtils; 20 import org.chromium.base.ThreadUtils;
15 import org.chromium.base.metrics.RecordHistogram; 21 import org.chromium.base.metrics.RecordHistogram;
16 import org.chromium.base.test.util.AdvancedMockContext; 22 import org.chromium.base.test.util.AdvancedMockContext;
17 import org.chromium.base.test.util.Feature; 23 import org.chromium.base.test.util.Feature;
18 import org.chromium.base.test.util.RetryOnFailure; 24 import org.chromium.base.test.util.RetryOnFailure;
19 import org.chromium.chrome.browser.ntp.snippets.SnippetsLauncher; 25 import org.chromium.chrome.browser.ntp.snippets.SnippetsLauncher;
20 import org.chromium.chrome.browser.precache.PrecacheController; 26 import org.chromium.chrome.browser.precache.PrecacheController;
27 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
21 28
22 /** 29 /**
23 * Tests {@link ChromeBackgroundService}. 30 * Tests {@link ChromeBackgroundService}.
24 */ 31 */
32 @RunWith(ChromeJUnit4ClassRunner.class)
25 @RetryOnFailure 33 @RetryOnFailure
26 public class ChromeBackgroundServiceTest extends InstrumentationTestCase { 34 public class ChromeBackgroundServiceTest {
27 private Context mContext; 35 private Context mContext;
28 private BackgroundSyncLauncher mSyncLauncher; 36 private BackgroundSyncLauncher mSyncLauncher;
29 private SnippetsLauncher mSnippetsLauncher; 37 private SnippetsLauncher mSnippetsLauncher;
30 private MockTaskService mTaskService; 38 private MockTaskService mTaskService;
31 39
32 static class MockTaskService extends ChromeBackgroundService { 40 static class MockTaskService extends ChromeBackgroundService {
33 private boolean mDidLaunchBrowser = false; 41 private boolean mDidLaunchBrowser = false;
34 private boolean mDidFetchSnippets = false; 42 private boolean mDidFetchSnippets = false;
35 private boolean mDidRescheduleFetching = false; 43 private boolean mDidRescheduleFetching = false;
36 private boolean mHasPrecacheInstance = true; 44 private boolean mHasPrecacheInstance = true;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 79
72 // Posts an assertion task to the UI thread. Since this is only called a fter the call 80 // Posts an assertion task to the UI thread. Since this is only called a fter the call
73 // to onRunTask, it will be enqueued after any possible call to launchBr owser, and we 81 // to onRunTask, it will be enqueued after any possible call to launchBr owser, and we
74 // can reliably check whether launchBrowser was called. 82 // can reliably check whether launchBrowser was called.
75 protected void checkExpectations(final boolean expectedLaunchBrowser, 83 protected void checkExpectations(final boolean expectedLaunchBrowser,
76 final boolean expectedPrecacheStarted, final boolean expectedFet chSnippets, 84 final boolean expectedPrecacheStarted, final boolean expectedFet chSnippets,
77 final boolean expectedRescheduleFetching) { 85 final boolean expectedRescheduleFetching) {
78 ThreadUtils.runOnUiThread(new Runnable() { 86 ThreadUtils.runOnUiThread(new Runnable() {
79 @Override 87 @Override
80 public void run() { 88 public void run() {
81 assertEquals("StartedService", expectedLaunchBrowser, mDidLa unchBrowser); 89 Assert.assertEquals("StartedService", expectedLaunchBrowser, mDidLaunchBrowser);
82 assertEquals("StartedPrecache", expectedPrecacheStarted, mPr ecachingStarted); 90 Assert.assertEquals(
83 assertEquals("FetchedSnippets", expectedFetchSnippets, mDidF etchSnippets); 91 "StartedPrecache", expectedPrecacheStarted, mPrecach ingStarted);
84 assertEquals("RescheduledFetching", expectedRescheduleFetchi ng, 92 Assert.assertEquals(
93 "FetchedSnippets", expectedFetchSnippets, mDidFetchS nippets);
94 Assert.assertEquals("RescheduledFetching", expectedReschedul eFetching,
85 mDidRescheduleFetching); 95 mDidRescheduleFetching);
86 } 96 }
87 }); 97 });
88 } 98 }
89 99
90 protected void deletePrecacheInstance() { 100 protected void deletePrecacheInstance() {
91 mHasPrecacheInstance = false; 101 mHasPrecacheInstance = false;
92 } 102 }
93 } 103 }
94 104
95 @Override 105 @Before
96 protected void setUp() throws Exception { 106 public void setUp() throws Exception {
97 mContext = new AdvancedMockContext(getInstrumentation().getTargetContext ()); 107 mContext = new AdvancedMockContext(
108 InstrumentationRegistry.getInstrumentation().getTargetContext()) ;
98 BackgroundSyncLauncher.setGCMEnabled(false); 109 BackgroundSyncLauncher.setGCMEnabled(false);
99 RecordHistogram.setDisabledForTests(true); 110 RecordHistogram.setDisabledForTests(true);
100 mSyncLauncher = BackgroundSyncLauncher.create(mContext); 111 mSyncLauncher = BackgroundSyncLauncher.create(mContext);
101 mSnippetsLauncher = SnippetsLauncher.create(mContext); 112 mSnippetsLauncher = SnippetsLauncher.create(mContext);
102 mTaskService = new MockTaskService(); 113 mTaskService = new MockTaskService();
103 } 114 }
104 115
105 @Override 116 @After
106 public void tearDown() throws Exception { 117 public void tearDown() throws Exception {
107 super.tearDown();
108 RecordHistogram.setDisabledForTests(false); 118 RecordHistogram.setDisabledForTests(false);
109 } 119 }
110 120
111 private void deleteSyncLauncherInstance() { 121 private void deleteSyncLauncherInstance() {
112 mSyncLauncher.destroy(); 122 mSyncLauncher.destroy();
113 mSyncLauncher = null; 123 mSyncLauncher = null;
114 } 124 }
115 125
116 private void deleteSnippetsLauncherInstance() { 126 private void deleteSnippetsLauncherInstance() {
117 mSnippetsLauncher.destroy(); 127 mSnippetsLauncher.destroy();
118 mSnippetsLauncher = null; 128 mSnippetsLauncher = null;
119 } 129 }
120 130
121 private void startOnRunTaskAndVerify(String taskTag, boolean shouldStart, 131 private void startOnRunTaskAndVerify(String taskTag, boolean shouldStart,
122 boolean shouldPrecache, boolean shouldFetchSnippets) { 132 boolean shouldPrecache, boolean shouldFetchSnippets) {
123 mTaskService.onRunTask(new TaskParams(taskTag)); 133 mTaskService.onRunTask(new TaskParams(taskTag));
124 mTaskService.checkExpectations(shouldStart, shouldPrecache, shouldFetchS nippets, false); 134 mTaskService.checkExpectations(shouldStart, shouldPrecache, shouldFetchS nippets, false);
125 } 135 }
126 136
137 @Test
127 @SmallTest 138 @SmallTest
128 @Feature({"BackgroundSync"}) 139 @Feature({"BackgroundSync"})
129 public void testBackgroundSyncNoLaunchBrowserWhenInstanceExists() { 140 public void testBackgroundSyncNoLaunchBrowserWhenInstanceExists() {
130 startOnRunTaskAndVerify(BackgroundSyncLauncher.TASK_TAG, false, false, f alse); 141 startOnRunTaskAndVerify(BackgroundSyncLauncher.TASK_TAG, false, false, f alse);
131 } 142 }
132 143
144 @Test
133 @SmallTest 145 @SmallTest
134 @Feature({"BackgroundSync"}) 146 @Feature({"BackgroundSync"})
135 public void testBackgroundSyncLaunchBrowserWhenInstanceDoesNotExist() { 147 public void testBackgroundSyncLaunchBrowserWhenInstanceDoesNotExist() {
136 deleteSyncLauncherInstance(); 148 deleteSyncLauncherInstance();
137 startOnRunTaskAndVerify(BackgroundSyncLauncher.TASK_TAG, true, false, fa lse); 149 startOnRunTaskAndVerify(BackgroundSyncLauncher.TASK_TAG, true, false, fa lse);
138 } 150 }
139 151
152 @Test
140 @SmallTest 153 @SmallTest
141 @Feature({"NTPSnippets"}) 154 @Feature({"NTPSnippets"})
142 public void testNTPSnippetsFetchWifiNoLaunchBrowserWhenInstanceExists() { 155 public void testNTPSnippetsFetchWifiNoLaunchBrowserWhenInstanceExists() {
143 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_WIFI, false, false, tr ue); 156 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_WIFI, false, false, tr ue);
144 } 157 }
145 158
159 @Test
146 @SmallTest 160 @SmallTest
147 @Feature({"NTPSnippets"}) 161 @Feature({"NTPSnippets"})
148 public void testNTPSnippetsFetchFallbackNoLaunchBrowserWhenInstanceExists() { 162 public void testNTPSnippetsFetchFallbackNoLaunchBrowserWhenInstanceExists() {
149 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_FALLBACK, false, false , true); 163 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_FALLBACK, false, false , true);
150 } 164 }
151 165
166 @Test
152 @SmallTest 167 @SmallTest
153 @Feature({"NTPSnippets"}) 168 @Feature({"NTPSnippets"})
154 public void testNTPSnippetsFetchWifiLaunchBrowserWhenInstanceDoesNotExist() { 169 public void testNTPSnippetsFetchWifiLaunchBrowserWhenInstanceDoesNotExist() {
155 deleteSnippetsLauncherInstance(); 170 deleteSnippetsLauncherInstance();
156 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_WIFI, true, false, tru e); 171 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_WIFI, true, false, tru e);
157 } 172 }
158 173
174 @Test
159 @SmallTest 175 @SmallTest
160 @Feature({"NTPSnippets"}) 176 @Feature({"NTPSnippets"})
161 public void testNTPSnippetsFetchFallbackLaunchBrowserWhenInstanceDoesNotExis t() { 177 public void testNTPSnippetsFetchFallbackLaunchBrowserWhenInstanceDoesNotExis t() {
162 deleteSnippetsLauncherInstance(); 178 deleteSnippetsLauncherInstance();
163 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_FALLBACK, true, false, true); 179 startOnRunTaskAndVerify(SnippetsLauncher.TASK_TAG_FALLBACK, true, false, true);
164 } 180 }
165 181
182 @Test
166 @SmallTest 183 @SmallTest
167 @Feature({"Precache"}) 184 @Feature({"Precache"})
168 public void testPrecacheNoLaunchBrowserWhenInstanceExists() { 185 public void testPrecacheNoLaunchBrowserWhenInstanceExists() {
169 startOnRunTaskAndVerify(PrecacheController.PERIODIC_TASK_TAG, false, fal se, false); 186 startOnRunTaskAndVerify(PrecacheController.PERIODIC_TASK_TAG, false, fal se, false);
170 } 187 }
171 188
189 @Test
172 @SmallTest 190 @SmallTest
173 @Feature({"Precache"}) 191 @Feature({"Precache"})
174 public void testPrecacheLaunchBrowserWhenInstanceDoesNotExist() { 192 public void testPrecacheLaunchBrowserWhenInstanceDoesNotExist() {
175 mTaskService.deletePrecacheInstance(); 193 mTaskService.deletePrecacheInstance();
176 startOnRunTaskAndVerify(PrecacheController.PERIODIC_TASK_TAG, true, true , false); 194 startOnRunTaskAndVerify(PrecacheController.PERIODIC_TASK_TAG, true, true , false);
177 } 195 }
178 196
179 private void startOnInitializeTasksAndVerify(boolean shouldStart, boolean sh ouldReschedule) { 197 private void startOnInitializeTasksAndVerify(boolean shouldStart, boolean sh ouldReschedule) {
180 mTaskService.onInitializeTasks(); 198 mTaskService.onInitializeTasks();
181 mTaskService.checkExpectations(shouldStart, false, false, shouldReschedu le); 199 mTaskService.checkExpectations(shouldStart, false, false, shouldReschedu le);
182 } 200 }
183 201
202 @Test
184 @SmallTest 203 @SmallTest
185 @Feature({"NTPSnippets"}) 204 @Feature({"NTPSnippets"})
186 public void testNTPSnippetsNoRescheduleWithoutPrefWhenInstanceExists() { 205 public void testNTPSnippetsNoRescheduleWithoutPrefWhenInstanceExists() {
187 startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedul e=*/false); 206 startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedul e=*/false);
188 } 207 }
189 208
209 @Test
190 @SmallTest 210 @SmallTest
191 @Feature({"NTPSnippets"}) 211 @Feature({"NTPSnippets"})
192 public void testNTPSnippetsNoRescheduleWithoutPrefWhenInstanceDoesNotExist() { 212 public void testNTPSnippetsNoRescheduleWithoutPrefWhenInstanceDoesNotExist() {
193 deleteSnippetsLauncherInstance(); 213 deleteSnippetsLauncherInstance();
194 startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedul e=*/false); 214 startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedul e=*/false);
195 } 215 }
196 216
217 @Test
197 @SmallTest 218 @SmallTest
198 @Feature({"NTPSnippets"}) 219 @Feature({"NTPSnippets"})
199 public void testNTPSnippetsRescheduleWithPrefWhenInstanceExists() { 220 public void testNTPSnippetsRescheduleWithPrefWhenInstanceExists() {
200 // Set the pref indicating that fetching was scheduled before. 221 // Set the pref indicating that fetching was scheduled before.
201 ContextUtils.getAppSharedPreferences() 222 ContextUtils.getAppSharedPreferences()
202 .edit() 223 .edit()
203 .putBoolean(SnippetsLauncher.PREF_IS_SCHEDULED, true) 224 .putBoolean(SnippetsLauncher.PREF_IS_SCHEDULED, true)
204 .apply(); 225 .apply();
205 226
206 startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedul e=*/true); 227 startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedul e=*/true);
207 } 228 }
208 229
230 @Test
209 @SmallTest 231 @SmallTest
210 @Feature({"NTPSnippets"}) 232 @Feature({"NTPSnippets"})
211 public void testNTPSnippetsRescheduleAndLaunchBrowserWithPrefWhenInstanceDoe sNotExist() { 233 public void testNTPSnippetsRescheduleAndLaunchBrowserWithPrefWhenInstanceDoe sNotExist() {
212 deleteSnippetsLauncherInstance(); 234 deleteSnippetsLauncherInstance();
213 // Set the pref indicating that fetching was scheduled before. 235 // Set the pref indicating that fetching was scheduled before.
214 ContextUtils.getAppSharedPreferences() 236 ContextUtils.getAppSharedPreferences()
215 .edit() 237 .edit()
216 .putBoolean(SnippetsLauncher.PREF_IS_SCHEDULED, true) 238 .putBoolean(SnippetsLauncher.PREF_IS_SCHEDULED, true)
217 .apply(); 239 .apply();
218 240
219 startOnInitializeTasksAndVerify(/*shouldStart=*/true, /*shouldReschedule =*/true); 241 startOnInitializeTasksAndVerify(/*shouldStart=*/true, /*shouldReschedule =*/true);
220 } 242 }
221 } 243 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698