Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(713)

Unified Diff: ash/wm/workspace/workspace_event_handler_unittest.cc

Issue 22397002: ash: Process double-click event only for left-button clicks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/wm/workspace/workspace_event_handler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/workspace/workspace_event_handler_unittest.cc
diff --git a/ash/wm/workspace/workspace_event_handler_unittest.cc b/ash/wm/workspace/workspace_event_handler_unittest.cc
index e72f1eef5bcde2bc442ed07df1987bd0d047d570..f97038504df03c7d1c5b0f57ee2e18cbc572b875 100644
--- a/ash/wm/workspace/workspace_event_handler_unittest.cc
+++ b/ash/wm/workspace/workspace_event_handler_unittest.cc
@@ -12,9 +12,11 @@
#include "ash/wm/workspace_controller.h"
#include "ash/wm/workspace_controller_test_helper.h"
#include "ui/aura/client/aura_constants.h"
+#include "ui/aura/root_window.h"
#include "ui/aura/test/event_generator.h"
#include "ui/aura/test/test_window_delegate.h"
#include "ui/aura/window.h"
+#include "ui/aura/window_property.h"
#include "ui/base/hit_test.h"
#include "ui/gfx/screen.h"
@@ -46,6 +48,37 @@ class WorkspaceEventHandlerTest : public test::AshTestBase {
DISALLOW_COPY_AND_ASSIGN(WorkspaceEventHandlerTest);
};
+// Keeps track of the properties changed of a particular window.
+class WindowPropertyObserver : public aura::WindowObserver {
+ public:
+ explicit WindowPropertyObserver(aura::Window* window)
+ : window_(window) {
+ window->AddObserver(this);
+ }
+
+ virtual ~WindowPropertyObserver() {
+ window_->RemoveObserver(this);
+ }
+
+ bool DidPropertyChange(const void* property) const {
+ return std::find(properties_changed_.begin(),
+ properties_changed_.end(),
+ property) != properties_changed_.end();
+ }
+
+ private:
+ virtual void OnWindowPropertyChanged(aura::Window* window,
+ const void* key,
+ intptr_t old) OVERRIDE {
+ properties_changed_.push_back(key);
+ }
+
+ aura::Window* window_;
+ std::vector<const void*> properties_changed_;
+
+ DISALLOW_COPY_AND_ASSIGN(WindowPropertyObserver);
+};
+
TEST_F(WorkspaceEventHandlerTest, DoubleClickSingleAxisResizeEdge) {
// Double clicking the vertical resize edge of a window should maximize it
// vertically.
@@ -219,8 +252,8 @@ TEST_F(WorkspaceEventHandlerTest, DoubleClickCaptionTogglesMaximize) {
window->SetProperty(aura::client::kCanMaximizeKey, true);
wd.set_window_component(HTCAPTION);
EXPECT_FALSE(wm::IsWindowMaximized(window.get()));
- aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
- window.get());
+ aura::RootWindow* root = Shell::GetPrimaryRootWindow();
+ aura::test::EventGenerator generator(root, window.get());
generator.DoubleClickLeftButton();
EXPECT_NE("1,2 3x4", window->bounds().ToString());
@@ -229,6 +262,21 @@ TEST_F(WorkspaceEventHandlerTest, DoubleClickCaptionTogglesMaximize) {
EXPECT_FALSE(wm::IsWindowMaximized(window.get()));
EXPECT_EQ("1,2 3x4", window->bounds().ToString());
+
+ // Double-clicking the middle button shouldn't toggle the maximized state.
+ WindowPropertyObserver observer(window.get());
+ ui::MouseEvent press(ui::ET_MOUSE_PRESSED, generator.current_location(),
+ generator.current_location(),
+ ui::EF_MIDDLE_MOUSE_BUTTON | ui::EF_IS_DOUBLE_CLICK);
+ root->AsRootWindowHostDelegate()->OnHostMouseEvent(&press);
+ ui::MouseEvent release(ui::ET_MOUSE_RELEASED, generator.current_location(),
+ generator.current_location(),
+ ui::EF_IS_DOUBLE_CLICK);
+ root->AsRootWindowHostDelegate()->OnHostMouseEvent(&release);
+
+ EXPECT_FALSE(wm::IsWindowMaximized(window.get()));
+ EXPECT_EQ("1,2 3x4", window->bounds().ToString());
+ EXPECT_FALSE(observer.DidPropertyChange(aura::client::kShowStateKey));
}
TEST_F(WorkspaceEventHandlerTest, DoubleTapCaptionTogglesMaximize) {
« no previous file with comments | « ash/wm/workspace/workspace_event_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698