OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/slider.h" | 5 #include "ui/views/controls/slider.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 slider()->SetValue(0.5); | 255 slider()->SetValue(0.5); |
256 event_generator()->GestureTapAt(gfx::Point(0.75 * max_x(), 0.75 * max_y())); | 256 event_generator()->GestureTapAt(gfx::Point(0.75 * max_x(), 0.75 * max_y())); |
257 EXPECT_NEAR(0.75, slider()->value(), 0.03); | 257 EXPECT_NEAR(0.75, slider()->value(), 0.03); |
258 } | 258 } |
259 | 259 |
260 // Test the slider location after a scroll gesture. | 260 // Test the slider location after a scroll gesture. |
261 TEST_F(SliderTest, SliderValueForScrollGesture) { | 261 TEST_F(SliderTest, SliderValueForScrollGesture) { |
262 // Scroll below the minimum. | 262 // Scroll below the minimum. |
263 slider()->SetValue(0.5); | 263 slider()->SetValue(0.5); |
264 event_generator()->GestureScrollSequence( | 264 event_generator()->GestureScrollSequence( |
265 gfx::Point(0.5 * max_x(), 0.5 * max_y()), | 265 gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(0, 0), |
266 gfx::Point(0, 0), | 266 base::TimeDelta::FromMilliseconds(10), 5 /* steps */); |
267 base::TimeDelta::FromMilliseconds(10), | |
268 5 /* steps */); | |
269 EXPECT_EQ(0, slider()->value()); | 267 EXPECT_EQ(0, slider()->value()); |
270 | 268 |
271 // Scroll above the maximum. | 269 // Scroll above the maximum. |
272 slider()->SetValue(0.5); | 270 slider()->SetValue(0.5); |
273 event_generator()->GestureScrollSequence( | 271 event_generator()->GestureScrollSequence( |
274 gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(max_x(), max_y()), | 272 gfx::Point(0.5 * max_x(), 0.5 * max_y()), gfx::Point(max_x(), max_y()), |
275 base::TimeDelta::FromMilliseconds(10), 5 /* steps */); | 273 base::TimeDelta::FromMilliseconds(10), 5 /* steps */); |
276 EXPECT_EQ(1, slider()->value()); | 274 EXPECT_EQ(1, slider()->value()); |
277 | 275 |
278 // Scroll somewhere in the middle. | 276 // Scroll somewhere in the middle. |
279 slider()->SetValue(0.25); | 277 slider()->SetValue(0.25); |
280 event_generator()->GestureScrollSequence( | 278 event_generator()->GestureScrollSequence( |
281 gfx::Point(0.25 * max_x(), 0.25 * max_y()), | 279 gfx::Point(0.25 * max_x(), 0.25 * max_y()), |
282 gfx::Point(0.75 * max_x(), 0.75 * max_y()), | 280 gfx::Point(0.75 * max_x(), 0.75 * max_y()), |
283 base::TimeDelta::FromMilliseconds(10), | 281 base::TimeDelta::FromMilliseconds(10), 5 /* steps */); |
284 5 /* steps */); | |
285 EXPECT_NEAR(0.75, slider()->value(), 0.03); | 282 EXPECT_NEAR(0.75, slider()->value(), 0.03); |
286 } | 283 } |
287 | 284 |
288 // Test the slider location by adjusting it using keyboard. | 285 // Test the slider location by adjusting it using keyboard. |
289 TEST_F(SliderTest, SliderValueForKeyboard) { | 286 TEST_F(SliderTest, SliderValueForKeyboard) { |
290 float value = 0.5; | 287 float value = 0.5; |
291 slider()->SetValue(value); | 288 slider()->SetValue(value); |
292 slider()->RequestFocus(); | 289 slider()->RequestFocus(); |
293 event_generator()->PressKey(ui::VKEY_RIGHT, 0); | 290 event_generator()->PressKey(ui::VKEY_RIGHT, 0); |
294 EXPECT_GT(slider()->value(), value); | 291 EXPECT_GT(slider()->value(), value); |
295 | 292 |
296 slider()->SetValue(value); | 293 slider()->SetValue(value); |
297 event_generator()->PressKey(ui::VKEY_LEFT, 0); | 294 event_generator()->PressKey(ui::VKEY_LEFT, 0); |
298 EXPECT_LT(slider()->value(), value); | 295 EXPECT_LT(slider()->value(), value); |
| 296 |
| 297 slider()->SetValue(value); |
| 298 event_generator()->PressKey(ui::VKEY_UP, 0); |
| 299 EXPECT_GT(slider()->value(), value); |
| 300 |
| 301 slider()->SetValue(value); |
| 302 event_generator()->PressKey(ui::VKEY_DOWN, 0); |
| 303 EXPECT_LT(slider()->value(), value); |
| 304 |
| 305 // RTL reverse left/right but not up/down. |
| 306 base::i18n::SetICUDefaultLocale("he"); |
| 307 EXPECT_TRUE(base::i18n::IsRTL()); |
| 308 |
| 309 event_generator()->PressKey(ui::VKEY_RIGHT, 0); |
| 310 EXPECT_LT(slider()->value(), value); |
| 311 |
| 312 slider()->SetValue(value); |
| 313 event_generator()->PressKey(ui::VKEY_LEFT, 0); |
| 314 EXPECT_GT(slider()->value(), value); |
| 315 |
| 316 slider()->SetValue(value); |
| 317 event_generator()->PressKey(ui::VKEY_UP, 0); |
| 318 EXPECT_GT(slider()->value(), value); |
| 319 |
| 320 slider()->SetValue(value); |
| 321 event_generator()->PressKey(ui::VKEY_DOWN, 0); |
| 322 EXPECT_LT(slider()->value(), value); |
299 } | 323 } |
300 | 324 |
301 // Verifies the correct SliderListener events are raised for a tap gesture. | 325 // Verifies the correct SliderListener events are raised for a tap gesture. |
302 TEST_F(SliderTest, SliderListenerEventsForTapGesture) { | 326 TEST_F(SliderTest, SliderListenerEventsForTapGesture) { |
303 test::SliderTestApi slider_test_api(slider()); | 327 test::SliderTestApi slider_test_api(slider()); |
304 slider_test_api.SetListener(&slider_listener()); | 328 slider_test_api.SetListener(&slider_listener()); |
305 | 329 |
306 event_generator()->GestureTapAt(gfx::Point(0, 0)); | 330 event_generator()->GestureTapAt(gfx::Point(0, 0)); |
307 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); | 331 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); |
308 EXPECT_EQ(2, slider_listener().last_drag_ended_epoch()); | 332 EXPECT_EQ(2, slider_listener().last_drag_ended_epoch()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); | 367 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); |
344 EXPECT_GT(slider_listener().last_drag_ended_epoch(), | 368 EXPECT_GT(slider_listener().last_drag_ended_epoch(), |
345 slider_listener().last_drag_started_epoch()); | 369 slider_listener().last_drag_started_epoch()); |
346 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); | 370 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); |
347 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); | 371 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); |
348 } | 372 } |
349 | 373 |
350 #endif // !defined(OS_MACOSX) || defined(USE_AURA) | 374 #endif // !defined(OS_MACOSX) || defined(USE_AURA) |
351 | 375 |
352 } // namespace views | 376 } // namespace views |
OLD | NEW |