diff options
author | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 07:31:28 +0000 |
---|---|---|
committer | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 07:31:28 +0000 |
commit | 09464c756f61675a1369bdc750a614d6689c76c9 (patch) | |
tree | cecc3cca8a358a61f2262f1da58d6a140428694a /ash/test/ash_test_helper.h | |
parent | a4b5dd2d0eb8b1e7d4e09d8264fb535a82735c91 (diff) | |
download | chromium_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.h | 71 |
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_ |