Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / ui / aura / test / aura_test_helper.h
blob0cdaf3e7b4a657bb7685f79b63ccf782a4fed4c4
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.
5 #ifndef UI_AURA_TEST_AURA_TEST_HELPER_H_
6 #define UI_AURA_TEST_AURA_TEST_HELPER_H_
8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "ui/aura/window_event_dispatcher.h"
11 #include "ui/aura/window_tree_host.h"
13 namespace base {
14 class MessageLoopForUI;
17 namespace ui {
18 class ContextFactory;
19 class InputMethod;
20 class ScopedAnimationDurationScaleMode;
23 namespace aura {
24 class TestScreen;
25 namespace client {
26 class DefaultCaptureClient;
27 class FocusClient;
29 namespace test {
30 class TestWindowTreeClient;
32 // A helper class owned by tests that does common initialization required for
33 // Aura use. This class creates a root window with clients and other objects
34 // that are necessary to run test on Aura.
35 class AuraTestHelper {
36 public:
37 explicit AuraTestHelper(base::MessageLoopForUI* message_loop);
38 ~AuraTestHelper();
40 // Creates and initializes (shows and sizes) the RootWindow for use in tests.
41 void SetUp(ui::ContextFactory* context_factory);
43 // Clean up objects that are created for tests. This also deletes the Env
44 // object.
45 void TearDown();
47 // Flushes message loop.
48 void RunAllPendingInMessageLoop();
50 Window* root_window() { return host_->window(); }
51 ui::EventProcessor* event_processor() { return host_->event_processor(); }
52 WindowTreeHost* host() { return host_.get(); }
54 TestScreen* test_screen() { return test_screen_.get(); }
56 private:
57 base::MessageLoopForUI* message_loop_;
58 bool setup_called_;
59 bool teardown_called_;
60 bool env_created_;
61 scoped_ptr<WindowTreeHost> host_;
62 scoped_ptr<TestWindowTreeClient> stacking_client_;
63 scoped_ptr<client::DefaultCaptureClient> capture_client_;
64 scoped_ptr<client::FocusClient> focus_client_;
65 scoped_ptr<TestScreen> test_screen_;
66 scoped_ptr<ui::ScopedAnimationDurationScaleMode> zero_duration_mode_;
68 DISALLOW_COPY_AND_ASSIGN(AuraTestHelper);
71 } // namespace test
72 } // namespace aura
74 #endif // UI_AURA_TEST_AURA_TEST_HELPER_H_