OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "ash/shell.h" | 5 #include "ash/shell.h" |
6 #include "components/exo/buffer.h" | 6 #include "components/exo/buffer.h" |
7 #include "components/exo/pointer.h" | 7 #include "components/exo/pointer.h" |
8 #include "components/exo/pointer_delegate.h" | 8 #include "components/exo/pointer_delegate.h" |
9 #include "components/exo/shell_surface.h" | 9 #include "components/exo/shell_surface.h" |
10 #include "components/exo/surface.h" | 10 #include "components/exo/surface.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 MOCK_METHOD3(OnPointerEnter, void(Surface*, const gfx::Point&, int)); | 30 MOCK_METHOD3(OnPointerEnter, void(Surface*, const gfx::Point&, int)); |
31 MOCK_METHOD1(OnPointerLeave, void(Surface*)); | 31 MOCK_METHOD1(OnPointerLeave, void(Surface*)); |
32 MOCK_METHOD2(OnPointerMotion, void(base::TimeDelta, const gfx::Point&)); | 32 MOCK_METHOD2(OnPointerMotion, void(base::TimeDelta, const gfx::Point&)); |
33 MOCK_METHOD3(OnPointerButton, void(base::TimeDelta, int, bool)); | 33 MOCK_METHOD3(OnPointerButton, void(base::TimeDelta, int, bool)); |
34 MOCK_METHOD2(OnPointerWheel, void(base::TimeDelta, const gfx::Vector2d&)); | 34 MOCK_METHOD2(OnPointerWheel, void(base::TimeDelta, const gfx::Vector2d&)); |
35 }; | 35 }; |
36 | 36 |
37 TEST_F(PointerTest, OnPointerEnter) { | 37 TEST_F(PointerTest, OnPointerEnter) { |
38 scoped_ptr<Surface> surface(new Surface); | 38 scoped_ptr<Surface> surface(new Surface); |
39 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); | 39 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); |
40 shell_surface->Init(); | |
41 gfx::Size buffer_size(10, 10); | 40 gfx::Size buffer_size(10, 10); |
42 scoped_ptr<Buffer> buffer(new Buffer( | 41 scoped_ptr<Buffer> buffer(new Buffer( |
43 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); | 42 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); |
44 surface->Attach(buffer.get()); | 43 surface->Attach(buffer.get()); |
45 surface->Commit(); | 44 surface->Commit(); |
46 | 45 |
47 MockPointerDelegate delegate; | 46 MockPointerDelegate delegate; |
48 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); | 47 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); |
49 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); | 48 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); |
50 | 49 |
51 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) | 50 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) |
52 .WillRepeatedly(testing::Return(true)); | 51 .WillRepeatedly(testing::Return(true)); |
53 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); | 52 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); |
54 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); | 53 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); |
55 | 54 |
56 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); | 55 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); |
57 pointer.reset(); | 56 pointer.reset(); |
58 } | 57 } |
59 | 58 |
60 TEST_F(PointerTest, OnPointerLeave) { | 59 TEST_F(PointerTest, OnPointerLeave) { |
61 scoped_ptr<Surface> surface(new Surface); | 60 scoped_ptr<Surface> surface(new Surface); |
62 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); | 61 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); |
63 shell_surface->Init(); | |
64 gfx::Size buffer_size(10, 10); | 62 gfx::Size buffer_size(10, 10); |
65 scoped_ptr<Buffer> buffer(new Buffer( | 63 scoped_ptr<Buffer> buffer(new Buffer( |
66 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); | 64 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); |
67 surface->Attach(buffer.get()); | 65 surface->Attach(buffer.get()); |
68 surface->Commit(); | 66 surface->Commit(); |
69 | 67 |
70 MockPointerDelegate delegate; | 68 MockPointerDelegate delegate; |
71 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); | 69 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); |
72 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); | 70 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); |
73 | 71 |
74 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) | 72 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) |
75 .WillRepeatedly(testing::Return(true)); | 73 .WillRepeatedly(testing::Return(true)); |
76 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); | 74 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); |
77 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); | 75 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); |
78 | 76 |
79 EXPECT_CALL(delegate, OnPointerLeave(surface.get())); | 77 EXPECT_CALL(delegate, OnPointerLeave(surface.get())); |
80 generator.MoveMouseTo(surface->GetBoundsInScreen().bottom_right()); | 78 generator.MoveMouseTo(surface->GetBoundsInScreen().bottom_right()); |
81 | 79 |
82 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); | 80 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); |
83 pointer.reset(); | 81 pointer.reset(); |
84 } | 82 } |
85 | 83 |
86 TEST_F(PointerTest, OnPointerMotion) { | 84 TEST_F(PointerTest, OnPointerMotion) { |
87 scoped_ptr<Surface> surface(new Surface); | 85 scoped_ptr<Surface> surface(new Surface); |
88 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); | 86 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); |
89 shell_surface->Init(); | |
90 gfx::Size buffer_size(10, 10); | 87 gfx::Size buffer_size(10, 10); |
91 scoped_ptr<Buffer> buffer(new Buffer( | 88 scoped_ptr<Buffer> buffer(new Buffer( |
92 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); | 89 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); |
93 surface->Attach(buffer.get()); | 90 surface->Attach(buffer.get()); |
94 surface->Commit(); | 91 surface->Commit(); |
95 | 92 |
96 MockPointerDelegate delegate; | 93 MockPointerDelegate delegate; |
97 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); | 94 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); |
98 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); | 95 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); |
99 | 96 |
(...skipping 27 matching lines...) Expand all Loading... |
127 generator.MoveMouseTo(sub_surface->GetBoundsInScreen().origin() + | 124 generator.MoveMouseTo(sub_surface->GetBoundsInScreen().origin() + |
128 gfx::Vector2d(1, 1)); | 125 gfx::Vector2d(1, 1)); |
129 | 126 |
130 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); | 127 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); |
131 pointer.reset(); | 128 pointer.reset(); |
132 } | 129 } |
133 | 130 |
134 TEST_F(PointerTest, OnPointerButton) { | 131 TEST_F(PointerTest, OnPointerButton) { |
135 scoped_ptr<Surface> surface(new Surface); | 132 scoped_ptr<Surface> surface(new Surface); |
136 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); | 133 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); |
137 shell_surface->Init(); | |
138 gfx::Size buffer_size(10, 10); | 134 gfx::Size buffer_size(10, 10); |
139 scoped_ptr<Buffer> buffer(new Buffer( | 135 scoped_ptr<Buffer> buffer(new Buffer( |
140 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); | 136 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); |
141 surface->Attach(buffer.get()); | 137 surface->Attach(buffer.get()); |
142 surface->Commit(); | 138 surface->Commit(); |
143 | 139 |
144 MockPointerDelegate delegate; | 140 MockPointerDelegate delegate; |
145 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); | 141 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); |
146 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); | 142 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); |
147 | 143 |
148 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) | 144 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) |
149 .WillRepeatedly(testing::Return(true)); | 145 .WillRepeatedly(testing::Return(true)); |
150 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); | 146 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); |
151 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); | 147 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); |
152 | 148 |
153 EXPECT_CALL(delegate, | 149 EXPECT_CALL(delegate, |
154 OnPointerButton(testing::_, ui::EF_LEFT_MOUSE_BUTTON, true)); | 150 OnPointerButton(testing::_, ui::EF_LEFT_MOUSE_BUTTON, true)); |
155 EXPECT_CALL(delegate, | 151 EXPECT_CALL(delegate, |
156 OnPointerButton(testing::_, ui::EF_LEFT_MOUSE_BUTTON, false)); | 152 OnPointerButton(testing::_, ui::EF_LEFT_MOUSE_BUTTON, false)); |
157 generator.ClickLeftButton(); | 153 generator.ClickLeftButton(); |
158 | 154 |
159 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); | 155 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); |
160 pointer.reset(); | 156 pointer.reset(); |
161 } | 157 } |
162 | 158 |
163 TEST_F(PointerTest, OnPointerWheel) { | 159 TEST_F(PointerTest, OnPointerWheel) { |
164 scoped_ptr<Surface> surface(new Surface); | 160 scoped_ptr<Surface> surface(new Surface); |
165 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); | 161 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); |
166 shell_surface->Init(); | |
167 gfx::Size buffer_size(10, 10); | 162 gfx::Size buffer_size(10, 10); |
168 scoped_ptr<Buffer> buffer(new Buffer( | 163 scoped_ptr<Buffer> buffer(new Buffer( |
169 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); | 164 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); |
170 surface->Attach(buffer.get()); | 165 surface->Attach(buffer.get()); |
171 surface->Commit(); | 166 surface->Commit(); |
172 | 167 |
173 MockPointerDelegate delegate; | 168 MockPointerDelegate delegate; |
174 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); | 169 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); |
175 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); | 170 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); |
176 | 171 |
177 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) | 172 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) |
178 .WillRepeatedly(testing::Return(true)); | 173 .WillRepeatedly(testing::Return(true)); |
179 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); | 174 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); |
180 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); | 175 generator.MoveMouseTo(surface->GetBoundsInScreen().origin()); |
181 | 176 |
182 EXPECT_CALL(delegate, OnPointerWheel(testing::_, gfx::Vector2d(1, 1))); | 177 EXPECT_CALL(delegate, OnPointerWheel(testing::_, gfx::Vector2d(1, 1))); |
183 generator.MoveMouseWheel(1, 1); | 178 generator.MoveMouseWheel(1, 1); |
184 | 179 |
185 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); | 180 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); |
186 pointer.reset(); | 181 pointer.reset(); |
187 } | 182 } |
188 | 183 |
189 TEST_F(PointerTest, OnPointerScroll) { | 184 TEST_F(PointerTest, OnPointerScroll) { |
190 scoped_ptr<Surface> surface(new Surface); | 185 scoped_ptr<Surface> surface(new Surface); |
191 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); | 186 scoped_ptr<ShellSurface> shell_surface(new ShellSurface(surface.get())); |
192 shell_surface->Init(); | |
193 gfx::Size buffer_size(10, 10); | 187 gfx::Size buffer_size(10, 10); |
194 scoped_ptr<Buffer> buffer(new Buffer( | 188 scoped_ptr<Buffer> buffer(new Buffer( |
195 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); | 189 exo_test_helper()->CreateGpuMemoryBuffer(buffer_size), GL_TEXTURE_2D)); |
196 surface->Attach(buffer.get()); | 190 surface->Attach(buffer.get()); |
197 surface->Commit(); | 191 surface->Commit(); |
198 | 192 |
199 MockPointerDelegate delegate; | 193 MockPointerDelegate delegate; |
200 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); | 194 scoped_ptr<Pointer> pointer(new Pointer(&delegate)); |
201 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); | 195 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow()); |
202 gfx::Point location = surface->GetBoundsInScreen().origin(); | 196 gfx::Point location = surface->GetBoundsInScreen().origin(); |
203 | 197 |
204 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) | 198 EXPECT_CALL(delegate, CanAcceptPointerEventsForSurface(surface.get())) |
205 .WillRepeatedly(testing::Return(true)); | 199 .WillRepeatedly(testing::Return(true)); |
206 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); | 200 EXPECT_CALL(delegate, OnPointerEnter(surface.get(), gfx::Point(), 0)); |
207 generator.MoveMouseTo(location); | 201 generator.MoveMouseTo(location); |
208 | 202 |
209 EXPECT_CALL(delegate, OnPointerWheel(testing::_, gfx::Vector2d(1, 1))); | 203 EXPECT_CALL(delegate, OnPointerWheel(testing::_, gfx::Vector2d(1, 1))); |
210 ui::ScrollEvent scroll_event(ui::ET_SCROLL, location, ui::EventTimeForNow(), | 204 ui::ScrollEvent scroll_event(ui::ET_SCROLL, location, ui::EventTimeForNow(), |
211 0 /* flags */, 1 /* x_offset */, | 205 0 /* flags */, 1 /* x_offset */, |
212 1 /* y_offset */, 1 /* x_offset_ordinal */, | 206 1 /* y_offset */, 1 /* x_offset_ordinal */, |
213 1 /* y_offset_ordinal */, 1 /* finger_count */); | 207 1 /* y_offset_ordinal */, 1 /* finger_count */); |
214 generator.Dispatch(&scroll_event); | 208 generator.Dispatch(&scroll_event); |
215 | 209 |
216 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); | 210 EXPECT_CALL(delegate, OnPointerDestroying(pointer.get())); |
217 pointer.reset(); | 211 pointer.reset(); |
218 } | 212 } |
219 | 213 |
220 } // namespace | 214 } // namespace |
221 } // namespace exo | 215 } // namespace exo |
OLD | NEW |