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

Side by Side Diff: ui/views/animation/ink_drop_ripple_unittest.cc

Issue 2340993002: Tweaks to "Allow InkDropRipple to co-exist with highlight or not exist at all." (Closed)
Patch Set: Fixed InkDropImplTest.HighlightCanExistWithoutRipple. Created 4 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/animation/ink_drop_ripple.h" 5 #include "ui/views/animation/ink_drop_ripple.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "ui/gfx/geometry/size.h" 11 #include "ui/gfx/geometry/size.h"
12 #include "ui/views/animation/flood_fill_ink_drop_ripple.h" 12 #include "ui/views/animation/flood_fill_ink_drop_ripple.h"
13 #include "ui/views/animation/ink_drop_ripple_observer.h" 13 #include "ui/views/animation/ink_drop_ripple_observer.h"
14 #include "ui/views/animation/ink_drop_state.h" 14 #include "ui/views/animation/ink_drop_state.h"
15 #include "ui/views/animation/square_ink_drop_ripple.h" 15 #include "ui/views/animation/square_ink_drop_ripple.h"
16 #include "ui/views/animation/test/empty_ink_drop_ripple_test_api.h"
16 #include "ui/views/animation/test/flood_fill_ink_drop_ripple_test_api.h" 17 #include "ui/views/animation/test/flood_fill_ink_drop_ripple_test_api.h"
17 #include "ui/views/animation/test/ink_drop_ripple_test_api.h" 18 #include "ui/views/animation/test/ink_drop_ripple_test_api.h"
18 #include "ui/views/animation/test/square_ink_drop_ripple_test_api.h" 19 #include "ui/views/animation/test/square_ink_drop_ripple_test_api.h"
19 #include "ui/views/animation/test/test_ink_drop_ripple_observer.h" 20 #include "ui/views/animation/test/test_ink_drop_ripple_observer.h"
20 21
21 namespace views { 22 namespace views {
22 namespace test { 23 namespace test {
23 24
24 const float kVisibleOpacity = 0.175f; 25 const float kVisibleOpacity = 0.175f;
25 26
26 // Represents all the derivatives of the InkDropRipple class. To be used with 27 // Represents all the derivatives of the InkDropRipple class. To be used with
27 // the InkDropRippleTest fixture to test all derviatives. 28 // the InkDropRippleTest fixture to test all derviatives.
28 enum InkDropRippleTestTypes { 29 enum InkDropRippleTestTypes {
29 SQUARE_INK_DROP_RIPPLE, 30 SQUARE_INK_DROP_RIPPLE,
30 FLOOD_FILL_INK_DROP_RIPPLE 31 FLOOD_FILL_INK_DROP_RIPPLE,
32 EMPTY_INK_DROP_RIPPLE,
31 }; 33 };
32 34
33 // Test fixture for all InkDropRipple class derivatives. 35 // Test fixture for all InkDropRipple class derivatives.
34 // 36 //
35 // To add a new derivative: 37 // To add a new derivative:
36 // 1. Add a value to the InkDropRippleTestTypes enum. 38 // 1. Add a value to the InkDropRippleTestTypes enum.
37 // 2. Implement set up and tear down code for the new enum value in 39 // 2. Implement set up and tear down code for the new enum value in
38 // InkDropRippleTest() and 40 // InkDropRippleTest() and ~InkDropRippleTest().
39 // ~InkDropRippleTest(). 41 // 3a. If the new InkDropRipple type has animations with a duration then add
40 // 3. Add the new enum value to the INSTANTIATE_TEST_CASE_P) Values list. 42 // the new enum value to the INSTANTIATE_TEST_CASE_P(InkDropRippleTest)
43 // Values list.
44 // 3b. If the new InkDropRipple type doesn't have animations with a duration
45 // then add the new enum value to the
46 // INSTANTIATE_TEST_CASE_P(AnimationInkDropRippleTest) Values list.
41 class InkDropRippleTest 47 class InkDropRippleTest
42 : public testing::TestWithParam<InkDropRippleTestTypes> { 48 : public testing::TestWithParam<InkDropRippleTestTypes> {
43 public: 49 public:
44 InkDropRippleTest(); 50 InkDropRippleTest();
45 ~InkDropRippleTest() override; 51 ~InkDropRippleTest() override;
46 52
47 protected: 53 protected:
48 TestInkDropRippleObserver observer_; 54 TestInkDropRippleObserver observer_;
49 55
50 std::unique_ptr<InkDropRipple> ink_drop_ripple_; 56 std::unique_ptr<InkDropRipple> ink_drop_ripple_;
(...skipping 16 matching lines...) Expand all
67 } 73 }
68 case FLOOD_FILL_INK_DROP_RIPPLE: { 74 case FLOOD_FILL_INK_DROP_RIPPLE: {
69 FloodFillInkDropRipple* flood_fill_ink_drop_ripple = 75 FloodFillInkDropRipple* flood_fill_ink_drop_ripple =
70 new FloodFillInkDropRipple(gfx::Rect(0, 0, 10, 10), gfx::Point(), 76 new FloodFillInkDropRipple(gfx::Rect(0, 0, 10, 10), gfx::Point(),
71 SK_ColorBLACK, kVisibleOpacity); 77 SK_ColorBLACK, kVisibleOpacity);
72 ink_drop_ripple_.reset(flood_fill_ink_drop_ripple); 78 ink_drop_ripple_.reset(flood_fill_ink_drop_ripple);
73 test_api_.reset( 79 test_api_.reset(
74 new FloodFillInkDropRippleTestApi(flood_fill_ink_drop_ripple)); 80 new FloodFillInkDropRippleTestApi(flood_fill_ink_drop_ripple));
75 break; 81 break;
76 } 82 }
83 case EMPTY_INK_DROP_RIPPLE:
84 EmptyInkDropRipple* empty_ink_drop_ripple = new EmptyInkDropRipple();
85 ink_drop_ripple_.reset(empty_ink_drop_ripple);
86 test_api_.reset(new EmptyInkDropRippleTestApi(empty_ink_drop_ripple));
87 break;
77 } 88 }
78 ink_drop_ripple_->set_observer(&observer_); 89 ink_drop_ripple_->set_observer(&observer_);
79 observer_.set_ink_drop_ripple(ink_drop_ripple_.get()); 90 observer_.set_ink_drop_ripple(ink_drop_ripple_.get());
80 test_api_->SetDisableAnimationTimers(true); 91 test_api_->SetDisableAnimationTimers(true);
81 } 92 }
82 93
83 InkDropRippleTest::~InkDropRippleTest() {} 94 InkDropRippleTest::~InkDropRippleTest() {}
84 95
85 // Note: First argument is optional and intentionally left blank. 96 // Note: First argument is optional and intentionally left blank.
86 // (it's a prefix for the generated test cases) 97 // (it's a prefix for the generated test cases)
87 INSTANTIATE_TEST_CASE_P(, 98 INSTANTIATE_TEST_CASE_P(,
88 InkDropRippleTest, 99 InkDropRippleTest,
89 testing::Values(SQUARE_INK_DROP_RIPPLE, 100 testing::Values(SQUARE_INK_DROP_RIPPLE,
101 FLOOD_FILL_INK_DROP_RIPPLE,
102 EMPTY_INK_DROP_RIPPLE));
103
104 // Provides a test fixture scope for all InkDropRipple flavors that have
105 // animations with a duration.
106 using AnimationInkDropRippleTest = InkDropRippleTest;
107
108 // Note: First argument is optional and intentionally left blank.
109 // (it's a prefix for the generated test cases)
110 INSTANTIATE_TEST_CASE_P(,
111 AnimationInkDropRippleTest,
112 testing::Values(SQUARE_INK_DROP_RIPPLE,
90 FLOOD_FILL_INK_DROP_RIPPLE)); 113 FLOOD_FILL_INK_DROP_RIPPLE));
91 114
92 TEST_P(InkDropRippleTest, InitialStateAfterConstruction) { 115 TEST_P(InkDropRippleTest, InitialStateAfterConstruction) {
93 EXPECT_EQ(views::InkDropState::HIDDEN, 116 EXPECT_EQ(views::InkDropState::HIDDEN,
94 ink_drop_ripple_->target_ink_drop_state()); 117 ink_drop_ripple_->target_ink_drop_state());
95 } 118 }
96 119
97 // Verify no animations are used when animating from HIDDEN to HIDDEN. 120 // Verify no animations are used when animating from HIDDEN to HIDDEN.
98 TEST_P(InkDropRippleTest, AnimateToHiddenFromInvisibleState) { 121 TEST_P(AnimationInkDropRippleTest, AnimateToHiddenFromInvisibleState) {
99 EXPECT_EQ(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state()); 122 EXPECT_EQ(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state());
100 123
101 ink_drop_ripple_->AnimateToState(InkDropState::HIDDEN); 124 ink_drop_ripple_->AnimateToState(InkDropState::HIDDEN);
102 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 125 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
103 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 126 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
104 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity()); 127 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity());
105 EXPECT_FALSE(ink_drop_ripple_->IsVisible()); 128 EXPECT_FALSE(ink_drop_ripple_->IsVisible());
106 } 129 }
107 130
108 TEST_P(InkDropRippleTest, AnimateToHiddenFromVisibleState) { 131 TEST_P(AnimationInkDropRippleTest, AnimateToHiddenFromVisibleState) {
109 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING); 132 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING);
110 test_api_->CompleteAnimations(); 133 test_api_->CompleteAnimations();
111 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 134 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
112 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 135 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
113 136
114 EXPECT_NE(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state()); 137 EXPECT_NE(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state());
115 138
116 ink_drop_ripple_->AnimateToState(InkDropState::HIDDEN); 139 ink_drop_ripple_->AnimateToState(InkDropState::HIDDEN);
117 test_api_->CompleteAnimations(); 140 test_api_->CompleteAnimations();
118 141
119 EXPECT_EQ(3, observer_.last_animation_started_ordinal()); 142 EXPECT_EQ(3, observer_.last_animation_started_ordinal());
120 EXPECT_EQ(4, observer_.last_animation_ended_ordinal()); 143 EXPECT_EQ(4, observer_.last_animation_ended_ordinal());
121 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity()); 144 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity());
122 } 145 }
123 146
124 TEST_P(InkDropRippleTest, ActionPendingOpacity) { 147 TEST_P(AnimationInkDropRippleTest, ActionPendingOpacity) {
125 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 148 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
126 test_api_->CompleteAnimations(); 149 test_api_->CompleteAnimations();
127 150
128 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity()); 151 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity());
129 } 152 }
130 153
131 TEST_P(InkDropRippleTest, QuickActionOpacity) { 154 TEST_P(AnimationInkDropRippleTest, QuickActionOpacity) {
132 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 155 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
133 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_TRIGGERED); 156 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_TRIGGERED);
134 test_api_->CompleteAnimations(); 157 test_api_->CompleteAnimations();
135 158
136 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity()); 159 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity());
137 } 160 }
138 161
139 TEST_P(InkDropRippleTest, SlowActionPendingOpacity) { 162 TEST_P(AnimationInkDropRippleTest, SlowActionPendingOpacity) {
140 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 163 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
141 ink_drop_ripple_->AnimateToState( 164 ink_drop_ripple_->AnimateToState(
142 views::InkDropState::ALTERNATE_ACTION_PENDING); 165 views::InkDropState::ALTERNATE_ACTION_PENDING);
143 test_api_->CompleteAnimations(); 166 test_api_->CompleteAnimations();
144 167
145 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity()); 168 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity());
146 } 169 }
147 170
148 TEST_P(InkDropRippleTest, SlowActionOpacity) { 171 TEST_P(AnimationInkDropRippleTest, SlowActionOpacity) {
149 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 172 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
150 ink_drop_ripple_->AnimateToState( 173 ink_drop_ripple_->AnimateToState(
151 views::InkDropState::ALTERNATE_ACTION_PENDING); 174 views::InkDropState::ALTERNATE_ACTION_PENDING);
152 ink_drop_ripple_->AnimateToState( 175 ink_drop_ripple_->AnimateToState(
153 views::InkDropState::ALTERNATE_ACTION_TRIGGERED); 176 views::InkDropState::ALTERNATE_ACTION_TRIGGERED);
154 test_api_->CompleteAnimations(); 177 test_api_->CompleteAnimations();
155 178
156 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity()); 179 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity());
157 } 180 }
158 181
159 TEST_P(InkDropRippleTest, ActivatedOpacity) { 182 TEST_P(AnimationInkDropRippleTest, ActivatedOpacity) {
160 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTIVATED); 183 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTIVATED);
161 test_api_->CompleteAnimations(); 184 test_api_->CompleteAnimations();
162 185
163 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity()); 186 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity());
164 } 187 }
165 188
166 TEST_P(InkDropRippleTest, DeactivatedOpacity) { 189 TEST_P(AnimationInkDropRippleTest, DeactivatedOpacity) {
167 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTIVATED); 190 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTIVATED);
168 ink_drop_ripple_->AnimateToState(views::InkDropState::DEACTIVATED); 191 ink_drop_ripple_->AnimateToState(views::InkDropState::DEACTIVATED);
169 test_api_->CompleteAnimations(); 192 test_api_->CompleteAnimations();
170 193
171 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity()); 194 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity());
172 } 195 }
173 196
174 // Verify animations are aborted during deletion and the 197 // Verify animations are aborted during deletion and the
175 // InkDropRippleObservers are notified. 198 // InkDropRippleObservers are notified.
176 TEST_P(InkDropRippleTest, AnimationsAbortedDuringDeletion) { 199 TEST_P(AnimationInkDropRippleTest, AnimationsAbortedDuringDeletion) {
177 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 200 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
178 ink_drop_ripple_.reset(); 201 ink_drop_ripple_.reset();
179 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 202 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
180 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 203 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
181 EXPECT_EQ(views::InkDropState::ACTION_PENDING, 204 EXPECT_EQ(views::InkDropState::ACTION_PENDING,
182 observer_.last_animation_ended_context()); 205 observer_.last_animation_ended_context());
183 EXPECT_EQ(InkDropAnimationEndedReason::PRE_EMPTED, 206 EXPECT_EQ(InkDropAnimationEndedReason::PRE_EMPTED,
184 observer_.last_animation_ended_reason()); 207 observer_.last_animation_ended_reason());
185 } 208 }
186 209
187 TEST_P(InkDropRippleTest, VerifyObserversAreNotified) { 210 TEST_P(InkDropRippleTest, VerifyObserversAreNotified) {
188 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING); 211 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING);
189 212
213 test_api_->CompleteAnimations();
214
215 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
216 EXPECT_EQ(InkDropState::ACTION_PENDING,
217 observer_.last_animation_started_context());
218
219 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
220 EXPECT_EQ(InkDropState::ACTION_PENDING,
221 observer_.last_animation_ended_context());
222 }
223
224 TEST_P(AnimationInkDropRippleTest,
225 VerifyAnimationEndedIsNotifiedAfterAnimations) {
226 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING);
227
190 EXPECT_TRUE(test_api_->HasActiveAnimations()); 228 EXPECT_TRUE(test_api_->HasActiveAnimations());
191 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 229 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
192 EXPECT_TRUE(observer_.AnimationHasNotEnded()); 230 EXPECT_TRUE(observer_.AnimationHasNotEnded());
193 EXPECT_EQ(InkDropState::ACTION_PENDING, 231 EXPECT_EQ(InkDropState::ACTION_PENDING,
194 observer_.last_animation_started_context()); 232 observer_.last_animation_started_context());
195 233
196 test_api_->CompleteAnimations(); 234 test_api_->CompleteAnimations();
197 235
198 EXPECT_FALSE(test_api_->HasActiveAnimations()); 236 EXPECT_FALSE(test_api_->HasActiveAnimations());
199 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 237 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
200 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 238 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
201 EXPECT_EQ(InkDropState::ACTION_PENDING, 239 EXPECT_EQ(InkDropState::ACTION_PENDING,
202 observer_.last_animation_ended_context()); 240 observer_.last_animation_ended_context());
203 } 241 }
204 242
205 TEST_P(InkDropRippleTest, VerifyObserversAreNotifiedOfSuccessfulAnimations) { 243 TEST_P(InkDropRippleTest, VerifyObserversAreNotifiedOfSuccessfulAnimations) {
206 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING); 244 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING);
207 test_api_->CompleteAnimations(); 245 test_api_->CompleteAnimations();
208 246
209 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 247 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
210 EXPECT_EQ(InkDropAnimationEndedReason::SUCCESS, 248 EXPECT_EQ(InkDropAnimationEndedReason::SUCCESS,
211 observer_.last_animation_ended_reason()); 249 observer_.last_animation_ended_reason());
212 } 250 }
213 251
214 TEST_P(InkDropRippleTest, VerifyObserversAreNotifiedOfPreemptedAnimations) { 252 TEST_P(AnimationInkDropRippleTest,
253 VerifyObserversAreNotifiedOfPreemptedAnimations) {
215 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING); 254 ink_drop_ripple_->AnimateToState(InkDropState::ACTION_PENDING);
216 ink_drop_ripple_->AnimateToState(InkDropState::ALTERNATE_ACTION_PENDING); 255 ink_drop_ripple_->AnimateToState(InkDropState::ALTERNATE_ACTION_PENDING);
217 256
218 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 257 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
219 EXPECT_EQ(InkDropAnimationEndedReason::PRE_EMPTED, 258 EXPECT_EQ(InkDropAnimationEndedReason::PRE_EMPTED,
220 observer_.last_animation_ended_reason()); 259 observer_.last_animation_ended_reason());
221 } 260 }
222 261
223 TEST_P(InkDropRippleTest, InkDropStatesPersistWhenCallingAnimateToState) { 262 TEST_P(InkDropRippleTest, InkDropStatesPersistWhenCallingAnimateToState) {
224 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 263 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
225 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTIVATED); 264 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTIVATED);
226 EXPECT_EQ(views::InkDropState::ACTIVATED, 265 EXPECT_EQ(views::InkDropState::ACTIVATED,
227 ink_drop_ripple_->target_ink_drop_state()); 266 ink_drop_ripple_->target_ink_drop_state());
228 } 267 }
229 268
230 TEST_P(InkDropRippleTest, HideImmediatelyWithoutActiveAnimations) { 269 TEST_P(AnimationInkDropRippleTest, HideImmediatelyWithoutActiveAnimations) {
231 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 270 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
232 test_api_->CompleteAnimations(); 271 test_api_->CompleteAnimations();
233 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 272 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
234 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 273 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
235 274
236 EXPECT_FALSE(test_api_->HasActiveAnimations()); 275 EXPECT_FALSE(test_api_->HasActiveAnimations());
237 EXPECT_NE(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state()); 276 EXPECT_NE(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state());
238 277
239 ink_drop_ripple_->HideImmediately(); 278 ink_drop_ripple_->HideImmediately();
240 279
241 EXPECT_FALSE(test_api_->HasActiveAnimations()); 280 EXPECT_FALSE(test_api_->HasActiveAnimations());
242 EXPECT_EQ(views::InkDropState::HIDDEN, 281 EXPECT_EQ(views::InkDropState::HIDDEN,
243 ink_drop_ripple_->target_ink_drop_state()); 282 ink_drop_ripple_->target_ink_drop_state());
244 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 283 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
245 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 284 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
246 285
247 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity()); 286 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity());
248 EXPECT_FALSE(ink_drop_ripple_->IsVisible()); 287 EXPECT_FALSE(ink_drop_ripple_->IsVisible());
249 } 288 }
250 289
251 // Verifies all active animations are aborted and the InkDropState is set to 290 // Verifies all active animations are aborted and the InkDropState is set to
252 // HIDDEN after invoking HideImmediately(). 291 // HIDDEN after invoking HideImmediately().
253 TEST_P(InkDropRippleTest, HideImmediatelyWithActiveAnimations) { 292 TEST_P(AnimationInkDropRippleTest, HideImmediatelyWithActiveAnimations) {
254 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 293 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
255 EXPECT_TRUE(test_api_->HasActiveAnimations()); 294 EXPECT_TRUE(test_api_->HasActiveAnimations());
256 EXPECT_NE(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state()); 295 EXPECT_NE(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state());
257 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 296 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
258 297
259 ink_drop_ripple_->HideImmediately(); 298 ink_drop_ripple_->HideImmediately();
260 299
261 EXPECT_FALSE(test_api_->HasActiveAnimations()); 300 EXPECT_FALSE(test_api_->HasActiveAnimations());
262 EXPECT_EQ(views::InkDropState::HIDDEN, 301 EXPECT_EQ(views::InkDropState::HIDDEN,
263 ink_drop_ripple_->target_ink_drop_state()); 302 ink_drop_ripple_->target_ink_drop_state());
264 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 303 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
265 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 304 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
266 EXPECT_EQ(InkDropState::ACTION_PENDING, 305 EXPECT_EQ(InkDropState::ACTION_PENDING,
267 observer_.last_animation_ended_context()); 306 observer_.last_animation_ended_context());
268 EXPECT_EQ(InkDropAnimationEndedReason::PRE_EMPTED, 307 EXPECT_EQ(InkDropAnimationEndedReason::PRE_EMPTED,
269 observer_.last_animation_ended_reason()); 308 observer_.last_animation_ended_reason());
270 309
271 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity()); 310 EXPECT_EQ(InkDropRipple::kHiddenOpacity, test_api_->GetCurrentOpacity());
272 EXPECT_FALSE(ink_drop_ripple_->IsVisible()); 311 EXPECT_FALSE(ink_drop_ripple_->IsVisible());
273 } 312 }
274 313
275 TEST_P(InkDropRippleTest, SnapToActivatedWithoutActiveAnimations) { 314 TEST_P(AnimationInkDropRippleTest, SnapToActivatedWithoutActiveAnimations) {
276 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 315 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
277 test_api_->CompleteAnimations(); 316 test_api_->CompleteAnimations();
278 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 317 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
279 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 318 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
280 319
281 EXPECT_FALSE(test_api_->HasActiveAnimations()); 320 EXPECT_FALSE(test_api_->HasActiveAnimations());
282 EXPECT_NE(InkDropState::ACTIVATED, ink_drop_ripple_->target_ink_drop_state()); 321 EXPECT_NE(InkDropState::ACTIVATED, ink_drop_ripple_->target_ink_drop_state());
283 322
284 ink_drop_ripple_->SnapToActivated(); 323 ink_drop_ripple_->SnapToActivated();
285 324
286 EXPECT_FALSE(test_api_->HasActiveAnimations()); 325 EXPECT_FALSE(test_api_->HasActiveAnimations());
287 EXPECT_EQ(views::InkDropState::ACTIVATED, 326 EXPECT_EQ(views::InkDropState::ACTIVATED,
288 ink_drop_ripple_->target_ink_drop_state()); 327 ink_drop_ripple_->target_ink_drop_state());
289 EXPECT_EQ(3, observer_.last_animation_started_ordinal()); 328 EXPECT_EQ(3, observer_.last_animation_started_ordinal());
290 EXPECT_EQ(4, observer_.last_animation_ended_ordinal()); 329 EXPECT_EQ(4, observer_.last_animation_ended_ordinal());
291 330
292 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity()); 331 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity());
293 EXPECT_TRUE(ink_drop_ripple_->IsVisible()); 332 EXPECT_TRUE(ink_drop_ripple_->IsVisible());
294 } 333 }
295 334
296 // Verifies all active animations are aborted and the InkDropState is set to 335 // Verifies all active animations are aborted and the InkDropState is set to
297 // ACTIVATED after invoking SnapToActivated(). 336 // ACTIVATED after invoking SnapToActivated().
298 TEST_P(InkDropRippleTest, SnapToActivatedWithActiveAnimations) { 337 TEST_P(AnimationInkDropRippleTest, SnapToActivatedWithActiveAnimations) {
299 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 338 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
300 EXPECT_TRUE(test_api_->HasActiveAnimations()); 339 EXPECT_TRUE(test_api_->HasActiveAnimations());
301 EXPECT_NE(InkDropState::ACTIVATED, ink_drop_ripple_->target_ink_drop_state()); 340 EXPECT_NE(InkDropState::ACTIVATED, ink_drop_ripple_->target_ink_drop_state());
302 EXPECT_EQ(1, observer_.last_animation_started_ordinal()); 341 EXPECT_EQ(1, observer_.last_animation_started_ordinal());
303 342
304 ink_drop_ripple_->SnapToActivated(); 343 ink_drop_ripple_->SnapToActivated();
305 344
306 EXPECT_FALSE(test_api_->HasActiveAnimations()); 345 EXPECT_FALSE(test_api_->HasActiveAnimations());
307 EXPECT_EQ(views::InkDropState::ACTIVATED, 346 EXPECT_EQ(views::InkDropState::ACTIVATED,
308 ink_drop_ripple_->target_ink_drop_state()); 347 ink_drop_ripple_->target_ink_drop_state());
309 EXPECT_EQ(3, observer_.last_animation_started_ordinal()); 348 EXPECT_EQ(3, observer_.last_animation_started_ordinal());
310 EXPECT_EQ(4, observer_.last_animation_ended_ordinal()); 349 EXPECT_EQ(4, observer_.last_animation_ended_ordinal());
311 EXPECT_EQ(InkDropState::ACTIVATED, observer_.last_animation_ended_context()); 350 EXPECT_EQ(InkDropState::ACTIVATED, observer_.last_animation_ended_context());
312 EXPECT_EQ(InkDropAnimationEndedReason::SUCCESS, 351 EXPECT_EQ(InkDropAnimationEndedReason::SUCCESS,
313 observer_.last_animation_ended_reason()); 352 observer_.last_animation_ended_reason());
314 353
315 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity()); 354 EXPECT_EQ(kVisibleOpacity, test_api_->GetCurrentOpacity());
316 EXPECT_TRUE(ink_drop_ripple_->IsVisible()); 355 EXPECT_TRUE(ink_drop_ripple_->IsVisible());
317 } 356 }
318 357
319 TEST_P(InkDropRippleTest, AnimateToVisibleFromHidden) { 358 TEST_P(AnimationInkDropRippleTest, AnimateToVisibleFromHidden) {
320 EXPECT_EQ(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state()); 359 EXPECT_EQ(InkDropState::HIDDEN, ink_drop_ripple_->target_ink_drop_state());
321 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 360 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
322 EXPECT_TRUE(ink_drop_ripple_->IsVisible()); 361 EXPECT_TRUE(ink_drop_ripple_->IsVisible());
323 } 362 }
324 363
325 // Verifies that the value of InkDropRipple::target_ink_drop_state() returns 364 // Verifies that the value of InkDropRipple::target_ink_drop_state() returns
326 // the most recent value passed to AnimateToState() when notifying observers 365 // the most recent value passed to AnimateToState() when notifying observers
327 // that an animation has started within the AnimateToState() function call. 366 // that an animation has started within the AnimateToState() function call.
328 TEST_P(InkDropRippleTest, TargetInkDropStateOnAnimationStarted) { 367 TEST_P(AnimationInkDropRippleTest, TargetInkDropStateOnAnimationStarted) {
329 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 368 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
330 ink_drop_ripple_->AnimateToState(views::InkDropState::HIDDEN); 369 ink_drop_ripple_->AnimateToState(views::InkDropState::HIDDEN);
331 370
332 EXPECT_EQ(3, observer_.last_animation_started_ordinal()); 371 EXPECT_EQ(3, observer_.last_animation_started_ordinal());
333 EXPECT_EQ(views::InkDropState::HIDDEN, 372 EXPECT_EQ(views::InkDropState::HIDDEN,
334 observer_.target_state_at_last_animation_started()); 373 observer_.target_state_at_last_animation_started());
335 } 374 }
336 375
337 // Verifies that the value of InkDropRipple::target_ink_drop_state() returns 376 // Verifies that the value of InkDropRipple::target_ink_drop_state() returns
338 // the most recent value passed to AnimateToState() when notifying observers 377 // the most recent value passed to AnimateToState() when notifying observers
339 // that an animation has ended within the AnimateToState() function call. 378 // that an animation has ended within the AnimateToState() function call.
340 TEST_P(InkDropRippleTest, TargetInkDropStateOnAnimationEnded) { 379 TEST_P(AnimationInkDropRippleTest, TargetInkDropStateOnAnimationEnded) {
341 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING); 380 ink_drop_ripple_->AnimateToState(views::InkDropState::ACTION_PENDING);
342 ink_drop_ripple_->AnimateToState(views::InkDropState::HIDDEN); 381 ink_drop_ripple_->AnimateToState(views::InkDropState::HIDDEN);
343 382
344 EXPECT_EQ(2, observer_.last_animation_ended_ordinal()); 383 EXPECT_EQ(2, observer_.last_animation_ended_ordinal());
345 EXPECT_EQ(views::InkDropState::HIDDEN, 384 EXPECT_EQ(views::InkDropState::HIDDEN,
346 observer_.target_state_at_last_animation_ended()); 385 observer_.target_state_at_last_animation_ended());
347 } 386 }
348 387
349 } // namespace test 388 } // namespace test
350 } // namespace views 389 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698