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" |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
12 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" |
13 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
14 #include "base/time/time.h" | 14 #include "base/time/time.h" |
15 #include "build/build_config.h" | 15 #include "build/build_config.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
17 #include "ui/events/event.h" | 17 #include "ui/events/event.h" |
18 #include "ui/events/gesture_event_details.h" | 18 #include "ui/events/gesture_event_details.h" |
| 19 #include "ui/events/keycodes/keyboard_codes.h" |
19 #include "ui/events/test/event_generator.h" | 20 #include "ui/events/test/event_generator.h" |
20 #include "ui/views/test/slider_test_api.h" | 21 #include "ui/views/test/slider_test_api.h" |
21 #include "ui/views/test/views_test_base.h" | 22 #include "ui/views/test/views_test_base.h" |
22 #include "ui/views/view.h" | 23 #include "ui/views/view.h" |
23 #include "ui/views/widget/widget.h" | 24 #include "ui/views/widget/widget.h" |
24 #include "ui/views/widget/widget_delegate.h" | 25 #include "ui/views/widget/widget_delegate.h" |
25 | 26 |
26 namespace { | 27 namespace { |
27 | 28 |
28 // A views::SliderListener that tracks simple event call history. | 29 // A views::SliderListener that tracks simple event call history. |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 // Scroll somewhere in the middle. | 296 // Scroll somewhere in the middle. |
296 slider()->SetValue(0.25); | 297 slider()->SetValue(0.25); |
297 event_generator()->GestureScrollSequence( | 298 event_generator()->GestureScrollSequence( |
298 gfx::Point(0.25 * max_x(), 0.25 * max_y()), | 299 gfx::Point(0.25 * max_x(), 0.25 * max_y()), |
299 gfx::Point(0.75 * max_x(), 0.75 * max_y()), | 300 gfx::Point(0.75 * max_x(), 0.75 * max_y()), |
300 base::TimeDelta::FromMilliseconds(10), | 301 base::TimeDelta::FromMilliseconds(10), |
301 5 /* steps */); | 302 5 /* steps */); |
302 EXPECT_NEAR(0.75, slider()->value(), 0.03); | 303 EXPECT_NEAR(0.75, slider()->value(), 0.03); |
303 } | 304 } |
304 | 305 |
| 306 // Test the slider location by adjusting it using keyboard. |
| 307 TEST_F(HorizontalSliderTest, SliderValueForKeyboard) { |
| 308 float value =0.5; |
| 309 slider()->SetValue(value); |
| 310 slider()->RequestFocus(); |
| 311 event_generator()->PressKey(ui::VKEY_RIGHT, 0); |
| 312 EXPECT_GT(slider()->value(), value); |
| 313 |
| 314 slider()->SetValue(value); |
| 315 event_generator()->PressKey(ui::VKEY_LEFT, 0); |
| 316 EXPECT_LT(slider()->value(), value); |
| 317 } |
| 318 |
305 // Verifies the correct SliderListener events are raised for a tap gesture. | 319 // Verifies the correct SliderListener events are raised for a tap gesture. |
306 TEST_F(HorizontalSliderTest, SliderListenerEventsForTapGesture) { | 320 TEST_F(HorizontalSliderTest, SliderListenerEventsForTapGesture) { |
307 test::SliderTestApi slider_test_api(slider()); | 321 test::SliderTestApi slider_test_api(slider()); |
308 slider_test_api.SetListener(&slider_listener()); | 322 slider_test_api.SetListener(&slider_listener()); |
309 | 323 |
310 event_generator()->GestureTapAt(gfx::Point(0, 0)); | 324 event_generator()->GestureTapAt(gfx::Point(0, 0)); |
311 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); | 325 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); |
312 EXPECT_EQ(2, slider_listener().last_drag_ended_epoch()); | 326 EXPECT_EQ(2, slider_listener().last_drag_ended_epoch()); |
313 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); | 327 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); |
314 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); | 328 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); | 361 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); |
348 EXPECT_GT(slider_listener().last_drag_ended_epoch(), | 362 EXPECT_GT(slider_listener().last_drag_ended_epoch(), |
349 slider_listener().last_drag_started_epoch()); | 363 slider_listener().last_drag_started_epoch()); |
350 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); | 364 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); |
351 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); | 365 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); |
352 } | 366 } |
353 | 367 |
354 #endif // !defined(OS_MACOSX) || defined(USE_AURA) | 368 #endif // !defined(OS_MACOSX) || defined(USE_AURA) |
355 | 369 |
356 } // namespace views | 370 } // namespace views |
OLD | NEW |