| OLD | NEW |
| 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 Loading... |
| 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 |
| OLD | NEW |