Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1390)

Side by Side Diff: ui/chromeos/touch_accessibility_enabler_unittest.cc

Issue 2808053004: Fire accessibilityPrivate events on two-finger hold gesture. (Closed)
Patch Set: Address feedback Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/chromeos/touch_accessibility_enabler.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/chromeos/touch_accessibility_enabler.h" 5 #include "ui/chromeos/touch_accessibility_enabler.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "ui/aura/test/aura_test_base.h" 10 #include "ui/aura/test/aura_test_base.h"
11 #include "ui/aura/window.h" 11 #include "ui/aura/window.h"
12 #include "ui/events/event.h" 12 #include "ui/events/event.h"
13 #include "ui/events/event_utils.h" 13 #include "ui/events/event_utils.h"
14 #include "ui/events/gestures/gesture_provider_aura.h" 14 #include "ui/events/gestures/gesture_provider_aura.h"
15 #include "ui/events/test/event_generator.h" 15 #include "ui/events/test/event_generator.h"
16 #include "ui/events/test/events_test_utils.h" 16 #include "ui/events/test/events_test_utils.h"
17 #include "ui/gfx/geometry/point.h" 17 #include "ui/gfx/geometry/point.h"
18 18
19 namespace ui { 19 namespace ui {
20 20
21 namespace { 21 namespace {
22 22
23 class MockTouchAccessibilityEnablerDelegate 23 class MockTouchAccessibilityEnablerDelegate
24 : public ui::TouchAccessibilityEnablerDelegate { 24 : public ui::TouchAccessibilityEnablerDelegate {
25 public: 25 public:
26 MockTouchAccessibilityEnablerDelegate() {} 26 MockTouchAccessibilityEnablerDelegate() {}
27 ~MockTouchAccessibilityEnablerDelegate() override {} 27 ~MockTouchAccessibilityEnablerDelegate() override {}
28 28
29 void OnTwoFingerTouchStart() override { started_ = true; }
30
31 void OnTwoFingerTouchStop() override { stopped_ = true; }
32
29 void PlaySpokenFeedbackToggleCountdown(int tick_count) override { 33 void PlaySpokenFeedbackToggleCountdown(int tick_count) override {
30 ++feedback_progress_sound_count_; 34 ++feedback_progress_sound_count_;
31 } 35 }
32 void ToggleSpokenFeedback() override { toggle_spoken_feedback_ = true; } 36 void ToggleSpokenFeedback() override { toggle_spoken_feedback_ = true; }
33 37
38 bool started() { return started_; }
39 bool stopped() { return stopped_; }
34 size_t feedback_progress_sound_count() const { 40 size_t feedback_progress_sound_count() const {
35 return feedback_progress_sound_count_; 41 return feedback_progress_sound_count_;
36 } 42 }
37 bool toggle_spoken_feedback() const { return toggle_spoken_feedback_; } 43 bool toggle_spoken_feedback() const { return toggle_spoken_feedback_; }
38 44
39 private: 45 private:
46 bool started_ = false;
47 bool stopped_ = false;
40 size_t feedback_progress_sound_count_ = 0; 48 size_t feedback_progress_sound_count_ = 0;
41 bool toggle_spoken_feedback_ = false; 49 bool toggle_spoken_feedback_ = false;
42 50
43 DISALLOW_COPY_AND_ASSIGN(MockTouchAccessibilityEnablerDelegate); 51 DISALLOW_COPY_AND_ASSIGN(MockTouchAccessibilityEnablerDelegate);
44 }; 52 };
45 53
46 class TouchAccessibilityEnablerTest : public aura::test::AuraTestBase { 54 class TouchAccessibilityEnablerTest : public aura::test::AuraTestBase {
47 public: 55 public:
48 TouchAccessibilityEnablerTest() {} 56 TouchAccessibilityEnablerTest() {}
49 ~TouchAccessibilityEnablerTest() override {} 57 ~TouchAccessibilityEnablerTest() override {}
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 TEST_F(TouchAccessibilityEnablerTest, TogglesSpokenFeedback) { 139 TEST_F(TouchAccessibilityEnablerTest, TogglesSpokenFeedback) {
132 EXPECT_TRUE(enabler_->IsInNoFingersDownForTesting()); 140 EXPECT_TRUE(enabler_->IsInNoFingersDownForTesting());
133 generator_->set_current_location(gfx::Point(11, 12)); 141 generator_->set_current_location(gfx::Point(11, 12));
134 generator_->PressTouchId(1); 142 generator_->PressTouchId(1);
135 143
136 generator_->set_current_location(gfx::Point(22, 34)); 144 generator_->set_current_location(gfx::Point(22, 34));
137 generator_->PressTouchId(2); 145 generator_->PressTouchId(2);
138 146
139 EXPECT_TRUE(enabler_->IsInTwoFingersDownForTesting()); 147 EXPECT_TRUE(enabler_->IsInTwoFingersDownForTesting());
140 EXPECT_FALSE(delegate_.toggle_spoken_feedback()); 148 EXPECT_FALSE(delegate_.toggle_spoken_feedback());
149 EXPECT_TRUE(delegate_.started());
150 EXPECT_FALSE(delegate_.stopped());
141 151
142 enabler_->TriggerOnTimerForTesting(); 152 enabler_->TriggerOnTimerForTesting();
143 EXPECT_FALSE(delegate_.toggle_spoken_feedback()); 153 EXPECT_FALSE(delegate_.toggle_spoken_feedback());
144 154
145 simulated_clock_->Advance(base::TimeDelta::FromMilliseconds(5000)); 155 simulated_clock_->Advance(base::TimeDelta::FromMilliseconds(5000));
146 enabler_->TriggerOnTimerForTesting(); 156 enabler_->TriggerOnTimerForTesting();
147 EXPECT_TRUE(delegate_.toggle_spoken_feedback()); 157 EXPECT_TRUE(delegate_.toggle_spoken_feedback());
158 EXPECT_TRUE(delegate_.started());
159 EXPECT_FALSE(delegate_.stopped());
148 } 160 }
149 161
150 TEST_F(TouchAccessibilityEnablerTest, ThreeFingersCancelsDetection) { 162 TEST_F(TouchAccessibilityEnablerTest, ThreeFingersCancelsDetection) {
151 EXPECT_TRUE(enabler_->IsInNoFingersDownForTesting()); 163 EXPECT_TRUE(enabler_->IsInNoFingersDownForTesting());
152 generator_->set_current_location(gfx::Point(11, 12)); 164 generator_->set_current_location(gfx::Point(11, 12));
153 generator_->PressTouchId(1); 165 generator_->PressTouchId(1);
154 166
155 generator_->set_current_location(gfx::Point(22, 34)); 167 generator_->set_current_location(gfx::Point(22, 34));
156 generator_->PressTouchId(2); 168 generator_->PressTouchId(2);
157 169
158 EXPECT_TRUE(enabler_->IsInTwoFingersDownForTesting()); 170 EXPECT_TRUE(enabler_->IsInTwoFingersDownForTesting());
171 EXPECT_TRUE(delegate_.started());
172 EXPECT_FALSE(delegate_.stopped());
159 173
160 generator_->set_current_location(gfx::Point(33, 56)); 174 generator_->set_current_location(gfx::Point(33, 56));
161 generator_->PressTouchId(3); 175 generator_->PressTouchId(3);
162 176
163 EXPECT_TRUE(enabler_->IsInWaitForNoFingersForTesting()); 177 EXPECT_TRUE(enabler_->IsInWaitForNoFingersForTesting());
178 EXPECT_TRUE(delegate_.started());
179 EXPECT_TRUE(delegate_.stopped());
164 } 180 }
165 181
166 TEST_F(TouchAccessibilityEnablerTest, MovingFingerPastSlopCancelsDetection) { 182 TEST_F(TouchAccessibilityEnablerTest, MovingFingerPastSlopCancelsDetection) {
167 EXPECT_TRUE(enabler_->IsInNoFingersDownForTesting()); 183 EXPECT_TRUE(enabler_->IsInNoFingersDownForTesting());
168 generator_->set_current_location(gfx::Point(11, 12)); 184 generator_->set_current_location(gfx::Point(11, 12));
169 generator_->PressTouch(); 185 generator_->PressTouch();
170 186
171 int slop = gesture_detector_config_.double_tap_slop; 187 int slop = gesture_detector_config_.double_tap_slop;
172 int half_slop = slop / 2; 188 int half_slop = slop / 2;
173 189
174 generator_->MoveTouch(gfx::Point(11 + half_slop, 12)); 190 generator_->MoveTouch(gfx::Point(11 + half_slop, 12));
175 EXPECT_TRUE(enabler_->IsInOneFingerDownForTesting()); 191 EXPECT_TRUE(enabler_->IsInOneFingerDownForTesting());
176 192
177 generator_->MoveTouch(gfx::Point(11 + slop + 1, 12)); 193 generator_->MoveTouch(gfx::Point(11 + slop + 1, 12));
178 EXPECT_TRUE(enabler_->IsInWaitForNoFingersForTesting()); 194 EXPECT_TRUE(enabler_->IsInWaitForNoFingersForTesting());
179 } 195 }
180 196
181 } // namespace ui 197 } // namespace ui
OLDNEW
« no previous file with comments | « ui/chromeos/touch_accessibility_enabler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698