Home | History | Annotate | Download | only in test
      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 DragDropController;
     23 class RootWindowLayoutManager;
     24 class ScreenPositionController;
     25 class SystemGestureEventFilter;
     26 class WorkspaceController;
     27 }  // namespace internal
     28 
     29 namespace test {
     30 
     31 // Accesses private data from a Shell for testing.
     32 class ShellTestApi {
     33 public:
     34   explicit ShellTestApi(Shell* shell);
     35 
     36   internal::RootWindowLayoutManager* root_window_layout();
     37   views::corewm::InputMethodEventFilter* input_method_event_filter();
     38   internal::SystemGestureEventFilter* system_gesture_event_filter();
     39   internal::WorkspaceController* workspace_controller();
     40   internal::ScreenPositionController* screen_position_controller();
     41   AshNativeCursorManager* ash_native_cursor_manager();
     42   LauncherModel* launcher_model();
     43   internal::DragDropController* drag_drop_controller();
     44 
     45   void DisableOutputConfiguratorAnimation();
     46 
     47  private:
     48   Shell* shell_;  // not owned
     49 
     50   DISALLOW_COPY_AND_ASSIGN(ShellTestApi);
     51 };
     52 
     53 }  // namespace test
     54 }  // namespace ash
     55 
     56 #endif  // ASH_TEST_SHELL_TEST_API_H_
     57