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

Side by Side Diff: chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java

Issue 2275513003: Move usage and crash reporting to opt-out by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unittests Created 4 years, 4 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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.firstrun; 5 package org.chromium.chrome.browser.firstrun;
6 6
7 import static org.junit.Assert.assertEquals; 7 import static org.junit.Assert.assertEquals;
8 import static org.junit.Assert.assertFalse; 8 import static org.junit.Assert.assertFalse;
9 import static org.junit.Assert.assertNull; 9 import static org.junit.Assert.assertNull;
10 import static org.junit.Assert.assertTrue; 10 import static org.junit.Assert.assertTrue;
(...skipping 27 matching lines...) Expand all
38 /** Information for Google OS account */ 38 /** Information for Google OS account */
39 private static final String GOOGLE_ACCOUNT_TYPE = "com.google"; 39 private static final String GOOGLE_ACCOUNT_TYPE = "com.google";
40 private static final String DEFAULT_ACCOUNT = "test@gmail.com"; 40 private static final String DEFAULT_ACCOUNT = "test@gmail.com";
41 41
42 /** 42 /**
43 * Testing version of FirstRunFlowSequencer that allows us to override all n eeded checks. 43 * Testing version of FirstRunFlowSequencer that allows us to override all n eeded checks.
44 */ 44 */
45 public static class TestFirstRunFlowSequencer extends FirstRunFlowSequencer { 45 public static class TestFirstRunFlowSequencer extends FirstRunFlowSequencer {
46 public Bundle returnedBundle; 46 public Bundle returnedBundle;
47 public boolean calledOnFlowIsKnown; 47 public boolean calledOnFlowIsKnown;
48 public boolean calledEnableCrashUpload; 48 public boolean calledSetDefaultUsageAndCrashReporting;
49 public boolean calledSetFirstRunFlowSignInComplete; 49 public boolean calledSetFirstRunFlowSignInComplete;
50 50
51 public boolean isFirstRunFlowComplete; 51 public boolean isFirstRunFlowComplete;
52 public boolean isSignedIn; 52 public boolean isSignedIn;
53 public boolean isSyncAllowed; 53 public boolean isSyncAllowed;
54 public Account[] googleAccounts; 54 public Account[] googleAccounts;
55 public boolean hasAnyUserSeenToS; 55 public boolean hasAnyUserSeenToS;
56 public boolean shouldSkipFirstUseHints; 56 public boolean shouldSkipFirstUseHints;
57 public boolean isFirstRunEulaAccepted; 57 public boolean isFirstRunEulaAccepted;
58 public boolean shouldShowDataReductionPage; 58 public boolean shouldShowDataReductionPage;
59 59
60 public TestFirstRunFlowSequencer(Activity activity, Bundle launcherProvi dedProperties) { 60 public TestFirstRunFlowSequencer(Activity activity, Bundle launcherProvi dedProperties) {
61 super(activity, launcherProvidedProperties, true); 61 super(activity, launcherProvidedProperties);
62 } 62 }
63 63
64 @Override 64 @Override
65 public void onFlowIsKnown(Bundle freProperties) { 65 public void onFlowIsKnown(Bundle freProperties) {
66 calledOnFlowIsKnown = true; 66 calledOnFlowIsKnown = true;
67 returnedBundle = freProperties; 67 returnedBundle = freProperties;
68 } 68 }
69 69
70 @Override 70 @Override
71 public boolean isFirstRunFlowComplete() { 71 public boolean isFirstRunFlowComplete() {
(...skipping 29 matching lines...) Expand all
101 public boolean isFirstRunEulaAccepted() { 101 public boolean isFirstRunEulaAccepted() {
102 return isFirstRunEulaAccepted; 102 return isFirstRunEulaAccepted;
103 } 103 }
104 104
105 @Override 105 @Override
106 public boolean shouldShowDataReductionPage() { 106 public boolean shouldShowDataReductionPage() {
107 return shouldShowDataReductionPage; 107 return shouldShowDataReductionPage;
108 } 108 }
109 109
110 @Override 110 @Override
111 public void enableCrashUpload() { 111 public void setDefaultUsageAndCrashReporting() {
112 calledEnableCrashUpload = true; 112 calledSetDefaultUsageAndCrashReporting = true;
113 } 113 }
Ilya Sherman 2016/08/25 19:56:51 It looks like there are no tests where this is cal
gayane -on leave until 09-2017 2016/08/25 20:50:15 fixed the tests, should be call in all tests expec
114 114
115 @Override 115 @Override
116 protected void setFirstRunFlowSignInComplete() { 116 protected void setFirstRunFlowSignInComplete() {
117 calledSetFirstRunFlowSignInComplete = true; 117 calledSetFirstRunFlowSignInComplete = true;
118 } 118 }
119 } 119 }
120 120
121 ActivityController<Activity> mActivityController; 121 ActivityController<Activity> mActivityController;
122 TestFirstRunFlowSequencer mSequencer; 122 TestFirstRunFlowSequencer mSequencer;
123 123
(...skipping 21 matching lines...) Expand all
145 mSequencer.isSyncAllowed = true; 145 mSequencer.isSyncAllowed = true;
146 mSequencer.googleAccounts = null; 146 mSequencer.googleAccounts = null;
147 mSequencer.hasAnyUserSeenToS = true; 147 mSequencer.hasAnyUserSeenToS = true;
148 mSequencer.shouldSkipFirstUseHints = false; 148 mSequencer.shouldSkipFirstUseHints = false;
149 mSequencer.isFirstRunEulaAccepted = true; 149 mSequencer.isFirstRunEulaAccepted = true;
150 mSequencer.processFreEnvironment( 150 mSequencer.processFreEnvironment(
151 false, // androidEduDevice 151 false, // androidEduDevice
152 false); // hasChildAccount 152 false); // hasChildAccount
153 assertTrue(mSequencer.calledOnFlowIsKnown); 153 assertTrue(mSequencer.calledOnFlowIsKnown);
154 assertNull(mSequencer.returnedBundle); 154 assertNull(mSequencer.returnedBundle);
155 assertFalse(mSequencer.calledEnableCrashUpload); 155 assertFalse(mSequencer.calledSetDefaultUsageAndCrashReporting);
156 } 156 }
157 157
158 @Test 158 @Test
159 @Feature({"FirstRun"}) 159 @Feature({"FirstRun"})
160 public void testStandardFlowTosNotSeen() { 160 public void testStandardFlowTosNotSeen() {
161 mSequencer.isFirstRunFlowComplete = false; 161 mSequencer.isFirstRunFlowComplete = false;
162 mSequencer.isSignedIn = false; 162 mSequencer.isSignedIn = false;
163 mSequencer.isSyncAllowed = true; 163 mSequencer.isSyncAllowed = true;
164 mSequencer.googleAccounts = new Account[0]; 164 mSequencer.googleAccounts = new Account[0];
165 mSequencer.hasAnyUserSeenToS = false; 165 mSequencer.hasAnyUserSeenToS = false;
166 mSequencer.shouldSkipFirstUseHints = false; 166 mSequencer.shouldSkipFirstUseHints = false;
167 mSequencer.shouldShowDataReductionPage = false; 167 mSequencer.shouldShowDataReductionPage = false;
168 mSequencer.processFreEnvironment( 168 mSequencer.processFreEnvironment(
169 false, // androidEduDevice 169 false, // androidEduDevice
170 false); // hasChildAccount 170 false); // hasChildAccount
171 assertTrue(mSequencer.calledOnFlowIsKnown); 171 assertTrue(mSequencer.calledOnFlowIsKnown);
172 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE)); 172 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE));
173 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE)); 173 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE));
174 assertFalse(mSequencer.returnedBundle.getBoolean( 174 assertFalse(mSequencer.returnedBundle.getBoolean(
175 FirstRunActivity.SHOW_DATA_REDUCTION_PAGE)); 175 FirstRunActivity.SHOW_DATA_REDUCTION_PAGE));
176 assertFalse(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment .IS_CHILD_ACCOUNT)); 176 assertFalse(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment .IS_CHILD_ACCOUNT));
177 assertEquals(4, mSequencer.returnedBundle.size()); 177 assertEquals(4, mSequencer.returnedBundle.size());
178 assertFalse(mSequencer.calledEnableCrashUpload); 178 assertFalse(mSequencer.calledSetDefaultUsageAndCrashReporting);
179 assertFalse(mSequencer.calledSetFirstRunFlowSignInComplete); 179 assertFalse(mSequencer.calledSetFirstRunFlowSignInComplete);
180 } 180 }
181 181
182 @Test 182 @Test
183 @Feature({"FirstRun"}) 183 @Feature({"FirstRun"})
184 public void testStandardFlowTosSeenOneAccount() { 184 public void testStandardFlowTosSeenOneAccount() {
185 Account[] accounts = new Account[1]; 185 Account[] accounts = new Account[1];
186 accounts[0] = new Account(DEFAULT_ACCOUNT, GOOGLE_ACCOUNT_TYPE); 186 accounts[0] = new Account(DEFAULT_ACCOUNT, GOOGLE_ACCOUNT_TYPE);
187 mSequencer.isFirstRunFlowComplete = false; 187 mSequencer.isFirstRunFlowComplete = false;
188 mSequencer.isSignedIn = false; 188 mSequencer.isSignedIn = false;
189 mSequencer.isSyncAllowed = true; 189 mSequencer.isSyncAllowed = true;
190 mSequencer.googleAccounts = accounts; 190 mSequencer.googleAccounts = accounts;
191 mSequencer.hasAnyUserSeenToS = true; 191 mSequencer.hasAnyUserSeenToS = true;
192 mSequencer.shouldSkipFirstUseHints = false; 192 mSequencer.shouldSkipFirstUseHints = false;
193 mSequencer.shouldShowDataReductionPage = false; 193 mSequencer.shouldShowDataReductionPage = false;
194 mSequencer.processFreEnvironment( 194 mSequencer.processFreEnvironment(
195 false, // androidEduDevice 195 false, // androidEduDevice
196 false); // hasChildAccount 196 false); // hasChildAccount
197 assertTrue(mSequencer.calledOnFlowIsKnown); 197 assertTrue(mSequencer.calledOnFlowIsKnown);
198 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE)); 198 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE));
199 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE)); 199 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE));
200 assertFalse(mSequencer.returnedBundle.getBoolean( 200 assertFalse(mSequencer.returnedBundle.getBoolean(
201 FirstRunActivity.SHOW_DATA_REDUCTION_PAGE)); 201 FirstRunActivity.SHOW_DATA_REDUCTION_PAGE));
202 assertFalse(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment .IS_CHILD_ACCOUNT)); 202 assertFalse(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment .IS_CHILD_ACCOUNT));
203 assertTrue(mSequencer.returnedBundle.getBoolean( 203 assertTrue(mSequencer.returnedBundle.getBoolean(
204 AccountFirstRunFragment.PRESELECT_BUT_ALLOW_TO_CHANGE)); 204 AccountFirstRunFragment.PRESELECT_BUT_ALLOW_TO_CHANGE));
205 assertEquals(DEFAULT_ACCOUNT, mSequencer.returnedBundle.getString( 205 assertEquals(DEFAULT_ACCOUNT, mSequencer.returnedBundle.getString(
206 AccountFirstRunFragment.FORCE_SIGNIN_ACCOUNT_TO)); 206 AccountFirstRunFragment.FORCE_SIGNIN_ACCOUNT_TO));
207 assertEquals(6, mSequencer.returnedBundle.size()); 207 assertEquals(6, mSequencer.returnedBundle.size());
208 assertFalse(mSequencer.calledEnableCrashUpload); 208 assertFalse(mSequencer.calledSetDefaultUsageAndCrashReporting);
209 assertFalse(mSequencer.calledSetFirstRunFlowSignInComplete); 209 assertFalse(mSequencer.calledSetFirstRunFlowSignInComplete);
210 } 210 }
211 211
212 @Test
213 @Feature({"FirstRun"})
214 public void testStandardFlowNonStable() {
215 mSequencer.isFirstRunFlowComplete = false;
216 mSequencer.isSignedIn = false;
217 mSequencer.isSyncAllowed = true;
218 mSequencer.googleAccounts = new Account[0];
219 mSequencer.hasAnyUserSeenToS = false;
220 mSequencer.shouldSkipFirstUseHints = false;
221 mSequencer.mIsMetricsReportingOptIn = false;
222 mSequencer.shouldShowDataReductionPage = false;
223 mSequencer.processFreEnvironment(
224 false, // androidEduDevice
225 false); // hasChildAccount
226 assertTrue(mSequencer.calledOnFlowIsKnown);
227 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE));
228 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE));
229 assertFalse(mSequencer.returnedBundle.getBoolean(
230 FirstRunActivity.SHOW_DATA_REDUCTION_PAGE));
231 assertFalse(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment .IS_CHILD_ACCOUNT));
232 assertEquals(4, mSequencer.returnedBundle.size());
233 assertTrue(mSequencer.calledEnableCrashUpload);
234 assertFalse(mSequencer.calledSetFirstRunFlowSignInComplete);
235 }
236
237 @Test 212 @Test
238 @Feature({"FirstRun"}) 213 @Feature({"FirstRun"})
239 public void testStandardFlowOneChildAccount() { 214 public void testStandardFlowOneChildAccount() {
240 Account[] accounts = new Account[1]; 215 Account[] accounts = new Account[1];
241 accounts[0] = new Account(DEFAULT_ACCOUNT, GOOGLE_ACCOUNT_TYPE); 216 accounts[0] = new Account(DEFAULT_ACCOUNT, GOOGLE_ACCOUNT_TYPE);
242 mSequencer.isFirstRunFlowComplete = false; 217 mSequencer.isFirstRunFlowComplete = false;
243 mSequencer.isSignedIn = false; 218 mSequencer.isSignedIn = false;
244 mSequencer.isSyncAllowed = true; 219 mSequencer.isSyncAllowed = true;
245 mSequencer.googleAccounts = accounts; 220 mSequencer.googleAccounts = accounts;
246 mSequencer.hasAnyUserSeenToS = false; 221 mSequencer.hasAnyUserSeenToS = false;
247 mSequencer.shouldSkipFirstUseHints = false; 222 mSequencer.shouldSkipFirstUseHints = false;
248 mSequencer.shouldShowDataReductionPage = false; 223 mSequencer.shouldShowDataReductionPage = false;
249 mSequencer.processFreEnvironment( 224 mSequencer.processFreEnvironment(
250 false, // androidEduDevice 225 false, // androidEduDevice
251 true); // hasChildAccount 226 true); // hasChildAccount
252 assertTrue(mSequencer.calledOnFlowIsKnown); 227 assertTrue(mSequencer.calledOnFlowIsKnown);
253 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE)); 228 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE));
254 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE)); 229 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE));
255 assertFalse(mSequencer.returnedBundle.getBoolean( 230 assertFalse(mSequencer.returnedBundle.getBoolean(
256 FirstRunActivity.SHOW_DATA_REDUCTION_PAGE)); 231 FirstRunActivity.SHOW_DATA_REDUCTION_PAGE));
257 assertTrue(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment. IS_CHILD_ACCOUNT)); 232 assertTrue(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment. IS_CHILD_ACCOUNT));
258 assertFalse(mSequencer.returnedBundle.getBoolean( 233 assertFalse(mSequencer.returnedBundle.getBoolean(
259 AccountFirstRunFragment.PRESELECT_BUT_ALLOW_TO_CHANGE)); 234 AccountFirstRunFragment.PRESELECT_BUT_ALLOW_TO_CHANGE));
260 assertEquals(DEFAULT_ACCOUNT, mSequencer.returnedBundle.getString( 235 assertEquals(DEFAULT_ACCOUNT, mSequencer.returnedBundle.getString(
261 AccountFirstRunFragment.FORCE_SIGNIN_ACCOUNT_TO)); 236 AccountFirstRunFragment.FORCE_SIGNIN_ACCOUNT_TO));
262 assertEquals(6, mSequencer.returnedBundle.size()); 237 assertEquals(6, mSequencer.returnedBundle.size());
263 assertFalse(mSequencer.calledEnableCrashUpload); 238 assertFalse(mSequencer.calledSetDefaultUsageAndCrashReporting);
264 assertTrue(mSequencer.calledSetFirstRunFlowSignInComplete); 239 assertTrue(mSequencer.calledSetFirstRunFlowSignInComplete);
265 } 240 }
266 241
267 @Test 242 @Test
268 @Feature({"FirstRun"}) 243 @Feature({"FirstRun"})
269 public void testStandardFlowShowDataReductionPage() { 244 public void testStandardFlowShowDataReductionPage() {
270 mSequencer.isFirstRunFlowComplete = false; 245 mSequencer.isFirstRunFlowComplete = false;
271 mSequencer.isSignedIn = false; 246 mSequencer.isSignedIn = false;
272 mSequencer.isSyncAllowed = true; 247 mSequencer.isSyncAllowed = true;
273 mSequencer.googleAccounts = new Account[0]; 248 mSequencer.googleAccounts = new Account[0];
274 mSequencer.hasAnyUserSeenToS = false; 249 mSequencer.hasAnyUserSeenToS = false;
275 mSequencer.shouldSkipFirstUseHints = false; 250 mSequencer.shouldSkipFirstUseHints = false;
276 mSequencer.shouldShowDataReductionPage = true; 251 mSequencer.shouldShowDataReductionPage = true;
277 mSequencer.processFreEnvironment( 252 mSequencer.processFreEnvironment(
278 false, // androidEduDevice 253 false, // androidEduDevice
279 false); // hasChildAccount 254 false); // hasChildAccount
280 assertTrue(mSequencer.calledOnFlowIsKnown); 255 assertTrue(mSequencer.calledOnFlowIsKnown);
281 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE)); 256 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_WE LCOME_PAGE));
282 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE)); 257 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_SI GNIN_PAGE));
283 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_DA TA_REDUCTION_PAGE)); 258 assertTrue(mSequencer.returnedBundle.getBoolean(FirstRunActivity.SHOW_DA TA_REDUCTION_PAGE));
284 assertFalse(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment .IS_CHILD_ACCOUNT)); 259 assertFalse(mSequencer.returnedBundle.getBoolean(AccountFirstRunFragment .IS_CHILD_ACCOUNT));
285 assertEquals(4, mSequencer.returnedBundle.size()); 260 assertEquals(4, mSequencer.returnedBundle.size());
286 assertFalse(mSequencer.calledEnableCrashUpload); 261 assertFalse(mSequencer.calledSetDefaultUsageAndCrashReporting);
287 assertFalse(mSequencer.calledSetFirstRunFlowSignInComplete); 262 assertFalse(mSequencer.calledSetFirstRunFlowSignInComplete);
288 } 263 }
289 } 264 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698