summaryrefslogtreecommitdiffstats
path: root/ash/test/ash_test_helper.h
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 07:31:28 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 07:31:28 +0000
commit09464c756f61675a1369bdc750a614d6689c76c9 (patch)
treececc3cca8a358a61f2262f1da58d6a140428694a /ash/test/ash_test_helper.h
parenta4b5dd2d0eb8b1e7d4e09d8264fb535a82735c91 (diff)
downloadchromium_src-09464c756f61675a1369bdc750a614d6689c76c9.zip
chromium_src-09464c756f61675a1369bdc750a614d6689c76c9.tar.gz
chromium_src-09464c756f61675a1369bdc750a614d6689c76c9.tar.bz2
Add AshTestHelper to let unit tests create windows on Ash
BUG=235474,233374 TEST=ash_unittests, unit_tests Review URL: https://chromiumcodereview.appspot.com/14284017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196652 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/test/ash_test_helper.h')
-rw-r--r--ash/test/ash_test_helper.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/ash/test/ash_test_helper.h b/ash/test/ash_test_helper.h
new file mode 100644
index 0000000..9d3b25a
--- /dev/null
+++ b/ash/test/ash_test_helper.h
@@ -0,0 +1,71 @@
+// 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 ASH_TEST_ASH_TEST_HELPER_H_
+#define ASH_TEST_ASH_TEST_HELPER_H_
+
+#include "base/compiler_specific.h"
+#include "base/memory/scoped_ptr.h"
+
+#if defined(OS_WIN)
+#include "ui/base/win/scoped_ole_initializer.h"
+#endif
+
+namespace aura {
+class RootWindow;
+} // namespace aura
+
+namespace base {
+class MessageLoopForUI;
+} // namespace base
+
+namespace ui {
+class ScopedAnimationDurationScaleMode;
+} // namespace ui
+
+namespace ash {
+namespace test {
+
+class TestMetroViewerProcessHost;
+class TestShellDelegate;
+
+// A helper class that does common initialization required for Ash. Creates a
+// root window and an ash::Shell instance with a test delegate.
+class AshTestHelper {
+ public:
+ explicit AshTestHelper(base::MessageLoopForUI* message_loop);
+ ~AshTestHelper();
+
+ // Creates the ash::Shell and performs associated initialization.
+ void SetUp();
+
+ // Destroys the ash::Shell and performs associated cleanup.
+ void TearDown();
+
+ // Returns a RootWindow. Usually this is the active RootWindow, but that
+ // method can return NULL sometimes, and in those cases, we fall back on the
+ // primary RootWindow.
+ aura::RootWindow* CurrentContext();
+
+ void RunAllPendingInMessageLoop();
+
+ base::MessageLoopForUI* message_loop() { return message_loop_; }
+ TestShellDelegate* test_shell_delegate() { return test_shell_delegate_; }
+
+ private:
+ base::MessageLoopForUI* message_loop_; // Not owned.
+ TestShellDelegate* test_shell_delegate_; // Owned by ash::Shell.
+ scoped_ptr<ui::ScopedAnimationDurationScaleMode> zero_duration_mode_;
+#if defined(OS_WIN)
+ scoped_ptr<TestMetroViewerProcessHost> metro_viewer_host_;
+ ui::ScopedOleInitializer ole_initializer_;
+#endif
+
+ DISALLOW_COPY_AND_ASSIGN(AshTestHelper);
+};
+
+} // namespace test
+} // namespace ash
+
+#endif // ASH_TEST_ASH_TEST_HELPER_H_