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 #include <memory> | 5 #include <memory> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
12 #include "base/memory/ptr_util.h" | 12 #include "base/memory/ptr_util.h" |
13 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
14 #include "base/single_thread_task_runner.h" | 14 #include "base/single_thread_task_runner.h" |
| 15 #include "base/test/scoped_task_environment.h" |
15 #include "chromeos/dbus/dbus_thread_manager.h" | 16 #include "chromeos/dbus/dbus_thread_manager.h" |
16 #include "components/arc/arc_session_runner.h" | 17 #include "components/arc/arc_session_runner.h" |
17 #include "components/arc/test/fake_arc_session.h" | 18 #include "components/arc/test/fake_arc_session.h" |
18 #include "mojo/public/cpp/system/message_pipe.h" | 19 #include "mojo/public/cpp/system/message_pipe.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
20 | 21 |
21 namespace arc { | 22 namespace arc { |
22 | 23 |
23 namespace { | 24 namespace { |
24 | 25 |
25 class DoNothingObserver : public ArcSessionRunner::Observer { | 26 class DoNothingObserver : public ArcSessionRunner::Observer { |
26 public: | 27 public: |
27 void OnSessionStopped(ArcStopReason reason, bool restarting) override { | 28 void OnSessionStopped(ArcStopReason reason, bool restarting) override { |
28 // Do nothing. | 29 // Do nothing. |
29 } | 30 } |
30 }; | 31 }; |
31 | 32 |
32 } // namespace | 33 } // namespace |
33 | 34 |
34 class ArcSessionRunnerTest : public testing::Test, | 35 class ArcSessionRunnerTest : public testing::Test, |
35 public ArcSessionRunner::Observer { | 36 public ArcSessionRunner::Observer { |
36 public: | 37 public: |
37 ArcSessionRunnerTest() = default; | 38 ArcSessionRunnerTest() |
| 39 : scoped_task_environment_( |
| 40 base::test::ScopedTaskEnvironment::MainThreadType::UI) {} |
38 | 41 |
39 void SetUp() override { | 42 void SetUp() override { |
40 chromeos::DBusThreadManager::Initialize(); | 43 chromeos::DBusThreadManager::Initialize(); |
41 | 44 |
42 stop_reason_ = ArcStopReason::SHUTDOWN; | 45 stop_reason_ = ArcStopReason::SHUTDOWN; |
43 restarting_ = false; | 46 restarting_ = false; |
44 | 47 |
45 // We inject FakeArcSession here so we do not need task_runner. | 48 // We inject FakeArcSession here so we do not need task_runner. |
46 arc_session_runner_ = | 49 arc_session_runner_ = |
47 base::MakeUnique<ArcSessionRunner>(base::Bind(FakeArcSession::Create)); | 50 base::MakeUnique<ArcSessionRunner>(base::Bind(FakeArcSession::Create)); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 void OnSessionStopped(ArcStopReason stop_reason, bool restarting) override { | 93 void OnSessionStopped(ArcStopReason stop_reason, bool restarting) override { |
91 // The instance is already destructed in | 94 // The instance is already destructed in |
92 // ArcSessionRunner::OnSessionStopped(). | 95 // ArcSessionRunner::OnSessionStopped(). |
93 stop_reason_ = stop_reason; | 96 stop_reason_ = stop_reason; |
94 restarting_ = restarting; | 97 restarting_ = restarting; |
95 } | 98 } |
96 | 99 |
97 ArcStopReason stop_reason_; | 100 ArcStopReason stop_reason_; |
98 bool restarting_; | 101 bool restarting_; |
99 std::unique_ptr<ArcSessionRunner> arc_session_runner_; | 102 std::unique_ptr<ArcSessionRunner> arc_session_runner_; |
100 base::MessageLoopForUI message_loop_; | 103 base::test::ScopedTaskEnvironment scoped_task_environment_; |
101 | 104 |
102 DISALLOW_COPY_AND_ASSIGN(ArcSessionRunnerTest); | 105 DISALLOW_COPY_AND_ASSIGN(ArcSessionRunnerTest); |
103 }; | 106 }; |
104 | 107 |
105 // Exercises the basic functionality of the ArcSessionRunner. Observer should | 108 // Exercises the basic functionality of the ArcSessionRunner. Observer should |
106 // be notified. | 109 // be notified. |
107 TEST_F(ArcSessionRunnerTest, Basic) { | 110 TEST_F(ArcSessionRunnerTest, Basic) { |
108 class Observer : public ArcSessionRunner::Observer { | 111 class Observer : public ArcSessionRunner::Observer { |
109 public: | 112 public: |
110 Observer() = default; | 113 Observer() = default; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 | 249 |
247 // Removing an unknown observer should be allowed. | 250 // Removing an unknown observer should be allowed. |
248 TEST_F(ArcSessionRunnerTest, RemoveUnknownObserver) { | 251 TEST_F(ArcSessionRunnerTest, RemoveUnknownObserver) { |
249 EXPECT_TRUE(arc_session_runner()->IsStopped()); | 252 EXPECT_TRUE(arc_session_runner()->IsStopped()); |
250 | 253 |
251 DoNothingObserver do_nothing_observer; | 254 DoNothingObserver do_nothing_observer; |
252 arc_session_runner()->RemoveObserver(&do_nothing_observer); | 255 arc_session_runner()->RemoveObserver(&do_nothing_observer); |
253 } | 256 } |
254 | 257 |
255 } // namespace arc | 258 } // namespace arc |
OLD | NEW |