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

Side by Side Diff: ui/ozone/platform/wayland/wayland_window_unittest.cc

Issue 1712103002: ozone/platform/wayland: Implement pointer handling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « ui/ozone/platform/wayland/wayland_window.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <wayland-server-core.h> 5 #include <wayland-server-core.h>
6 #include <xdg-shell-unstable-v5-server-protocol.h> 6 #include <xdg-shell-unstable-v5-server-protocol.h>
7 7
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/events/event.h"
12 #include "ui/ozone/platform/wayland/fake_server.h" 13 #include "ui/ozone/platform/wayland/fake_server.h"
13 #include "ui/ozone/platform/wayland/mock_platform_window_delegate.h" 14 #include "ui/ozone/platform/wayland/mock_platform_window_delegate.h"
14 #include "ui/ozone/platform/wayland/wayland_test.h" 15 #include "ui/ozone/platform/wayland/wayland_test.h"
15 #include "ui/ozone/platform/wayland/wayland_window.h" 16 #include "ui/ozone/platform/wayland/wayland_window.h"
16 17
17 using ::testing::Eq; 18 using ::testing::Eq;
18 using ::testing::Mock; 19 using ::testing::Mock;
19 using ::testing::SaveArg; 20 using ::testing::SaveArg;
20 using ::testing::StrEq; 21 using ::testing::StrEq;
21 using ::testing::_; 22 using ::testing::_;
22 23
23 namespace ui { 24 namespace ui {
24 25
25 class WaylandWindowTest : public WaylandTest { 26 class WaylandWindowTest : public WaylandTest {
26 public: 27 public:
27 WaylandWindowTest() {} 28 WaylandWindowTest()
29 : test_mouse_event(ET_MOUSE_PRESSED,
30 gfx::Point(10, 15),
31 gfx::Point(10, 15),
32 base::TimeDelta::FromSeconds(123456),
33 EF_LEFT_MOUSE_BUTTON | EF_RIGHT_MOUSE_BUTTON,
34 EF_LEFT_MOUSE_BUTTON) {}
28 35
29 void SetUp() override { 36 void SetUp() override {
30 WaylandTest::SetUp(); 37 WaylandTest::SetUp();
31 38
32 xdg_surface = surface->xdg_surface.get(); 39 xdg_surface = surface->xdg_surface.get();
33 ASSERT_TRUE(xdg_surface); 40 ASSERT_TRUE(xdg_surface);
34 } 41 }
35 42
36 protected: 43 protected:
37 wl::MockXdgSurface* xdg_surface; 44 wl::MockXdgSurface* xdg_surface;
38 45
46 MouseEvent test_mouse_event;
47
39 private: 48 private:
40 DISALLOW_COPY_AND_ASSIGN(WaylandWindowTest); 49 DISALLOW_COPY_AND_ASSIGN(WaylandWindowTest);
41 }; 50 };
42 51
43 TEST_F(WaylandWindowTest, SetTitle) { 52 TEST_F(WaylandWindowTest, SetTitle) {
44 EXPECT_CALL(*xdg_surface, SetTitle(StrEq("hello"))); 53 EXPECT_CALL(*xdg_surface, SetTitle(StrEq("hello")));
45 window.SetTitle(base::ASCIIToUTF16("hello")); 54 window.SetTitle(base::ASCIIToUTF16("hello"));
46 } 55 }
47 56
48 TEST_F(WaylandWindowTest, Maximize) { 57 TEST_F(WaylandWindowTest, Maximize) {
49 EXPECT_CALL(*xdg_surface, SetMaximized()); 58 EXPECT_CALL(*xdg_surface, SetMaximized());
50 window.Maximize(); 59 window.Maximize();
51 } 60 }
52 61
53 TEST_F(WaylandWindowTest, Minimize) { 62 TEST_F(WaylandWindowTest, Minimize) {
54 EXPECT_CALL(*xdg_surface, SetMinimized()); 63 EXPECT_CALL(*xdg_surface, SetMinimized());
55 window.Minimize(); 64 window.Minimize();
56 } 65 }
57 66
58 TEST_F(WaylandWindowTest, Restore) { 67 TEST_F(WaylandWindowTest, Restore) {
59 EXPECT_CALL(*xdg_surface, UnsetMaximized()); 68 EXPECT_CALL(*xdg_surface, UnsetMaximized());
60 window.Restore(); 69 window.Restore();
61 } 70 }
62 71
72 TEST_F(WaylandWindowTest, CanDispatchMouseEventDefault) {
73 EXPECT_FALSE(window.CanDispatchEvent(&test_mouse_event));
74 }
75
76 TEST_F(WaylandWindowTest, CanDispatchMouseEventFocus) {
77 window.set_pointer_focus(true);
78 EXPECT_TRUE(window.CanDispatchEvent(&test_mouse_event));
79 }
80
81 TEST_F(WaylandWindowTest, CanDispatchMouseEventUnfocus) {
82 window.set_pointer_focus(false);
83 EXPECT_FALSE(window.CanDispatchEvent(&test_mouse_event));
84 }
85
86 ACTION_P(CloneEvent, ptr) {
87 *ptr = Event::Clone(*arg0);
88 }
89
90 TEST_F(WaylandWindowTest, DispatchEvent) {
91 scoped_ptr<Event> event;
92 EXPECT_CALL(delegate, DispatchEvent(_)).WillOnce(CloneEvent(&event));
93 window.DispatchEvent(&test_mouse_event);
94 ASSERT_TRUE(event);
95 ASSERT_TRUE(event->IsMouseEvent());
96 auto mouse_event = static_cast<MouseEvent*>(event.get());
97 EXPECT_EQ(mouse_event->location_f(), test_mouse_event.location_f());
98 EXPECT_EQ(mouse_event->root_location_f(), test_mouse_event.root_location_f());
99 EXPECT_EQ(mouse_event->time_stamp(), test_mouse_event.time_stamp());
100 EXPECT_EQ(mouse_event->button_flags(), test_mouse_event.button_flags());
101 EXPECT_EQ(mouse_event->changed_button_flags(),
102 test_mouse_event.changed_button_flags());
103 }
104
63 TEST_F(WaylandWindowTest, ConfigureEvent) { 105 TEST_F(WaylandWindowTest, ConfigureEvent) {
64 wl_array states; 106 wl_array states;
65 wl_array_init(&states); 107 wl_array_init(&states);
66 xdg_surface_send_configure(xdg_surface->resource(), 1000, 1000, &states, 12); 108 xdg_surface_send_configure(xdg_surface->resource(), 1000, 1000, &states, 12);
67 xdg_surface_send_configure(xdg_surface->resource(), 1500, 1000, &states, 13); 109 xdg_surface_send_configure(xdg_surface->resource(), 1500, 1000, &states, 13);
68 110
69 // Make sure that the implementation does not call OnBoundsChanged for each 111 // Make sure that the implementation does not call OnBoundsChanged for each
70 // configure event if it receives multiple in a row. 112 // configure event if it receives multiple in a row.
71 EXPECT_CALL(delegate, OnBoundsChanged(Eq(gfx::Rect(0, 0, 1500, 1000)))); 113 EXPECT_CALL(delegate, OnBoundsChanged(Eq(gfx::Rect(0, 0, 1500, 1000))));
72 EXPECT_CALL(*xdg_surface, AckConfigure(13)); 114 EXPECT_CALL(*xdg_surface, AckConfigure(13));
73 } 115 }
74 116
75 } // namespace ui 117 } // namespace ui
OLDNEW
« no previous file with comments | « ui/ozone/platform/wayland/wayland_window.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698