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
10namespace wm {
11class InputMethodEventFilter;
12}  // namespace wm
13
14namespace ash {
15class AppListController;
16class AshNativeCursorManager;
17class DragDropController;
18class MaximizeModeWindowManager;
19class RootWindowLayoutManager;
20class ScreenPositionController;
21class ShelfDelegate;
22class ShelfModel;
23class Shell;
24class SystemGestureEventFilter;
25class WorkspaceController;
26
27namespace test {
28
29// Accesses private data from a Shell for testing.
30class ShellTestApi {
31public:
32  explicit ShellTestApi(Shell* shell);
33
34  RootWindowLayoutManager* root_window_layout();
35  ::wm::InputMethodEventFilter* input_method_event_filter();
36  SystemGestureEventFilter* system_gesture_event_filter();
37  WorkspaceController* workspace_controller();
38  ScreenPositionController* screen_position_controller();
39  AshNativeCursorManager* ash_native_cursor_manager();
40  ShelfModel* shelf_model();
41  DragDropController* drag_drop_controller();
42  AppListController* app_list_controller();
43  MaximizeModeWindowManager* maximize_mode_window_manager();
44  void DisableDisplayConfiguratorAnimation();
45
46  // Set ShelfDelegate.
47  void SetShelfDelegate(ShelfDelegate* delegate);
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_
59