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

Side by Side Diff: athena/home/home_card_gesture_manager_unittest.cc

Issue 529813002: Simplify HomeCardGestureManager::UpdateScrollState() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 | « athena/home/home_card_gesture_manager.cc ('k') | athena/home/home_card_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "athena/home/home_card_gesture_manager.h" 5 #include "athena/home/home_card_gesture_manager.h"
6 6
7 #include "athena/home/home_card_constants.h" 7 #include "athena/home/home_card_constants.h"
8 #include "athena/home/public/home_card.h" 8 #include "athena/home/public/home_card.h"
9 #include "athena/test/athena_test_base.h" 9 #include "athena/test/athena_test_base.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 30 matching lines...) Expand all
41 int GetProgressCountAndReset() { 41 int GetProgressCountAndReset() {
42 int result = progress_count_; 42 int result = progress_count_;
43 progress_count_ = 0; 43 progress_count_ = 0;
44 return result; 44 return result;
45 } 45 }
46 46
47 // Process a gesture event for our use case. 47 // Process a gesture event for our use case.
48 bool ProcessGestureEvent(ui::EventType type, int y) { 48 bool ProcessGestureEvent(ui::EventType type, int y) {
49 ui::GestureEvent event(0, y, ui::EF_NONE, base::TimeDelta(), 49 ui::GestureEvent event(0, y, ui::EF_NONE, base::TimeDelta(),
50 ui::GestureEventDetails(type, 0, (y - last_y_))); 50 ui::GestureEventDetails(type, 0, (y - last_y_)));
51 // Assumes the initial location is based on minimized height.
52 if (type == ui::ET_GESTURE_SCROLL_BEGIN) { 51 if (type == ui::ET_GESTURE_SCROLL_BEGIN) {
52 // Compute the position that the home card would have wrt to the top of
53 // the screen if the screen had screen_bounds().
54 HomeCard::State state = HomeCard::Get()->GetState();
55 int home_card_top = 0;
56 if (state == HomeCard::VISIBLE_BOTTOM)
57 home_card_top = screen_bounds().height() - kHomeCardHeight;
58 else if (state == HomeCard::VISIBLE_MINIMIZED)
59 home_card_top = screen_bounds().height() - kHomeCardMinimizedHeight;
60
53 gfx::Point location = event.location(); 61 gfx::Point location = event.location();
54 location.set_y( 62 location.set_y(location.y() - home_card_top);
55 location.y() - (screen_bounds().bottom() - kHomeCardMinimizedHeight));
56 event.set_location(location); 63 event.set_location(location);
57 } 64 }
58 gesture_manager_->ProcessGestureEvent(&event); 65 gesture_manager_->ProcessGestureEvent(&event);
59 last_y_ = y; 66 last_y_ = y;
60 return event.handled(); 67 return event.handled();
61 } 68 }
62 void ProcessFlingGesture(float velocity) { 69 void ProcessFlingGesture(float velocity) {
63 ui::GestureEvent event(0, last_y_, ui::EF_NONE, base::TimeDelta(), 70 ui::GestureEvent event(0, last_y_, ui::EF_NONE, base::TimeDelta(),
64 ui::GestureEventDetails( 71 ui::GestureEventDetails(
65 ui::ET_SCROLL_FLING_START, 0, velocity)); 72 ui::ET_SCROLL_FLING_START, 0, velocity));
(...skipping 27 matching lines...) Expand all
93 100
94 int last_y_; 101 int last_y_;
95 int progress_count_; 102 int progress_count_;
96 int end_count_; 103 int end_count_;
97 scoped_ptr<HomeCardGestureManager> gesture_manager_; 104 scoped_ptr<HomeCardGestureManager> gesture_manager_;
98 105
99 DISALLOW_COPY_AND_ASSIGN(HomeCardGestureManagerTest); 106 DISALLOW_COPY_AND_ASSIGN(HomeCardGestureManagerTest);
100 }; 107 };
101 108
102 TEST_F(HomeCardGestureManagerTest, Basic) { 109 TEST_F(HomeCardGestureManagerTest, Basic) {
110 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState());
111
103 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); 112 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020));
104 EXPECT_EQ(0, GetEndCountAndReset()); 113 EXPECT_EQ(0, GetEndCountAndReset());
105 EXPECT_EQ(0, GetProgressCountAndReset()); 114 EXPECT_EQ(0, GetProgressCountAndReset());
106 115
107 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1019); 116 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1019);
108 EXPECT_EQ(1, GetProgressCountAndReset()); 117 EXPECT_EQ(1, GetProgressCountAndReset());
109 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_from_state_); 118 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_from_state_);
110 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_); 119 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_);
111 EXPECT_GT(1.0f, last_progress_); 120 EXPECT_GT(1.0f, last_progress_);
112 121
122 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1020);
123 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1022);
124 EXPECT_EQ(2, GetProgressCountAndReset());
125 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_);
126 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_to_state_);
127 EXPECT_EQ(1.0f, last_progress_);
128
113 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); 129 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010);
114 float progress_1010 = last_progress_; 130 float progress_1010 = last_progress_;
115 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1008); 131 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1008);
116 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1000); 132 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1000);
117 EXPECT_EQ(3, GetProgressCountAndReset()); 133 EXPECT_EQ(3, GetProgressCountAndReset());
118 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_from_state_); 134 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_from_state_);
119 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_); 135 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_);
120 EXPECT_LT(progress_1010, last_progress_); 136 EXPECT_LT(progress_1010, last_progress_);
121 137
122 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 900); 138 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 900);
123 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800); 139 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800);
124 EXPECT_EQ(2, GetProgressCountAndReset()); 140 EXPECT_EQ(2, GetProgressCountAndReset());
125 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); 141 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_);
126 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_); 142 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_);
127 float progress_800 = last_progress_; 143 float progress_800 = last_progress_;
128 EXPECT_GT(1.0f, last_progress_); 144 EXPECT_GT(1.0f, last_progress_);
129 EXPECT_LT(0.0f, last_progress_); 145 EXPECT_LT(0.0f, last_progress_);
130 146
131 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 790); 147 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 790);
132 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); 148 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_);
133 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_); 149 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_);
134 EXPECT_LT(progress_800, last_progress_); 150 EXPECT_LT(progress_800, last_progress_);
135 151
136 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 810); 152 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 810);
137 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_from_state_); 153 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_);
138 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_); 154 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_);
139 EXPECT_GT(progress_800, (1.0f - last_progress_)); 155 EXPECT_GT(progress_800, last_progress_);
140 156
141 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 810)); 157 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 810));
142 EXPECT_EQ(1, GetEndCountAndReset()); 158 EXPECT_EQ(1, GetEndCountAndReset());
143 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); 159 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_);
144 } 160 }
145 161
162 // Test gesture progress when the gesture is initiated when the home card is in
163 // the centered state.
164 TEST_F(HomeCardGestureManagerTest, StartCentered) {
165 HomeCard::Get()->SetState(HomeCard::VISIBLE_CENTERED);
166
167 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 20));
168
169 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 10);
170 EXPECT_EQ(1, GetProgressCountAndReset());
171 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_);
172 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_);
173 EXPECT_EQ(1.0f, last_progress_);
174
175 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 900);
176 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 910);
177 EXPECT_EQ(2, GetProgressCountAndReset());
178 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_);
179 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_);
180 EXPECT_GT(1.0f, last_progress_);
181 EXPECT_LT(0.0f, last_progress_);
182
183 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 1000));
184 EXPECT_EQ(1, GetEndCountAndReset());
185 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_);
186 }
187
146 TEST_F(HomeCardGestureManagerTest, FlingUpAtEnd) { 188 TEST_F(HomeCardGestureManagerTest, FlingUpAtEnd) {
189 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState());
190
147 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); 191 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020));
148 EXPECT_EQ(0, GetEndCountAndReset()); 192 EXPECT_EQ(0, GetEndCountAndReset());
149 EXPECT_EQ(0, GetProgressCountAndReset()); 193 EXPECT_EQ(0, GetProgressCountAndReset());
150 194
151 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); 195 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010);
152 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800); 196 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800);
153 ProcessFlingGesture(-150.0f); 197 ProcessFlingGesture(-150.0f);
154 EXPECT_EQ(1, GetEndCountAndReset()); 198 EXPECT_EQ(1, GetEndCountAndReset());
155 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, final_state_); 199 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, final_state_);
156 } 200 }
157 201
158 TEST_F(HomeCardGestureManagerTest, FlingDownAtEnd) { 202 TEST_F(HomeCardGestureManagerTest, FlingDownAtEnd) {
203 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState());
204
159 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); 205 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020));
160 EXPECT_EQ(0, GetEndCountAndReset()); 206 EXPECT_EQ(0, GetEndCountAndReset());
161 EXPECT_EQ(0, GetProgressCountAndReset()); 207 EXPECT_EQ(0, GetProgressCountAndReset());
162 208
163 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); 209 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010);
164 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800); 210 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800);
165 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 200); 211 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 200);
166 ProcessFlingGesture(150.0f); 212 ProcessFlingGesture(150.0f);
167 EXPECT_EQ(1, GetEndCountAndReset()); 213 EXPECT_EQ(1, GetEndCountAndReset());
168 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); 214 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_);
169 } 215 }
170 216
171 TEST_F(HomeCardGestureManagerTest, WeakFling) { 217 TEST_F(HomeCardGestureManagerTest, WeakFling) {
218 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState());
219
172 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); 220 EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020));
173 EXPECT_EQ(0, GetEndCountAndReset()); 221 EXPECT_EQ(0, GetEndCountAndReset());
174 EXPECT_EQ(0, GetProgressCountAndReset()); 222 EXPECT_EQ(0, GetProgressCountAndReset());
175 223
176 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); 224 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010);
177 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800); 225 ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800);
178 ProcessFlingGesture(-30.0f); 226 ProcessFlingGesture(-30.0f);
179 EXPECT_EQ(1, GetEndCountAndReset()); 227 EXPECT_EQ(1, GetEndCountAndReset());
180 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); 228 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_);
181 } 229 }
182 230
183 } // namespace athena 231 } // namespace athena
OLDNEW
« no previous file with comments | « athena/home/home_card_gesture_manager.cc ('k') | athena/home/home_card_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698