// Copyright (c) 2012 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_SHELL_TEST_API_H_ #define ASH_TEST_SHELL_TEST_API_H_ #include "base/basictypes.h" namespace ash { class AppListController; class AshNativeCursorManager; class DragDropController; class MaximizeModeWindowManager; class RootWindowLayoutManager; class SessionStateDelegate; class ScreenPositionController; class ShelfDelegate; class ShelfModel; class Shell; class SystemGestureEventFilter; class WorkspaceController; namespace test { // Accesses private data from a Shell for testing. class ShellTestApi { public: explicit ShellTestApi(Shell* shell); RootWindowLayoutManager* root_window_layout(); SystemGestureEventFilter* system_gesture_event_filter(); WorkspaceController* workspace_controller(); ScreenPositionController* screen_position_controller(); AshNativeCursorManager* ash_native_cursor_manager(); ShelfModel* shelf_model(); DragDropController* drag_drop_controller(); AppListController* app_list_controller(); MaximizeModeWindowManager* maximize_mode_window_manager(); void DisableDisplayConfiguratorAnimation(); // Set ShelfDelegate. void SetShelfDelegate(ShelfDelegate* delegate); // Set SessionStateDelegate. void SetSessionStateDelegate(SessionStateDelegate* session_state_delegate); private: Shell* shell_; // not owned DISALLOW_COPY_AND_ASSIGN(ShellTestApi); }; } // namespace test } // namespace ash #endif // ASH_TEST_SHELL_TEST_API_H_