summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 03:11:29 +0000
committermukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 03:11:29 +0000
commitc7283444a26c8f23dca69fb0d511b6309e7c91bb (patch)
treed6847eae6765c03b9b955e0809ab63626ed2f3db
parentf37ff7167ee2ac92e6643a7587af74b880c86b89 (diff)
downloadchromium_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.cc45
-rw-r--r--ash/accelerators/accelerator_filter_unittest.cc44
-rw-r--r--ash/ash.gyp2
-rw-r--r--ash/test/ash_test_base.cc4
-rw-r--r--ash/test/ash_test_base.h3
-rw-r--r--ash/test/ash_test_helper.cc8
-rw-r--r--ash/test/ash_test_helper.h7
-rw-r--r--ash/test/test_screenshot_delegate.cc34
-rw-r--r--ash/test/test_screenshot_delegate.h53
-rw-r--r--ash/wm/partial_screenshot_view_unittest.cc40
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