1 // Copyright 2013 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 UI_WM_TEST_WM_TEST_HELPER_H_ 6 #define UI_WM_TEST_WM_TEST_HELPER_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "ui/aura/client/window_tree_client.h" 11 12 namespace aura { 13 class RootWindow; 14 class Window; 15 namespace client { 16 class DefaultActivationClient; 17 class DefaultCaptureClient; 18 class FocusClient; 19 } 20 } 21 22 namespace gfx { 23 class Rect; 24 class Size; 25 } 26 27 namespace views { 28 namespace corewm { 29 class CompoundEventFilter; 30 class InputMethodEventFilter; 31 } 32 } 33 34 namespace wm { 35 36 // Creates a minimal environment for running the shell. We can't pull in all of 37 // ash here, but we can create attach several of the same things we'd find in 38 // the ash parts of the code. 39 class WMTestHelper : public aura::client::WindowTreeClient { 40 public: 41 explicit WMTestHelper(const gfx::Size& default_window_size); 42 virtual ~WMTestHelper(); 43 root_window()44 aura::RootWindow* root_window() { return root_window_.get(); } 45 46 // Overridden from client::WindowTreeClient: 47 virtual aura::Window* GetDefaultParent(aura::Window* context, 48 aura::Window* window, 49 const gfx::Rect& bounds) OVERRIDE; 50 51 private: 52 scoped_ptr<aura::RootWindow> root_window_; 53 54 // Owned by RootWindow 55 views::corewm::CompoundEventFilter* root_window_event_filter_; 56 57 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; 58 scoped_ptr<views::corewm::InputMethodEventFilter> input_method_filter_; 59 scoped_ptr<aura::client::DefaultActivationClient> activation_client_; 60 scoped_ptr<aura::client::FocusClient> focus_client_; 61 62 DISALLOW_COPY_AND_ASSIGN(WMTestHelper); 63 }; 64 65 } // namespace wm 66 67 #endif // UI_WM_TEST_WM_TEST_HELPER_H_ 68