1 // Copyright 2015 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_VIEWS_TEST_SCOPED_VIEWS_TEST_HELPER_H_
6 #define UI_VIEWS_TEST_SCOPED_VIEWS_TEST_HELPER_H_
8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "ui/gfx/native_widget_types.h"
14 class TestViewsDelegate
;
15 class ViewsTestHelper
;
17 // Creates a ViewsTestHelper that is destroyed automatically. Acts like
18 // ViewsTestBase but allows a test harness to use a different base class, or
19 // make use of a TestBrowserThreadBundle, rather than the MessageLoop provided
21 class ScopedViewsTestHelper
{
23 // Initialize with the default TestViewsDelegate, MessageLoopForUI::current()
24 // and the default test ContextFactory.
25 ScopedViewsTestHelper();
27 // Initialize with the given TestViewsDelegate instance, after setting the
29 explicit ScopedViewsTestHelper(scoped_ptr
<TestViewsDelegate
> views_delegate
);
31 ~ScopedViewsTestHelper();
33 // Returns the context for creating new windows. In Aura builds, this will be
34 // the RootWindow. Everywhere else, null.
35 gfx::NativeWindow
GetContext();
37 TestViewsDelegate
* views_delegate() { return views_delegate_
.get(); };
40 scoped_ptr
<TestViewsDelegate
> views_delegate_
;
41 scoped_ptr
<ViewsTestHelper
> test_helper_
;
43 DISALLOW_COPY_AND_ASSIGN(ScopedViewsTestHelper
);
48 #endif // UI_VIEWS_TEST_SCOPED_VIEWS_TEST_HELPER_H_