| 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 |