OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "ui/views/controls/single_split_view.h" | 5 #include "ui/views/controls/single_split_view.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "ui/events/event_utils.h" | 9 #include "ui/events/event_utils.h" |
10 #include "ui/views/controls/single_split_view_listener.h" | 10 #include "ui/views/controls/single_split_view_listener.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 | 162 |
163 const int kTotalSplitSize = 100; | 163 const int kTotalSplitSize = 100; |
164 split.SetBounds(0, 0, 10, kTotalSplitSize); | 164 split.SetBounds(0, 0, 10, kTotalSplitSize); |
165 const int kInitialDividerOffset = 33; | 165 const int kInitialDividerOffset = 33; |
166 const int kMouseOffset = 2; // Mouse offset in the divider. | 166 const int kMouseOffset = 2; // Mouse offset in the divider. |
167 const int kMouseMoveDelta = 7; | 167 const int kMouseMoveDelta = 7; |
168 split.set_divider_offset(kInitialDividerOffset); | 168 split.set_divider_offset(kInitialDividerOffset); |
169 split.Layout(); | 169 split.Layout(); |
170 | 170 |
171 gfx::Point press_point(7, kInitialDividerOffset + kMouseOffset); | 171 gfx::Point press_point(7, kInitialDividerOffset + kMouseOffset); |
172 ui::MouseEvent mouse_pressed(ui::ET_MOUSE_PRESSED, press_point, press_point, | 172 ui::MouseEvent mouse_pressed( |
173 ui::EventTimeForNow(), 0, 0); | 173 ui::ET_MOUSE_PRESSED, press_point, press_point, ui::EventTimeForNow(), 0, |
| 174 0, ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
174 ASSERT_TRUE(split.OnMousePressed(mouse_pressed)); | 175 ASSERT_TRUE(split.OnMousePressed(mouse_pressed)); |
175 EXPECT_EQ(kInitialDividerOffset, split.divider_offset()); | 176 EXPECT_EQ(kInitialDividerOffset, split.divider_offset()); |
176 EXPECT_EQ(0, listener.count()); | 177 EXPECT_EQ(0, listener.count()); |
177 | 178 |
178 // Drag divider to the bottom. | 179 // Drag divider to the bottom. |
179 gfx::Point drag_1_point( | 180 gfx::Point drag_1_point( |
180 5, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta); | 181 5, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta); |
181 ui::MouseEvent mouse_dragged_1(ui::ET_MOUSE_DRAGGED, drag_1_point, | 182 ui::MouseEvent mouse_dragged_1( |
182 drag_1_point, ui::EventTimeForNow(), 0, 0); | 183 ui::ET_MOUSE_DRAGGED, drag_1_point, drag_1_point, ui::EventTimeForNow(), |
| 184 0, 0, ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
183 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_1)); | 185 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_1)); |
184 EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta, split.divider_offset()); | 186 EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta, split.divider_offset()); |
185 EXPECT_EQ(1, listener.count()); | 187 EXPECT_EQ(1, listener.count()); |
186 | 188 |
187 // Drag divider to the top, beyond first child minimum size. | 189 // Drag divider to the top, beyond first child minimum size. |
188 gfx::Point drag_2_point( | 190 gfx::Point drag_2_point( |
189 7, kMinimumChildSize - 5); | 191 7, kMinimumChildSize - 5); |
190 ui::MouseEvent mouse_dragged_2(ui::ET_MOUSE_DRAGGED, drag_2_point, | 192 ui::MouseEvent mouse_dragged_2( |
191 drag_2_point, ui::EventTimeForNow(), 0, 0); | 193 ui::ET_MOUSE_DRAGGED, drag_2_point, drag_2_point, ui::EventTimeForNow(), |
| 194 0, 0, ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
192 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_2)); | 195 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_2)); |
193 EXPECT_EQ(kMinimumChildSize, split.divider_offset()); | 196 EXPECT_EQ(kMinimumChildSize, split.divider_offset()); |
194 EXPECT_EQ(2, listener.count()); | 197 EXPECT_EQ(2, listener.count()); |
195 | 198 |
196 // Drag divider to the bottom, beyond second child minimum size. | 199 // Drag divider to the bottom, beyond second child minimum size. |
197 gfx::Point drag_3_point( | 200 gfx::Point drag_3_point( |
198 7, kTotalSplitSize - kMinimumChildSize + 5); | 201 7, kTotalSplitSize - kMinimumChildSize + 5); |
199 ui::MouseEvent mouse_dragged_3(ui::ET_MOUSE_DRAGGED, drag_3_point, | 202 ui::MouseEvent mouse_dragged_3( |
200 drag_3_point, ui::EventTimeForNow(), 0, 0); | 203 ui::ET_MOUSE_DRAGGED, drag_3_point, drag_3_point, ui::EventTimeForNow(), |
| 204 0, 0, ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
201 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_3)); | 205 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_3)); |
202 EXPECT_EQ(kTotalSplitSize - kMinimumChildSize - split.GetDividerSize(), | 206 EXPECT_EQ(kTotalSplitSize - kMinimumChildSize - split.GetDividerSize(), |
203 split.divider_offset()); | 207 split.divider_offset()); |
204 EXPECT_EQ(3, listener.count()); | 208 EXPECT_EQ(3, listener.count()); |
205 | 209 |
206 // Drag divider between childs' minimum sizes. | 210 // Drag divider between childs' minimum sizes. |
207 gfx::Point drag_4_point( | 211 gfx::Point drag_4_point( |
208 6, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta * 2); | 212 6, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta * 2); |
209 ui::MouseEvent mouse_dragged_4(ui::ET_MOUSE_DRAGGED, drag_4_point, | 213 ui::MouseEvent mouse_dragged_4( |
210 drag_4_point, ui::EventTimeForNow(), 0, 0); | 214 ui::ET_MOUSE_DRAGGED, drag_4_point, drag_4_point, ui::EventTimeForNow(), |
| 215 0, 0, ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
211 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_4)); | 216 ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_4)); |
212 EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta * 2, | 217 EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta * 2, |
213 split.divider_offset()); | 218 split.divider_offset()); |
214 EXPECT_EQ(4, listener.count()); | 219 EXPECT_EQ(4, listener.count()); |
215 | 220 |
216 gfx::Point release_point( | 221 gfx::Point release_point( |
217 7, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta * 2); | 222 7, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta * 2); |
218 ui::MouseEvent mouse_released(ui::ET_MOUSE_RELEASED, release_point, | 223 ui::MouseEvent mouse_released( |
219 release_point, ui::EventTimeForNow(), 0, 0); | 224 ui::ET_MOUSE_RELEASED, release_point, release_point, |
| 225 ui::EventTimeForNow(), 0, 0, |
| 226 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
220 split.OnMouseReleased(mouse_released); | 227 split.OnMouseReleased(mouse_released); |
221 EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta * 2, | 228 EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta * 2, |
222 split.divider_offset()); | 229 split.divider_offset()); |
223 | 230 |
224 // Expect intial offset after a system/user gesture cancels the drag. | 231 // Expect intial offset after a system/user gesture cancels the drag. |
225 // This shouldn't occur after mouse release, but it's sufficient for testing. | 232 // This shouldn't occur after mouse release, but it's sufficient for testing. |
226 split.OnMouseCaptureLost(); | 233 split.OnMouseCaptureLost(); |
227 EXPECT_EQ(kInitialDividerOffset, split.divider_offset()); | 234 EXPECT_EQ(kInitialDividerOffset, split.divider_offset()); |
228 EXPECT_EQ(5, listener.count()); | 235 EXPECT_EQ(5, listener.count()); |
229 } | 236 } |
230 | 237 |
231 } // namespace views | 238 } // namespace views |
OLD | NEW |