| OLD | NEW |
| 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 #include <memory> | 5 #include <memory> |
| 6 #include <string> | 6 #include <string> |
| 7 #include <tuple> | 7 #include <tuple> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state()); | 278 EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state()); |
| 279 | 279 |
| 280 // Enables ARC. First time, ToS negotiation should start. | 280 // Enables ARC. First time, ToS negotiation should start. |
| 281 arc_session_manager()->RequestEnable(); | 281 arc_session_manager()->RequestEnable(); |
| 282 base::RunLoop().RunUntilIdle(); | 282 base::RunLoop().RunUntilIdle(); |
| 283 ASSERT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, | 283 ASSERT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, |
| 284 arc_session_manager()->state()); | 284 arc_session_manager()->state()); |
| 285 | 285 |
| 286 // TODO(hidehiko): Verify state transition from SHOWING_TERMS_OF_SERVICE -> | 286 // TODO(hidehiko): Verify state transition from SHOWING_TERMS_OF_SERVICE -> |
| 287 // CHECKING_ANDROID_MANAGEMENT, when we extract ArcSessionManager. | 287 // CHECKING_ANDROID_MANAGEMENT, when we extract ArcSessionManager. |
| 288 arc_session_manager()->StartArc(); | 288 arc_session_manager()->StartArcForTesting(); |
| 289 | 289 |
| 290 EXPECT_TRUE(arc_session_manager()->sign_in_start_time().is_null()); | 290 EXPECT_TRUE(arc_session_manager()->sign_in_start_time().is_null()); |
| 291 EXPECT_FALSE(arc_session_manager()->arc_start_time().is_null()); | 291 EXPECT_FALSE(arc_session_manager()->arc_start_time().is_null()); |
| 292 | 292 |
| 293 ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 293 ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 294 ASSERT_TRUE(arc_session_manager()->IsSessionRunning()); | 294 ASSERT_TRUE(arc_session_manager()->IsSessionRunning()); |
| 295 | 295 |
| 296 arc_session_manager()->Shutdown(); | 296 arc_session_manager()->Shutdown(); |
| 297 } | 297 } |
| 298 | 298 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 323 } | 323 } |
| 324 | 324 |
| 325 TEST_F(ArcSessionManagerTest, CloseUIKeepsArcEnabled) { | 325 TEST_F(ArcSessionManagerTest, CloseUIKeepsArcEnabled) { |
| 326 // Starts ARC. | 326 // Starts ARC. |
| 327 SetArcPlayStoreEnabledForProfile(profile(), true); | 327 SetArcPlayStoreEnabledForProfile(profile(), true); |
| 328 arc_session_manager()->SetProfile(profile()); | 328 arc_session_manager()->SetProfile(profile()); |
| 329 arc_session_manager()->RequestEnable(); | 329 arc_session_manager()->RequestEnable(); |
| 330 base::RunLoop().RunUntilIdle(); | 330 base::RunLoop().RunUntilIdle(); |
| 331 ASSERT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, | 331 ASSERT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, |
| 332 arc_session_manager()->state()); | 332 arc_session_manager()->state()); |
| 333 arc_session_manager()->StartArc(); | 333 arc_session_manager()->StartArcForTesting(); |
| 334 ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 334 ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 335 | 335 |
| 336 // When ARC is properly started, closing UI should be no-op. | 336 // When ARC is properly started, closing UI should be no-op. |
| 337 arc_session_manager()->CancelAuthCode(); | 337 arc_session_manager()->CancelAuthCode(); |
| 338 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 338 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 339 EXPECT_TRUE(IsArcPlayStoreEnabledForProfile(profile())); | 339 EXPECT_TRUE(IsArcPlayStoreEnabledForProfile(profile())); |
| 340 | 340 |
| 341 // Correctly stop service. | 341 // Correctly stop service. |
| 342 arc_session_manager()->Shutdown(); | 342 arc_session_manager()->Shutdown(); |
| 343 } | 343 } |
| 344 | 344 |
| 345 TEST_F(ArcSessionManagerTest, Provisioning_Success) { | 345 TEST_F(ArcSessionManagerTest, Provisioning_Success) { |
| 346 PrefService* const prefs = profile()->GetPrefs(); | 346 PrefService* const prefs = profile()->GetPrefs(); |
| 347 | 347 |
| 348 EXPECT_TRUE(arc_session_manager()->sign_in_start_time().is_null()); | 348 EXPECT_TRUE(arc_session_manager()->sign_in_start_time().is_null()); |
| 349 EXPECT_TRUE(arc_session_manager()->arc_start_time().is_null()); | 349 EXPECT_TRUE(arc_session_manager()->arc_start_time().is_null()); |
| 350 EXPECT_FALSE(arc_session_manager()->IsPlaystoreLaunchRequestedForTesting()); | 350 EXPECT_FALSE(arc_session_manager()->IsPlaystoreLaunchRequestedForTesting()); |
| 351 | 351 |
| 352 ASSERT_FALSE(prefs->GetBoolean(prefs::kArcSignedIn)); | 352 ASSERT_FALSE(prefs->GetBoolean(prefs::kArcSignedIn)); |
| 353 | 353 |
| 354 arc_session_manager()->SetProfile(profile()); | 354 arc_session_manager()->SetProfile(profile()); |
| 355 arc_session_manager()->RequestEnable(); | 355 arc_session_manager()->RequestEnable(); |
| 356 ASSERT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, | 356 ASSERT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, |
| 357 arc_session_manager()->state()); | 357 arc_session_manager()->state()); |
| 358 | 358 |
| 359 // Emulate to accept the terms of service. | 359 // Emulate to accept the terms of service. |
| 360 prefs->SetBoolean(prefs::kArcTermsAccepted, true); | 360 prefs->SetBoolean(prefs::kArcTermsAccepted, true); |
| 361 arc_session_manager()->StartArc(); | 361 arc_session_manager()->StartArcForTesting(); |
| 362 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 362 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 363 EXPECT_TRUE(arc_session_manager()->IsSessionRunning()); | 363 EXPECT_TRUE(arc_session_manager()->IsSessionRunning()); |
| 364 | 364 |
| 365 // Here, provisining is not yet completed, so kArcSignedIn should be false. | 365 // Here, provisining is not yet completed, so kArcSignedIn should be false. |
| 366 EXPECT_FALSE(prefs->GetBoolean(prefs::kArcSignedIn)); | 366 EXPECT_FALSE(prefs->GetBoolean(prefs::kArcSignedIn)); |
| 367 EXPECT_FALSE(arc_session_manager()->arc_start_time().is_null()); | 367 EXPECT_FALSE(arc_session_manager()->arc_start_time().is_null()); |
| 368 EXPECT_FALSE(arc_session_manager()->IsPlaystoreLaunchRequestedForTesting()); | 368 EXPECT_FALSE(arc_session_manager()->IsPlaystoreLaunchRequestedForTesting()); |
| 369 | 369 |
| 370 // Emulate successful provisioning. | 370 // Emulate successful provisioning. |
| 371 arc_session_manager()->OnProvisioningFinished(ProvisioningResult::SUCCESS); | 371 arc_session_manager()->OnProvisioningFinished(ProvisioningResult::SUCCESS); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 EXPECT_TRUE( | 420 EXPECT_TRUE( |
| 421 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); | 421 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); |
| 422 EXPECT_EQ(ArcSessionManager::State::REMOVING_DATA_DIR, | 422 EXPECT_EQ(ArcSessionManager::State::REMOVING_DATA_DIR, |
| 423 arc_session_manager()->state()); | 423 arc_session_manager()->state()); |
| 424 // Wait until data is removed. | 424 // Wait until data is removed. |
| 425 base::RunLoop().RunUntilIdle(); | 425 base::RunLoop().RunUntilIdle(); |
| 426 EXPECT_FALSE( | 426 EXPECT_FALSE( |
| 427 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); | 427 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); |
| 428 EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, | 428 EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, |
| 429 arc_session_manager()->state()); | 429 arc_session_manager()->state()); |
| 430 arc_session_manager()->StartArc(); | 430 arc_session_manager()->StartArcForTesting(); |
| 431 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 431 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 432 | 432 |
| 433 // Request to remove data and stop session manager. | 433 // Request to remove data and stop session manager. |
| 434 arc_session_manager()->RemoveArcData(); | 434 arc_session_manager()->RemoveArcData(); |
| 435 ASSERT_TRUE( | 435 ASSERT_TRUE( |
| 436 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); | 436 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); |
| 437 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 437 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 438 arc_session_manager()->Shutdown(); | 438 arc_session_manager()->Shutdown(); |
| 439 base::RunLoop().RunUntilIdle(); | 439 base::RunLoop().RunUntilIdle(); |
| 440 // Request should persist. | 440 // Request should persist. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 467 // does automatically remove Android's data folder. | 467 // does automatically remove Android's data folder. |
| 468 arc_session_manager()->SetProfile(profile()); | 468 arc_session_manager()->SetProfile(profile()); |
| 469 arc_session_manager()->StartPreferenceHandler(); | 469 arc_session_manager()->StartPreferenceHandler(); |
| 470 EXPECT_TRUE( | 470 EXPECT_TRUE( |
| 471 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); | 471 profile()->GetPrefs()->GetBoolean(prefs::kArcDataRemoveRequested)); |
| 472 } | 472 } |
| 473 | 473 |
| 474 TEST_F(ArcSessionManagerTest, IgnoreSecondErrorReporting) { | 474 TEST_F(ArcSessionManagerTest, IgnoreSecondErrorReporting) { |
| 475 arc_session_manager()->SetProfile(profile()); | 475 arc_session_manager()->SetProfile(profile()); |
| 476 arc_session_manager()->RequestEnable(); | 476 arc_session_manager()->RequestEnable(); |
| 477 arc_session_manager()->StartArc(); | 477 arc_session_manager()->StartArcForTesting(); |
| 478 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 478 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 479 | 479 |
| 480 // Report some failure that does not stop the bridge. | 480 // Report some failure that does not stop the bridge. |
| 481 arc_session_manager()->OnProvisioningFinished( | 481 arc_session_manager()->OnProvisioningFinished( |
| 482 ProvisioningResult::GMS_SIGN_IN_FAILED); | 482 ProvisioningResult::GMS_SIGN_IN_FAILED); |
| 483 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 483 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 484 | 484 |
| 485 // Try to send another error that stops the bridge if sent first. It should | 485 // Try to send another error that stops the bridge if sent first. It should |
| 486 // be ignored. | 486 // be ignored. |
| 487 arc_session_manager()->OnProvisioningFinished( | 487 arc_session_manager()->OnProvisioningFinished( |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 // ArcLocationServiceEnabled are managed. | 534 // ArcLocationServiceEnabled are managed. |
| 535 const bool expected_terms_skipping = backup_restore_pref_value().is_bool() && | 535 const bool expected_terms_skipping = backup_restore_pref_value().is_bool() && |
| 536 location_service_pref_value().is_bool(); | 536 location_service_pref_value().is_bool(); |
| 537 EXPECT_EQ(expected_terms_skipping | 537 EXPECT_EQ(expected_terms_skipping |
| 538 ? ArcSessionManager::State::ACTIVE | 538 ? ArcSessionManager::State::ACTIVE |
| 539 : ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, | 539 : ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, |
| 540 arc_session_manager()->state()); | 540 arc_session_manager()->state()); |
| 541 | 541 |
| 542 // Complete provisioning if it's not done yet. | 542 // Complete provisioning if it's not done yet. |
| 543 if (!expected_terms_skipping) { | 543 if (!expected_terms_skipping) { |
| 544 arc_session_manager()->StartArc(); | 544 arc_session_manager()->StartArcForTesting(); |
| 545 arc_session_manager()->OnProvisioningFinished(ProvisioningResult::SUCCESS); | 545 arc_session_manager()->OnProvisioningFinished(ProvisioningResult::SUCCESS); |
| 546 } | 546 } |
| 547 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 547 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 548 | 548 |
| 549 // Play Store app is launched unless the Terms screen was suppressed by the | 549 // Play Store app is launched unless the Terms screen was suppressed by the |
| 550 // policy. | 550 // policy. |
| 551 EXPECT_NE(expected_terms_skipping, | 551 EXPECT_NE(expected_terms_skipping, |
| 552 arc_session_manager()->IsPlaystoreLaunchRequestedForTesting()); | 552 arc_session_manager()->IsPlaystoreLaunchRequestedForTesting()); |
| 553 | 553 |
| 554 // Managed values for the prefs are unset. | 554 // Managed values for the prefs are unset. |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 766 EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, | 766 EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, |
| 767 arc_session_manager()->state()); | 767 arc_session_manager()->state()); |
| 768 CloseLoginDisplayHost(); | 768 CloseLoginDisplayHost(); |
| 769 ReportViewDestroyed(); | 769 ReportViewDestroyed(); |
| 770 EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state()); | 770 EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state()); |
| 771 if (!IsManagedUser()) | 771 if (!IsManagedUser()) |
| 772 EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile())); | 772 EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile())); |
| 773 } | 773 } |
| 774 | 774 |
| 775 } // namespace arc | 775 } // namespace arc |
| OLD | NEW |