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"
14 class MessageLoopForUI
;
20 class ScopedAnimationDurationScaleMode
;
26 class DefaultCaptureClient
;
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
{
37 explicit AuraTestHelper(base::MessageLoopForUI
* message_loop
);
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
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(); }
57 base::MessageLoopForUI
* message_loop_
;
59 bool teardown_called_
;
60 scoped_ptr
<WindowTreeHost
> host_
;
61 scoped_ptr
<TestWindowTreeClient
> stacking_client_
;
62 scoped_ptr
<client::DefaultCaptureClient
> capture_client_
;
63 scoped_ptr
<ui::InputMethod
> test_input_method_
;
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
);
74 #endif // UI_AURA_TEST_AURA_TEST_HELPER_H_