- add sources.
[platform/framework/web/crosswalk.git] / src / ash / test / shell_test_api.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef ASH_TEST_SHELL_TEST_API_H_
6 #define ASH_TEST_SHELL_TEST_API_H_
7
8 #include "base/basictypes.h"
9
10 namespace views {
11 namespace corewm {
12 class InputMethodEventFilter;
13 }  // namespace corewm
14 }  // namespace views
15
16 namespace ash {
17 class AshNativeCursorManager;
18 class Shell;
19 class LauncherModel;
20
21 namespace internal {
22 class AppListController;
23 class DragDropController;
24 class RootWindowLayoutManager;
25 class ScreenPositionController;
26 class SystemGestureEventFilter;
27 class WorkspaceController;
28 }  // namespace internal
29
30 namespace test {
31
32 // Accesses private data from a Shell for testing.
33 class ShellTestApi {
34 public:
35   explicit ShellTestApi(Shell* shell);
36
37   internal::RootWindowLayoutManager* root_window_layout();
38   views::corewm::InputMethodEventFilter* input_method_event_filter();
39   internal::SystemGestureEventFilter* system_gesture_event_filter();
40   internal::WorkspaceController* workspace_controller();
41   internal::ScreenPositionController* screen_position_controller();
42   AshNativeCursorManager* ash_native_cursor_manager();
43   LauncherModel* launcher_model();
44   internal::DragDropController* drag_drop_controller();
45   internal::AppListController* app_list_controller();
46
47   void DisableOutputConfiguratorAnimation();
48
49  private:
50   Shell* shell_;  // not owned
51
52   DISALLOW_COPY_AND_ASSIGN(ShellTestApi);
53 };
54
55 }  // namespace test
56 }  // namespace ash
57
58 #endif  // ASH_TEST_SHELL_TEST_API_H_