| 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 <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| 11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
| 12 #include "base/time/time.h" | 12 #include "base/time/time.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 14 #include "ui/base/l10n/l10n_util.h" | 14 #include "ui/base/l10n/l10n_util.h" |
| 15 #include "ui/events/event.h" | 15 #include "ui/events/event.h" |
| 16 #include "ui/events/gesture_event_details.h" | 16 #include "ui/events/gesture_event_details.h" |
| 17 #include "ui/events/test/event_generator.h" | 17 #include "ui/events/test/event_generator.h" |
| 18 #include "ui/views/test/slider_test_api.h" | 18 #include "ui/views/test/slider_test_api.h" |
| 19 #include "ui/views/test/views_test_base.h" | 19 #include "ui/views/test/views_test_base.h" |
| 20 #include "ui/views/view.h" | 20 #include "ui/views/view.h" |
| 21 #include "ui/views/widget/widget.h" | 21 #include "ui/views/widget/widget.h" |
| 22 #include "ui/views/widget/widget_delegate.h" | 22 #include "ui/views/widget/widget_delegate.h" |
| 23 | 23 |
| 24 namespace { | 24 namespace { |
| 25 | 25 |
| 26 // A views::SliderListener that tracks simple event call history. | 26 // A views::SliderListener that tracks simple event call history. |
| 27 class TestSliderListener : public views::SliderListener { | 27 class TestSliderListener : public views::SliderListener { |
| 28 public: | 28 public: |
| 29 TestSliderListener(); | 29 TestSliderListener(); |
| 30 virtual ~TestSliderListener(); | 30 ~TestSliderListener() override; |
| 31 | 31 |
| 32 int last_event_epoch() { | 32 int last_event_epoch() { |
| 33 return last_event_epoch_; | 33 return last_event_epoch_; |
| 34 } | 34 } |
| 35 | 35 |
| 36 int last_drag_started_epoch() { | 36 int last_drag_started_epoch() { |
| 37 return last_drag_started_epoch_; | 37 return last_drag_started_epoch_; |
| 38 } | 38 } |
| 39 | 39 |
| 40 int last_drag_ended_epoch() { | 40 int last_drag_ended_epoch() { |
| 41 return last_drag_ended_epoch_; | 41 return last_drag_ended_epoch_; |
| 42 } | 42 } |
| 43 | 43 |
| 44 views::Slider* last_drag_started_sender() { | 44 views::Slider* last_drag_started_sender() { |
| 45 return last_drag_started_sender_; | 45 return last_drag_started_sender_; |
| 46 } | 46 } |
| 47 | 47 |
| 48 views::Slider* last_drag_ended_sender() { | 48 views::Slider* last_drag_ended_sender() { |
| 49 return last_drag_ended_sender_; | 49 return last_drag_ended_sender_; |
| 50 } | 50 } |
| 51 | 51 |
| 52 // Resets the state of this as if it were newly created. | 52 // Resets the state of this as if it were newly created. |
| 53 virtual void ResetCallHistory(); | 53 virtual void ResetCallHistory(); |
| 54 | 54 |
| 55 // views::SliderListener: | 55 // views::SliderListener: |
| 56 virtual void SliderValueChanged(views::Slider* sender, | 56 void SliderValueChanged(views::Slider* sender, |
| 57 float value, | 57 float value, |
| 58 float old_value, | 58 float old_value, |
| 59 views::SliderChangeReason reason) override; | 59 views::SliderChangeReason reason) override; |
| 60 virtual void SliderDragStarted(views::Slider* sender) override; | 60 void SliderDragStarted(views::Slider* sender) override; |
| 61 virtual void SliderDragEnded(views::Slider* sender) override; | 61 void SliderDragEnded(views::Slider* sender) override; |
| 62 | 62 |
| 63 private: | 63 private: |
| 64 // The epoch of the last event. | 64 // The epoch of the last event. |
| 65 int last_event_epoch_; | 65 int last_event_epoch_; |
| 66 // The epoch of the last time SliderDragStarted was called. | 66 // The epoch of the last time SliderDragStarted was called. |
| 67 int last_drag_started_epoch_; | 67 int last_drag_started_epoch_; |
| 68 // The epoch of the last time SliderDragEnded was called. | 68 // The epoch of the last time SliderDragEnded was called. |
| 69 int last_drag_ended_epoch_; | 69 int last_drag_ended_epoch_; |
| 70 // The sender from the last SliderDragStarted call. | 70 // The sender from the last SliderDragStarted call. |
| 71 views::Slider* last_drag_started_sender_; | 71 views::Slider* last_drag_started_sender_; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 } | 114 } |
| 115 | 115 |
| 116 } // namespace | 116 } // namespace |
| 117 | 117 |
| 118 namespace views { | 118 namespace views { |
| 119 | 119 |
| 120 // Base test fixture for Slider tests. | 120 // Base test fixture for Slider tests. |
| 121 class SliderTest : public views::ViewsTestBase { | 121 class SliderTest : public views::ViewsTestBase { |
| 122 public: | 122 public: |
| 123 explicit SliderTest(Slider::Orientation orientation); | 123 explicit SliderTest(Slider::Orientation orientation); |
| 124 virtual ~SliderTest(); | 124 ~SliderTest() override; |
| 125 | 125 |
| 126 protected: | 126 protected: |
| 127 Slider* slider() { | 127 Slider* slider() { |
| 128 return slider_; | 128 return slider_; |
| 129 } | 129 } |
| 130 | 130 |
| 131 TestSliderListener& slider_listener() { | 131 TestSliderListener& slider_listener() { |
| 132 return slider_listener_; | 132 return slider_listener_; |
| 133 } | 133 } |
| 134 | 134 |
| 135 int max_x() { | 135 int max_x() { |
| 136 return max_x_; | 136 return max_x_; |
| 137 } | 137 } |
| 138 | 138 |
| 139 int max_y() { | 139 int max_y() { |
| 140 return max_y_; | 140 return max_y_; |
| 141 } | 141 } |
| 142 | 142 |
| 143 virtual void ClickAt(int x, int y); | 143 virtual void ClickAt(int x, int y); |
| 144 | 144 |
| 145 // testing::Test: | 145 // testing::Test: |
| 146 virtual void SetUp() override; | 146 void SetUp() override; |
| 147 virtual void TearDown() override; | 147 void TearDown() override; |
| 148 | 148 |
| 149 ui::test::EventGenerator* event_generator() { | 149 ui::test::EventGenerator* event_generator() { |
| 150 return event_generator_.get(); | 150 return event_generator_.get(); |
| 151 } | 151 } |
| 152 | 152 |
| 153 private: | 153 private: |
| 154 // The Slider's orientation | 154 // The Slider's orientation |
| 155 Slider::Orientation orientation_; | 155 Slider::Orientation orientation_; |
| 156 // The Slider to be tested. | 156 // The Slider to be tested. |
| 157 Slider* slider_; | 157 Slider* slider_; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 void SliderTest::ClickAt(int x, int y) { | 219 void SliderTest::ClickAt(int x, int y) { |
| 220 gfx::Point point(x, y); | 220 gfx::Point point(x, y); |
| 221 event_generator_->MoveMouseTo(point); | 221 event_generator_->MoveMouseTo(point); |
| 222 event_generator_->ClickLeftButton(); | 222 event_generator_->ClickLeftButton(); |
| 223 } | 223 } |
| 224 | 224 |
| 225 // Test fixture for horizontally oriented slider tests. | 225 // Test fixture for horizontally oriented slider tests. |
| 226 class HorizontalSliderTest : public SliderTest { | 226 class HorizontalSliderTest : public SliderTest { |
| 227 public: | 227 public: |
| 228 HorizontalSliderTest(); | 228 HorizontalSliderTest(); |
| 229 virtual ~HorizontalSliderTest(); | 229 ~HorizontalSliderTest() override; |
| 230 | 230 |
| 231 private: | 231 private: |
| 232 DISALLOW_COPY_AND_ASSIGN(HorizontalSliderTest); | 232 DISALLOW_COPY_AND_ASSIGN(HorizontalSliderTest); |
| 233 }; | 233 }; |
| 234 | 234 |
| 235 HorizontalSliderTest::HorizontalSliderTest() | 235 HorizontalSliderTest::HorizontalSliderTest() |
| 236 : SliderTest(Slider::HORIZONTAL) { | 236 : SliderTest(Slider::HORIZONTAL) { |
| 237 } | 237 } |
| 238 | 238 |
| 239 HorizontalSliderTest::~HorizontalSliderTest() { | 239 HorizontalSliderTest::~HorizontalSliderTest() { |
| 240 } | 240 } |
| 241 | 241 |
| 242 // Test fixture for vertically oriented slider tests. | 242 // Test fixture for vertically oriented slider tests. |
| 243 class VerticalSliderTest : public SliderTest { | 243 class VerticalSliderTest : public SliderTest { |
| 244 public: | 244 public: |
| 245 VerticalSliderTest(); | 245 VerticalSliderTest(); |
| 246 virtual ~VerticalSliderTest(); | 246 ~VerticalSliderTest() override; |
| 247 | 247 |
| 248 private: | 248 private: |
| 249 DISALLOW_COPY_AND_ASSIGN(VerticalSliderTest); | 249 DISALLOW_COPY_AND_ASSIGN(VerticalSliderTest); |
| 250 }; | 250 }; |
| 251 | 251 |
| 252 VerticalSliderTest::VerticalSliderTest() | 252 VerticalSliderTest::VerticalSliderTest() |
| 253 : SliderTest(Slider::VERTICAL) { | 253 : SliderTest(Slider::VERTICAL) { |
| 254 } | 254 } |
| 255 | 255 |
| 256 VerticalSliderTest::~VerticalSliderTest() { | 256 VerticalSliderTest::~VerticalSliderTest() { |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 2 /* move_x */, 0 /* move_y */); | 373 2 /* move_x */, 0 /* move_y */); |
| 374 | 374 |
| 375 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); | 375 EXPECT_EQ(1, slider_listener().last_drag_started_epoch()); |
| 376 EXPECT_GT(slider_listener().last_drag_ended_epoch(), | 376 EXPECT_GT(slider_listener().last_drag_ended_epoch(), |
| 377 slider_listener().last_drag_started_epoch()); | 377 slider_listener().last_drag_started_epoch()); |
| 378 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); | 378 EXPECT_EQ(slider(), slider_listener().last_drag_started_sender()); |
| 379 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); | 379 EXPECT_EQ(slider(), slider_listener().last_drag_ended_sender()); |
| 380 } | 380 } |
| 381 | 381 |
| 382 } // namespace views | 382 } // namespace views |
| OLD | NEW |