| Index: chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
|
| diff --git a/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc b/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
|
| index efdfe629e5ffb024eff224ebad20fb3453129379..fae9ccc8b2b78e04def4d318673e6128bab12328 100644
|
| --- a/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
|
| +++ b/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
|
| @@ -35,6 +35,7 @@
|
| #include "chrome/browser/prefs/pref_service_syncable_util.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
|
| +#include "chrome/browser/ui/app_list/arc/arc_app_test.h"
|
| #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| @@ -434,6 +435,45 @@ TEST_F(ArcSessionManagerTest, IgnoreSecondErrorReporting) {
|
| arc_session_manager()->Shutdown();
|
| }
|
|
|
| +class ArcSessionManagerArcAlwaysStartTest : public ArcSessionManagerTest {
|
| + public:
|
| + ArcSessionManagerArcAlwaysStartTest() = default;
|
| +
|
| + void SetUp() override {
|
| + SetArcAlwaysStartForTesting();
|
| + ArcSessionManagerTest::SetUp();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ArcSessionManagerArcAlwaysStartTest);
|
| +};
|
| +
|
| +TEST_F(ArcSessionManagerArcAlwaysStartTest, BaseWorkflow) {
|
| + // TODO(victorhsieh): Consider also tracking sign-in activity, which is
|
| + // initiated from the Android side.
|
| + EXPECT_TRUE(arc_session_manager()->arc_start_time().is_null());
|
| +
|
| + arc_session_manager()->SetProfile(profile());
|
| +
|
| + // By default ARC is not enabled.
|
| + EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state());
|
| +
|
| + // When ARC is always started, ArcSessionManager should always be in ACTIVE
|
| + // state.
|
| + arc_session_manager()->RequestEnable();
|
| + base::RunLoop().RunUntilIdle();
|
| + ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state());
|
| +
|
| + arc_session_manager()->StartArcForTesting();
|
| +
|
| + EXPECT_FALSE(arc_session_manager()->arc_start_time().is_null());
|
| +
|
| + ASSERT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state());
|
| + ASSERT_TRUE(arc_session_manager()->IsSessionRunning());
|
| +
|
| + arc_session_manager()->Shutdown();
|
| +}
|
| +
|
| class ArcSessionManagerPolicyTest
|
| : public ArcSessionManagerTest,
|
| public testing::WithParamInterface<std::tuple<base::Value, base::Value>> {
|
|
|