Chromium Code Reviews| 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 |