// Copyright 2013 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 UI_WM_TEST_WM_TEST_HELPER_H_ #define UI_WM_TEST_WM_TEST_HELPER_H_ #include "base/compiler_specific.h" #include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "ui/aura/client/window_tree_client.h" #include "ui/aura/window_tree_host.h" namespace aura { class Window; class WindowTreeHost; namespace client { class DefaultCaptureClient; class FocusClient; } } namespace gfx { class Rect; class Size; } namespace ui { class ContextFactory; } namespace wm { class CompoundEventFilter; // Creates a minimal environment for running the shell. We can't pull in all of // ash here, but we can create attach several of the same things we'd find in // the ash parts of the code. class WMTestHelper : public aura::client::WindowTreeClient { public: WMTestHelper(const gfx::Size& default_window_size, ui::ContextFactory* context_factory); ~WMTestHelper() override; aura::WindowTreeHost* host() { return host_.get(); } // Overridden from client::WindowTreeClient: aura::Window* GetDefaultParent(aura::Window* context, aura::Window* window, const gfx::Rect& bounds) override; private: scoped_ptr host_; scoped_ptr root_window_event_filter_; scoped_ptr capture_client_; scoped_ptr focus_client_; DISALLOW_COPY_AND_ASSIGN(WMTestHelper); }; } // namespace wm #endif // UI_WM_TEST_WM_TEST_HELPER_H_