OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |