diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-01 03:11:29 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-01 03:11:29 +0000 |
commit | c7283444a26c8f23dca69fb0d511b6309e7c91bb (patch) | |
tree | d6847eae6765c03b9b955e0809ab63626ed2f3db | |
parent | f37ff7167ee2ac92e6643a7587af74b880c86b89 (diff) | |
download | chromium_src-c7283444a26c8f23dca69fb0d511b6309e7c91bb.zip chromium_src-c7283444a26c8f23dca69fb0d511b6309e7c91bb.tar.gz chromium_src-c7283444a26c8f23dca69fb0d511b6309e7c91bb.tar.bz2 |
Cleanup: merge separate implementaions of ScreenshotDelegate for tests.
BUG=None
R=oshima@chromium.org
TEST=ash_unittests
Review URL: https://codereview.chromium.org/24257015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226118 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ash/accelerators/accelerator_controller_unittest.cc | 45 | ||||
-rw-r--r-- | ash/accelerators/accelerator_filter_unittest.cc | 44 | ||||
-rw-r--r-- | ash/ash.gyp | 2 | ||||
-rw-r--r-- | ash/test/ash_test_base.cc | 4 | ||||
-rw-r--r-- | ash/test/ash_test_base.h | 3 | ||||
-rw-r--r-- | ash/test/ash_test_helper.cc | 8 | ||||
-rw-r--r-- | ash/test/ash_test_helper.h | 7 | ||||
-rw-r--r-- | ash/test/test_screenshot_delegate.cc | 34 | ||||
-rw-r--r-- | ash/test/test_screenshot_delegate.h | 53 | ||||
-rw-r--r-- | ash/wm/partial_screenshot_view_unittest.cc | 40 |
10 files changed, 130 insertions, 110 deletions
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index c26e610..957b765 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc @@ -7,7 +7,6 @@ #include "ash/caps_lock_delegate.h" #include "ash/display/display_manager.h" #include "ash/ime_control_delegate.h" -#include "ash/screenshot_delegate.h" #include "ash/shell.h" #include "ash/shell_window_ids.h" #include "ash/system/brightness_control_delegate.h" @@ -15,6 +14,7 @@ #include "ash/system/tray/system_tray_delegate.h" #include "ash/test/ash_test_base.h" #include "ash/test/display_manager_test_api.h" +#include "ash/test/test_screenshot_delegate.h" #include "ash/test/test_shell_delegate.h" #include "ash/volume_control_delegate.h" #include "ash/wm/window_state.h" @@ -65,36 +65,6 @@ class ReleaseAccelerator : public ui::Accelerator { } }; -class DummyScreenshotDelegate : public ScreenshotDelegate { - public: - DummyScreenshotDelegate() - : handle_take_screenshot_count_(0) { - } - virtual ~DummyScreenshotDelegate() {} - - // Overridden from ScreenshotDelegate: - virtual void HandleTakeScreenshotForAllRootWindows() OVERRIDE { - ++handle_take_screenshot_count_; - } - - virtual void HandleTakePartialScreenshot( - aura::Window* window, const gfx::Rect& rect) OVERRIDE { - } - - virtual bool CanTakeScreenshot() OVERRIDE { - return true; - } - - int handle_take_screenshot_count() const { - return handle_take_screenshot_count_; - } - - private: - int handle_take_screenshot_count_; - - DISALLOW_COPY_AND_ASSIGN(DummyScreenshotDelegate); -}; - class DummyVolumeControlDelegate : public VolumeControlDelegate { public: explicit DummyVolumeControlDelegate(bool consume) @@ -681,6 +651,8 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { // Take screenshot / partial screenshot // True should always be returned regardless of the existence of the delegate. { + test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); + delegate->set_can_take_screenshot(false); EXPECT_TRUE(ProcessWithContext( ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); EXPECT_TRUE(ProcessWithContext( @@ -688,9 +660,8 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { EXPECT_TRUE(ProcessWithContext( ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); - DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; - GetController()->SetScreenshotDelegate( - scoped_ptr<ScreenshotDelegate>(delegate).Pass()); + + delegate->set_can_take_screenshot(true); EXPECT_EQ(0, delegate->handle_take_screenshot_count()); EXPECT_TRUE(ProcessWithContext( ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); @@ -1227,6 +1198,8 @@ TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) { // // Screenshot { + test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); + delegate->set_can_take_screenshot(false); EXPECT_TRUE(ProcessWithContext( ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); EXPECT_TRUE(ProcessWithContext( @@ -1234,9 +1207,7 @@ TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) { EXPECT_TRUE(ProcessWithContext( ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); - DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; - GetController()->SetScreenshotDelegate( - scoped_ptr<ScreenshotDelegate>(delegate).Pass()); + delegate->set_can_take_screenshot(true); EXPECT_EQ(0, delegate->handle_take_screenshot_count()); EXPECT_TRUE(ProcessWithContext( ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); diff --git a/ash/accelerators/accelerator_filter_unittest.cc b/ash/accelerators/accelerator_filter_unittest.cc index efeb90b..2c03486 100644 --- a/ash/accelerators/accelerator_filter_unittest.cc +++ b/ash/accelerators/accelerator_filter_unittest.cc @@ -5,10 +5,10 @@ #include "ash/accelerators/accelerator_filter.h" #include "ash/accelerators/accelerator_controller.h" -#include "ash/screenshot_delegate.h" #include "ash/shell.h" #include "ash/shell_window_ids.h" #include "ash/test/ash_test_base.h" +#include "ash/test/test_screenshot_delegate.h" #include "ash/wm/window_util.h" #include "base/memory/scoped_ptr.h" #include "testing/gtest/include/gtest/gtest.h" @@ -23,36 +23,6 @@ namespace test { namespace { -class DummyScreenshotDelegate : public ScreenshotDelegate { - public: - DummyScreenshotDelegate() : handle_take_screenshot_count_(0) { - } - virtual ~DummyScreenshotDelegate() {} - - // Overridden from ScreenshotDelegate: - virtual void HandleTakeScreenshotForAllRootWindows() OVERRIDE { - ++handle_take_screenshot_count_; - } - - virtual void HandleTakePartialScreenshot( - aura::Window* window, const gfx::Rect& rect) OVERRIDE { - // Do nothing because it's not tested yet. - } - - virtual bool CanTakeScreenshot() OVERRIDE { - return true; - } - - int handle_take_screenshot_count() const { - return handle_take_screenshot_count_; - } - - private: - int handle_take_screenshot_count_; - - DISALLOW_COPY_AND_ASSIGN(DummyScreenshotDelegate); -}; - AcceleratorController* GetController() { return Shell::GetInstance()->accelerator_controller(); } @@ -63,9 +33,7 @@ typedef AshTestBase AcceleratorFilterTest; // Tests if AcceleratorFilter works without a focused window. TEST_F(AcceleratorFilterTest, TestFilterWithoutFocus) { - DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; - GetController()->SetScreenshotDelegate( - scoped_ptr<ScreenshotDelegate>(delegate).Pass()); + const TestScreenshotDelegate* delegate = GetScreenshotDelegate(); EXPECT_EQ(0, delegate->handle_take_screenshot_count()); aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); @@ -86,9 +54,7 @@ TEST_F(AcceleratorFilterTest, TestFilterWithFocus) { gfx::Rect())); wm::ActivateWindow(window.get()); - DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; - GetController()->SetScreenshotDelegate( - scoped_ptr<ScreenshotDelegate>(delegate).Pass()); + const TestScreenshotDelegate* delegate = GetScreenshotDelegate(); EXPECT_EQ(0, delegate->handle_take_screenshot_count()); // AcceleratorFilter should ignore the key events since the root window is @@ -105,9 +71,7 @@ TEST_F(AcceleratorFilterTest, TestFilterWithFocus) { // Tests if AcceleratorFilter ignores the flag for Caps Lock. TEST_F(AcceleratorFilterTest, TestCapsLockMask) { - DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; - GetController()->SetScreenshotDelegate( - scoped_ptr<ScreenshotDelegate>(delegate).Pass()); + const TestScreenshotDelegate* delegate = GetScreenshotDelegate(); EXPECT_EQ(0, delegate->handle_take_screenshot_count()); aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); diff --git a/ash/ash.gyp b/ash/ash.gyp index 62d2c76..6b1c93d 100644 --- a/ash/ash.gyp +++ b/ash/ash.gyp @@ -624,6 +624,8 @@ 'test/test_user_wallpaper_delegate.h', 'test/test_launcher_delegate.cc', 'test/test_launcher_delegate.h', + 'test/test_screenshot_delegate.cc', + 'test/test_screenshot_delegate.cc', 'test/test_session_state_delegate.cc', 'test/test_session_state_delegate.cc', 'test/test_shell_delegate.cc', diff --git a/ash/test/ash_test_base.cc b/ash/test/ash_test_base.cc index f83c41e..dcbc747 100644 --- a/ash/test/ash_test_base.cc +++ b/ash/test/ash_test_base.cc @@ -273,6 +273,10 @@ void AshTestBase::RunAllPendingInMessageLoop() { ash_test_helper_->RunAllPendingInMessageLoop(); } +TestScreenshotDelegate* AshTestBase::GetScreenshotDelegate() { + return ash_test_helper_->test_screenshot_delegate(); +} + void AshTestBase::SetSessionStarted(bool session_started) { ash_test_helper_->test_shell_delegate()->test_session_state_delegate()-> SetActiveUserSessionStarted(session_started); diff --git a/ash/test/ash_test_base.h b/ash/test/ash_test_base.h index 5e8fdd2..281073e 100644 --- a/ash/test/ash_test_base.h +++ b/ash/test/ash_test_base.h @@ -38,6 +38,7 @@ class DisplayManager; namespace test { class AshTestHelper; +class TestScreenshotDelegate; #if defined(OS_WIN) class TestMetroViewerProcessHost; #endif @@ -114,6 +115,8 @@ class AshTestBase : public testing::Test { void RunAllPendingInMessageLoop(); + TestScreenshotDelegate* GetScreenshotDelegate(); + // Utility methods to emulate user logged in or not, session started or not // and user able to lock screen or not cases. void SetSessionStarted(bool session_started); diff --git a/ash/test/ash_test_helper.cc b/ash/test/ash_test_helper.cc index 28c652f..469504b 100644 --- a/ash/test/ash_test_helper.cc +++ b/ash/test/ash_test_helper.cc @@ -4,10 +4,12 @@ #include "ash/test/ash_test_helper.h" +#include "ash/accelerators/accelerator_controller.h" #include "ash/ash_switches.h" #include "ash/shell.h" #include "ash/test/display_manager_test_api.h" #include "ash/test/shell_test_api.h" +#include "ash/test/test_screenshot_delegate.h" #include "ash/test/test_session_state_delegate.h" #include "ash/test/test_shell_delegate.h" #include "ash/test/test_system_tray_delegate.h" @@ -33,6 +35,7 @@ namespace test { AshTestHelper::AshTestHelper(base::MessageLoopForUI* message_loop) : message_loop_(message_loop), test_shell_delegate_(NULL), + test_screenshot_delegate_(NULL), tear_down_network_handler_(false) { CHECK(message_loop_); #if defined(USE_X11) @@ -82,11 +85,16 @@ void AshTestHelper::SetUp(bool start_session) { test::DisplayManagerTestApi(shell->display_manager()). DisableChangeDisplayUponHostResize(); ShellTestApi(shell).DisableOutputConfiguratorAnimation(); + + test_screenshot_delegate_ = new TestScreenshotDelegate(); + shell->accelerator_controller()->SetScreenshotDelegate( + scoped_ptr<ScreenshotDelegate>(test_screenshot_delegate_)); } void AshTestHelper::TearDown() { // Tear down the shell. Shell::DeleteInstance(); + test_screenshot_delegate_ = NULL; // Remove global message center state. message_center::MessageCenter::Shutdown(); diff --git a/ash/test/ash_test_helper.h b/ash/test/ash_test_helper.h index 196567e..030f7f8 100644 --- a/ash/test/ash_test_helper.h +++ b/ash/test/ash_test_helper.h @@ -23,6 +23,7 @@ class ScopedAnimationDurationScaleMode; namespace ash { namespace test { +class TestScreenshotDelegate; class TestShellDelegate; // A helper class that does common initialization required for Ash. Creates a @@ -49,12 +50,18 @@ class AshTestHelper { base::MessageLoopForUI* message_loop() { return message_loop_; } TestShellDelegate* test_shell_delegate() { return test_shell_delegate_; } + TestScreenshotDelegate* test_screenshot_delegate() { + return test_screenshot_delegate_; + } private: base::MessageLoopForUI* message_loop_; // Not owned. TestShellDelegate* test_shell_delegate_; // Owned by ash::Shell. scoped_ptr<ui::ScopedAnimationDurationScaleMode> zero_duration_mode_; + // Owned by ash::AcceleratorController + TestScreenshotDelegate* test_screenshot_delegate_; + // true, if NetworkHandler was initialized by this instance. bool tear_down_network_handler_; diff --git a/ash/test/test_screenshot_delegate.cc b/ash/test/test_screenshot_delegate.cc new file mode 100644 index 0000000..7ade6ba --- /dev/null +++ b/ash/test/test_screenshot_delegate.cc @@ -0,0 +1,34 @@ +// 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. + +#include "ash/test/test_screenshot_delegate.h" + +namespace ash { +namespace test { + +TestScreenshotDelegate::TestScreenshotDelegate() + : handle_take_screenshot_count_(0), + handle_take_partial_screenshot_count_(0), + can_take_screenshot_(true) { +} + +TestScreenshotDelegate::~TestScreenshotDelegate() { +} + +void TestScreenshotDelegate::HandleTakeScreenshotForAllRootWindows() { + handle_take_screenshot_count_++; +} + +void TestScreenshotDelegate::HandleTakePartialScreenshot( + aura::Window* window, const gfx::Rect& rect) { + handle_take_partial_screenshot_count_++; + last_rect_ = rect; +} + +bool TestScreenshotDelegate::CanTakeScreenshot() { + return can_take_screenshot_; +} + +} // namespace test +} // namespace ash diff --git a/ash/test/test_screenshot_delegate.h b/ash/test/test_screenshot_delegate.h new file mode 100644 index 0000000..74c5725 --- /dev/null +++ b/ash/test/test_screenshot_delegate.h @@ -0,0 +1,53 @@ +// 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_TEST_SCREENSHOT_DELEGATE_H_ +#define ASH_TEST_TEST_SCREENSHOT_DELEGATE_H_ + +#include "ash/screenshot_delegate.h" +#include "base/basictypes.h" +#include "base/compiler_specific.h" +#include "ui/gfx/rect.h" + +namespace ash { +namespace test { + +class TestScreenshotDelegate : public ScreenshotDelegate { + public: + TestScreenshotDelegate(); + virtual ~TestScreenshotDelegate(); + + // Overridden from ScreenshotDelegate: + virtual void HandleTakeScreenshotForAllRootWindows() OVERRIDE; + virtual void HandleTakePartialScreenshot( + aura::Window* window, const gfx::Rect& rect) OVERRIDE; + virtual bool CanTakeScreenshot() OVERRIDE; + + int handle_take_screenshot_count() const { + return handle_take_screenshot_count_; + } + + int handle_take_partial_screenshot_count() const { + return handle_take_partial_screenshot_count_; + } + + const gfx::Rect& last_rect() const { return last_rect_; } + + void set_can_take_screenshot(bool can_take_screenshot) { + can_take_screenshot_ = can_take_screenshot; + } + + private: + int handle_take_screenshot_count_; + int handle_take_partial_screenshot_count_; + gfx::Rect last_rect_; + bool can_take_screenshot_; + + DISALLOW_COPY_AND_ASSIGN(TestScreenshotDelegate); +}; + +} // namespace test +} // namespace ash + +#endif // ASH_TEST_TEST_SCREENSHOT_DELEGATE_H_ diff --git a/ash/wm/partial_screenshot_view_unittest.cc b/ash/wm/partial_screenshot_view_unittest.cc index a763577..3605e80 100644 --- a/ash/wm/partial_screenshot_view_unittest.cc +++ b/ash/wm/partial_screenshot_view_unittest.cc @@ -8,36 +8,12 @@ #include "ash/shell.h" #include "ash/shell_window_ids.h" #include "ash/test/ash_test_base.h" +#include "ash/test/test_screenshot_delegate.h" #include "ui/aura/root_window.h" #include "ui/aura/test/event_generator.h" namespace ash { -class FakeScreenshotDelegate : public ScreenshotDelegate { - public: - FakeScreenshotDelegate() : screenshot_count_(0) {} - - virtual void HandleTakeScreenshotForAllRootWindows() OVERRIDE {} - virtual void HandleTakePartialScreenshot(aura::Window* window, - const gfx::Rect& rect) OVERRIDE { - rect_ = rect; - screenshot_count_++; - } - - virtual bool CanTakeScreenshot() OVERRIDE { - return true; - } - - const gfx::Rect& rect() const { return rect_; }; - int screenshot_count() const { return screenshot_count_; }; - - private: - gfx::Rect rect_; - int screenshot_count_; - - DISALLOW_COPY_AND_ASSIGN(FakeScreenshotDelegate); -}; - class PartialScreenshotViewTest : public test::AshTestBase { public: PartialScreenshotViewTest() : view_(NULL) {} @@ -45,16 +21,14 @@ class PartialScreenshotViewTest : public test::AshTestBase { virtual void SetUp() OVERRIDE { test::AshTestBase::SetUp(); - delegate_.reset(new FakeScreenshotDelegate()); std::vector<PartialScreenshotView*> views = - PartialScreenshotView::StartPartialScreenshot(delegate_.get()); + PartialScreenshotView::StartPartialScreenshot(GetScreenshotDelegate()); ASSERT_EQ(1u, views.size()); view_ = views[0]; } protected: PartialScreenshotView* view_; - scoped_ptr<FakeScreenshotDelegate> delegate_; private: DISALLOW_COPY_AND_ASSIGN(PartialScreenshotViewTest); @@ -74,8 +48,8 @@ TEST_F(PartialScreenshotViewTest, BasicMouse) { generator.ReleaseLeftButton(); EXPECT_FALSE(view_->is_dragging_); - EXPECT_EQ("100,100 100x100", delegate_->rect().ToString()); - EXPECT_EQ(1, delegate_->screenshot_count()); + EXPECT_EQ("100,100 100x100", GetScreenshotDelegate()->last_rect().ToString()); + EXPECT_EQ(1, GetScreenshotDelegate()->handle_take_partial_screenshot_count()); } TEST_F(PartialScreenshotViewTest, BasicTouch) { @@ -84,7 +58,7 @@ TEST_F(PartialScreenshotViewTest, BasicTouch) { generator.set_current_location(gfx::Point(100,100)); generator.GestureTapDownAndUp(gfx::Point(100,100)); EXPECT_FALSE(view_->is_dragging_); - EXPECT_EQ(0, delegate_->screenshot_count()); + EXPECT_EQ(0, GetScreenshotDelegate()->handle_take_partial_screenshot_count()); generator.PressTouch(); EXPECT_FALSE(view_->is_dragging_); @@ -96,8 +70,8 @@ TEST_F(PartialScreenshotViewTest, BasicTouch) { generator.ReleaseTouch(); EXPECT_FALSE(view_->is_dragging_); - EXPECT_EQ(1, delegate_->screenshot_count()); - EXPECT_EQ("100,100 100x100", delegate_->rect().ToString()); + EXPECT_EQ(1, GetScreenshotDelegate()->handle_take_partial_screenshot_count()); + EXPECT_EQ("100,100 100x100", GetScreenshotDelegate()->last_rect().ToString()); } } // namespace ash |