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

Side by Side Diff: chrome/browser/chromeos/arc/arc_session_manager_unittest.cc

Issue 2722263002: Add function document, and small refactor around Start/StopArc(). (Closed)
Patch Set: Rebase Created 3 years, 9 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
« no previous file with comments | « chrome/browser/chromeos/arc/arc_session_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/arc/arc_session_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698