forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathash_test_helper.h
146 lines (108 loc) · 4.19 KB
/
ash_test_helper.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_TEST_ASH_TEST_HELPER_H_
#define ASH_TEST_ASH_TEST_HELPER_H_
#include <stdint.h>
#include <memory>
#include <utility>
#include "ash/session/test_session_controller_client.h"
#include "base/macros.h"
#include "base/test/scoped_command_line.h"
class PrefService;
namespace aura {
class Window;
}
namespace chromeos {
namespace system {
class ScopedFakeStatisticsProvider;
} // namespace system
} // namespace chromeos
namespace display {
class Display;
}
namespace ui {
class ScopedAnimationDurationScaleMode;
class TestContextFactories;
}
namespace wm {
class WMState;
}
namespace ash {
class AppListTestHelper;
class AshTestViewsDelegate;
class TestKeyboardControllerObserver;
class TestNewWindowDelegate;
class TestPrefServiceProvider;
class TestShellDelegate;
class TestSystemTrayClient;
// A helper class that does common initialization required for Ash. Creates a
// root window and an ash::Shell instance with a test delegate.
class AshTestHelper {
public:
AshTestHelper();
~AshTestHelper();
// Creates the ash::Shell and performs associated initialization. Set
// |start_session| to true if the user should log in before the test is run.
// Set |provide_local_state| to true to inject local-state PrefService into
// the Shell before the test is run.
void SetUp(bool start_session, bool provide_local_state = true);
// Destroys the ash::Shell and performs associated cleanup.
void TearDown();
// Returns a root Window. Usually this is the active root Window, but that
// method can return NULL sometimes, and in those cases, we fall back on the
// primary root Window.
aura::Window* CurrentContext();
PrefService* GetLocalStatePrefService();
TestShellDelegate* test_shell_delegate() { return test_shell_delegate_; }
void set_test_shell_delegate(TestShellDelegate* test_shell_delegate) {
test_shell_delegate_ = test_shell_delegate;
}
AshTestViewsDelegate* test_views_delegate() {
return test_views_delegate_.get();
}
display::Display GetSecondaryDisplay();
TestSessionControllerClient* test_session_controller_client() {
return session_controller_client_.get();
}
void set_test_session_controller_client(
std::unique_ptr<TestSessionControllerClient> session_controller_client) {
session_controller_client_ = std::move(session_controller_client);
}
TestSystemTrayClient* system_tray_client() {
return system_tray_client_.get();
}
TestPrefServiceProvider* prefs_provider() { return prefs_provider_.get(); }
AppListTestHelper* app_list_test_helper() {
return app_list_test_helper_.get();
}
TestKeyboardControllerObserver* test_keyboard_controller_observer() {
return test_keyboard_controller_observer_.get();
}
void reset_commandline() { command_line_.reset(); }
private:
// Called when running in ash to create Shell.
void CreateShell(bool provide_local_state);
std::unique_ptr<chromeos::system::ScopedFakeStatisticsProvider>
statistics_provider_;
TestShellDelegate* test_shell_delegate_ = nullptr; // Owned by ash::Shell.
std::unique_ptr<ui::ScopedAnimationDurationScaleMode> zero_duration_mode_;
std::unique_ptr<::wm::WMState> wm_state_;
std::unique_ptr<AshTestViewsDelegate> test_views_delegate_;
// Flags for whether various services were initialized here.
bool bluez_dbus_manager_initialized_ = false;
bool power_policy_controller_initialized_ = false;
std::unique_ptr<TestSessionControllerClient> session_controller_client_;
std::unique_ptr<TestSystemTrayClient> system_tray_client_;
std::unique_ptr<TestPrefServiceProvider> prefs_provider_;
std::unique_ptr<ui::TestContextFactories> context_factories_;
std::unique_ptr<base::test::ScopedCommandLine> command_line_;
std::unique_ptr<AppListTestHelper> app_list_test_helper_;
std::unique_ptr<TestNewWindowDelegate> new_window_delegate_;
std::unique_ptr<TestKeyboardControllerObserver>
test_keyboard_controller_observer_;
std::unique_ptr<PrefService> local_state_;
DISALLOW_COPY_AND_ASSIGN(AshTestHelper);
};
} // namespace ash
#endif // ASH_TEST_ASH_TEST_HELPER_H_