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 17 matching lines...) Expand all Loading... |
28 #include "chrome/browser/chromeos/login/ui/login_display_host.h" | 28 #include "chrome/browser/chromeos/login/ui/login_display_host.h" |
29 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" | 29 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" |
30 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 30 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
31 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" | 31 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" |
32 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 32 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
33 #include "chrome/browser/policy/profile_policy_connector.h" | 33 #include "chrome/browser/policy/profile_policy_connector.h" |
34 #include "chrome/browser/policy/profile_policy_connector_factory.h" | 34 #include "chrome/browser/policy/profile_policy_connector_factory.h" |
35 #include "chrome/browser/prefs/pref_service_syncable_util.h" | 35 #include "chrome/browser/prefs/pref_service_syncable_util.h" |
36 #include "chrome/browser/profiles/profile.h" | 36 #include "chrome/browser/profiles/profile.h" |
37 #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" | 37 #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" |
| 38 #include "chrome/browser/ui/app_list/arc/arc_app_test.h" |
38 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" | 39 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" |
39 #include "chrome/common/pref_names.h" | 40 #include "chrome/common/pref_names.h" |
40 #include "chrome/test/base/testing_profile.h" | 41 #include "chrome/test/base/testing_profile.h" |
41 #include "chromeos/chromeos_switches.h" | 42 #include "chromeos/chromeos_switches.h" |
42 #include "chromeos/dbus/dbus_thread_manager.h" | 43 #include "chromeos/dbus/dbus_thread_manager.h" |
43 #include "chromeos/dbus/fake_session_manager_client.h" | 44 #include "chromeos/dbus/fake_session_manager_client.h" |
44 #include "components/arc/arc_service_manager.h" | 45 #include "components/arc/arc_service_manager.h" |
45 #include "components/arc/arc_session_runner.h" | 46 #include "components/arc/arc_session_runner.h" |
46 #include "components/arc/arc_util.h" | 47 #include "components/arc/arc_util.h" |
47 #include "components/arc/test/fake_arc_session.h" | 48 #include "components/arc/test/fake_arc_session.h" |
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 | 428 |
428 // Try to send another error that stops the bridge if sent first. It should | 429 // Try to send another error that stops the bridge if sent first. It should |
429 // be ignored. | 430 // be ignored. |
430 arc_session_manager()->OnProvisioningFinished( | 431 arc_session_manager()->OnProvisioningFinished( |
431 ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR); | 432 ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR); |
432 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); | 433 EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
433 | 434 |
434 arc_session_manager()->Shutdown(); | 435 arc_session_manager()->Shutdown(); |
435 } | 436 } |
436 | 437 |
| 438 class ArcSessionManagerArcAlwaysStartTest : public ArcSessionManagerTest { |
| 439 public: |
| 440 ArcSessionManagerArcAlwaysStartTest() = default; |
| 441 |
| 442 void SetUp() override { |
| 443 SetArcAlwaysStartForTesting(); |
| 444 ArcSessionManagerTest::SetUp(); |
| 445 } |
| 446 |
| 447 private: |
| 448 DISALLOW_COPY_AND_ASSIGN(ArcSessionManagerArcAlwaysStartTest); |
| 449 }; |
| 450 |
| 451 TEST_F(ArcSessionManagerArcAlwaysStartTest, BaseWorkflow) { |
| 452 // TODO(victorhsieh): Consider also tracking sign-in activity, which is |
| 453 // initiated from the Android side. |
| 454 EXPECT_TRUE(arc_session_manager()->arc_start_time().is_null()); |
| 455 |
| 456 arc_session_manager()->SetProfile(profile()); |
| 457 |
| 458 // By default ARC is not enabled. |
| 459 EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state()); |
| 460 |
| 461 // When ARC is always started, ArcSessionManager should always be in ACTIVE |
| 462 // state. |
| 463 arc_session_manager()->RequestEnable(); |
| 464 base::RunLoop().RunUntilIdle(); |
| 465 ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 466 |
| 467 arc_session_manager()->StartArcForTesting(); |
| 468 |
| 469 EXPECT_FALSE(arc_session_manager()->arc_start_time().is_null()); |
| 470 |
| 471 ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state()); |
| 472 ASSERT_TRUE(arc_session_manager()->IsSessionRunning()); |
| 473 |
| 474 arc_session_manager()->Shutdown(); |
| 475 } |
| 476 |
437 class ArcSessionManagerPolicyTest | 477 class ArcSessionManagerPolicyTest |
438 : public ArcSessionManagerTest, | 478 : public ArcSessionManagerTest, |
439 public testing::WithParamInterface<std::tuple<base::Value, base::Value>> { | 479 public testing::WithParamInterface<std::tuple<base::Value, base::Value>> { |
440 public: | 480 public: |
441 const base::Value& backup_restore_pref_value() const { | 481 const base::Value& backup_restore_pref_value() const { |
442 return std::get<0>(GetParam()); | 482 return std::get<0>(GetParam()); |
443 } | 483 } |
444 | 484 |
445 const base::Value& location_service_pref_value() const { | 485 const base::Value& location_service_pref_value() const { |
446 return std::get<1>(GetParam()); | 486 return std::get<1>(GetParam()); |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 TEST_P(ArcSessionOobeOptInNegotiatorTest, OobeTermsViewDestroyed) { | 746 TEST_P(ArcSessionOobeOptInNegotiatorTest, OobeTermsViewDestroyed) { |
707 view()->Show(); | 747 view()->Show(); |
708 EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, | 748 EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE, |
709 arc_session_manager()->state()); | 749 arc_session_manager()->state()); |
710 CloseLoginDisplayHost(); | 750 CloseLoginDisplayHost(); |
711 ReportViewDestroyed(); | 751 ReportViewDestroyed(); |
712 EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state()); | 752 EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state()); |
713 } | 753 } |
714 | 754 |
715 } // namespace arc | 755 } // namespace arc |
OLD | NEW |