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

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

Issue 2034963002: Rename InkDropHover to InkDropHighlight (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix gyp file Created 4 years, 6 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_impl.h" 5 #include "ui/views/animation/ink_drop_impl.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/test/test_simple_task_runner.h" 8 #include "base/test/test_simple_task_runner.h"
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "ui/views/animation/ink_drop_ripple.h" 11 #include "ui/views/animation/ink_drop_ripple.h"
12 #include "ui/views/animation/test/ink_drop_impl_test_api.h" 12 #include "ui/views/animation/test/ink_drop_impl_test_api.h"
13 #include "ui/views/animation/test/test_ink_drop_host.h" 13 #include "ui/views/animation/test/test_ink_drop_host.h"
14 14
15 namespace views { 15 namespace views {
16 16
17 // NOTE: The InkDropImpl class is also tested by the InkDropFactoryTest tests. 17 // NOTE: The InkDropImpl class is also tested by the InkDropFactoryTest tests.
18 class InkDropImplTest : public testing::Test { 18 class InkDropImplTest : public testing::Test {
19 public: 19 public:
20 InkDropImplTest(); 20 InkDropImplTest();
21 ~InkDropImplTest() override; 21 ~InkDropImplTest() override;
22 22
23 protected: 23 protected:
24 TestInkDropHost ink_drop_host_; 24 TestInkDropHost ink_drop_host_;
25 25
26 // The test target. 26 // The test target.
27 InkDropImpl ink_drop_; 27 InkDropImpl ink_drop_;
28 28
29 // Allows privileged access to the the |ink_drop_hover_|. 29 // Allows privileged access to the the |ink_drop_highlight_|.
30 test::InkDropImplTestApi test_api_; 30 test::InkDropImplTestApi test_api_;
31 31
32 // Used to control the tasks scheduled by the InkDropImpl's Timer. 32 // Used to control the tasks scheduled by the InkDropImpl's Timer.
33 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 33 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
34 34
35 // Required by base::Timer's. 35 // Required by base::Timer's.
36 std::unique_ptr<base::ThreadTaskRunnerHandle> thread_task_runner_handle_; 36 std::unique_ptr<base::ThreadTaskRunnerHandle> thread_task_runner_handle_;
37 37
38 private: 38 private:
39 DISALLOW_COPY_AND_ASSIGN(InkDropImplTest); 39 DISALLOW_COPY_AND_ASSIGN(InkDropImplTest);
40 }; 40 };
41 41
42 InkDropImplTest::InkDropImplTest() 42 InkDropImplTest::InkDropImplTest()
43 : ink_drop_(&ink_drop_host_), 43 : ink_drop_(&ink_drop_host_),
44 test_api_(&ink_drop_), 44 test_api_(&ink_drop_),
45 task_runner_(new base::TestSimpleTaskRunner), 45 task_runner_(new base::TestSimpleTaskRunner),
46 thread_task_runner_handle_( 46 thread_task_runner_handle_(
47 new base::ThreadTaskRunnerHandle(task_runner_)) { 47 new base::ThreadTaskRunnerHandle(task_runner_)) {
48 ink_drop_host_.set_disable_timers_for_test(true); 48 ink_drop_host_.set_disable_timers_for_test(true);
49 } 49 }
50 50
51 InkDropImplTest::~InkDropImplTest() {} 51 InkDropImplTest::~InkDropImplTest() {}
52 52
53 TEST_F(InkDropImplTest, SetHoveredIsFadingInOrVisible) { 53 TEST_F(InkDropImplTest, SetHoveredHighlightIsFadingInOrVisible) {
54 ink_drop_host_.set_should_show_hover(true); 54 ink_drop_host_.set_should_show_highlight(true);
55 55
56 ink_drop_.SetHovered(true); 56 ink_drop_.SetHovered(true);
57 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 57 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
58 58
59 test_api_.CompleteAnimations(); 59 test_api_.CompleteAnimations();
60 60
61 ink_drop_.SetHovered(false); 61 ink_drop_.SetHovered(false);
62 EXPECT_FALSE(test_api_.IsHoverFadingInOrVisible()); 62 EXPECT_FALSE(test_api_.IsHighlightFadingInOrVisible());
63 } 63 }
64 64
65 TEST_F(InkDropImplTest, FocusAndHoverAtSameTime) { 65 TEST_F(InkDropImplTest, FocusAndHoverAtSameTime) {
66 ink_drop_host_.set_should_show_hover(true); 66 ink_drop_host_.set_should_show_highlight(true);
67 EXPECT_FALSE(test_api_.IsHoverFadingInOrVisible()); 67 EXPECT_FALSE(test_api_.IsHighlightFadingInOrVisible());
68 68
69 ink_drop_.SetFocused(true); 69 ink_drop_.SetFocused(true);
70 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 70 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
71 71
72 test_api_.CompleteAnimations(); 72 test_api_.CompleteAnimations();
73 ink_drop_.SetHovered(false); 73 ink_drop_.SetHovered(false);
74 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 74 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
75 75
76 test_api_.CompleteAnimations(); 76 test_api_.CompleteAnimations();
77 ink_drop_.SetHovered(true); 77 ink_drop_.SetHovered(true);
78 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 78 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
79 79
80 test_api_.CompleteAnimations(); 80 test_api_.CompleteAnimations();
81 ink_drop_.SetFocused(false); 81 ink_drop_.SetFocused(false);
82 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 82 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
83 83
84 test_api_.CompleteAnimations(); 84 test_api_.CompleteAnimations();
85 ink_drop_.SetHovered(false); 85 ink_drop_.SetHovered(false);
86 EXPECT_FALSE(test_api_.IsHoverFadingInOrVisible()); 86 EXPECT_FALSE(test_api_.IsHighlightFadingInOrVisible());
87 } 87 }
88 88
89 TEST_F(InkDropImplTest, HoverDoesntFadeInAfterAnimationIfHoverNotSet) { 89 TEST_F(InkDropImplTest, HighlightDoesntFadeInAfterAnimationIfHighlightNotSet) {
90 ink_drop_host_.set_should_show_hover(true); 90 ink_drop_host_.set_should_show_highlight(true);
91 ink_drop_.SetHovered(false); 91 ink_drop_.SetHovered(false);
92 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED); 92 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED);
93 test_api_.CompleteAnimations(); 93 test_api_.CompleteAnimations();
94 94
95 EXPECT_FALSE(task_runner_->HasPendingTask()); 95 EXPECT_FALSE(task_runner_->HasPendingTask());
96 EXPECT_FALSE(test_api_.IsHoverFadingInOrVisible()); 96 EXPECT_FALSE(test_api_.IsHighlightFadingInOrVisible());
97 } 97 }
98 98
99 TEST_F(InkDropImplTest, HoverFadesInAfterAnimationWhenHostIsHovered) { 99 TEST_F(InkDropImplTest, HighlightFadesInAfterAnimationWhenHostIsHovered) {
100 ink_drop_host_.set_should_show_hover(true); 100 ink_drop_host_.set_should_show_highlight(true);
101 ink_drop_.SetHovered(true); 101 ink_drop_.SetHovered(true);
102 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED); 102 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED);
103 test_api_.CompleteAnimations(); 103 test_api_.CompleteAnimations();
104 104
105 EXPECT_TRUE(task_runner_->HasPendingTask()); 105 EXPECT_TRUE(task_runner_->HasPendingTask());
106 106
107 task_runner_->RunPendingTasks(); 107 task_runner_->RunPendingTasks();
108 108
109 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 109 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
110 } 110 }
111 111
112 TEST_F(InkDropImplTest, HoverDoesntFadeInAfterAnimationWhenHostIsNotHovered) { 112 TEST_F(InkDropImplTest,
113 ink_drop_host_.set_should_show_hover(false); 113 HighlightDoesntFadeInAfterAnimationWhenHostIsNotHovered) {
114 ink_drop_host_.set_should_show_highlight(false);
114 ink_drop_.SetHovered(true); 115 ink_drop_.SetHovered(true);
115 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED); 116 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED);
116 test_api_.CompleteAnimations(); 117 test_api_.CompleteAnimations();
117 118
118 EXPECT_TRUE(task_runner_->HasPendingTask()); 119 EXPECT_TRUE(task_runner_->HasPendingTask());
119 120
120 task_runner_->RunPendingTasks(); 121 task_runner_->RunPendingTasks();
121 122
122 EXPECT_FALSE(test_api_.IsHoverFadingInOrVisible()); 123 EXPECT_FALSE(test_api_.IsHighlightFadingInOrVisible());
123 } 124 }
124 125
125 TEST_F(InkDropImplTest, HoveredStateNotVisibleOrFadingInAfterAnimateToState) { 126 TEST_F(InkDropImplTest, HoveredStateNotVisibleOrFadingInAfterAnimateToState) {
126 ink_drop_host_.set_should_show_hover(true); 127 ink_drop_host_.set_should_show_highlight(true);
127 128
128 ink_drop_.SetHovered(true); 129 ink_drop_.SetHovered(true);
129 test_api_.CompleteAnimations(); 130 test_api_.CompleteAnimations();
130 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 131 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
131 132
132 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED); 133 ink_drop_.AnimateToState(InkDropState::ACTION_TRIGGERED);
133 EXPECT_FALSE(test_api_.IsHoverFadingInOrVisible()); 134 EXPECT_FALSE(test_api_.IsHighlightFadingInOrVisible());
134 } 135 }
135 136
136 // Verifies that there is not a crash when setting hovered state and the host 137 // Verifies that there is not a crash when setting hovered state and the host
137 // returns null for the hover. 138 // returns null for the highlight.
138 TEST_F(InkDropImplTest, SetHoveredFalseWorksWhenNoInkDropHoverExists) { 139 TEST_F(InkDropImplTest, SetHoveredFalseWorksWhenNoInkDropHighlightExists) {
139 ink_drop_host_.set_should_show_hover(false); 140 ink_drop_host_.set_should_show_highlight(false);
140 ink_drop_.SetHovered(true); 141 ink_drop_.SetHovered(true);
141 EXPECT_FALSE(test_api_.hover()); 142 EXPECT_FALSE(test_api_.highlight());
142 ink_drop_.SetHovered(false); 143 ink_drop_.SetHovered(false);
143 EXPECT_FALSE(test_api_.hover()); 144 EXPECT_FALSE(test_api_.highlight());
144 } 145 }
145 146
146 TEST_F(InkDropImplTest, HoverFadesOutOnSnapToActivated) { 147 TEST_F(InkDropImplTest, HighlightFadesOutOnSnapToActivated) {
147 ink_drop_host_.set_should_show_hover(true); 148 ink_drop_host_.set_should_show_highlight(true);
148 ink_drop_.SetHovered(true); 149 ink_drop_.SetHovered(true);
149 test_api_.CompleteAnimations(); 150 test_api_.CompleteAnimations();
150 151
151 EXPECT_TRUE(test_api_.IsHoverFadingInOrVisible()); 152 EXPECT_TRUE(test_api_.IsHighlightFadingInOrVisible());
152 153
153 ink_drop_.SnapToActivated(); 154 ink_drop_.SnapToActivated();
154 155
155 EXPECT_FALSE(test_api_.IsHoverFadingInOrVisible()); 156 EXPECT_FALSE(test_api_.IsHighlightFadingInOrVisible());
156 } 157 }
157 158
158 TEST_F(InkDropImplTest, LayersRemovedFromHostAfterHover) { 159 TEST_F(InkDropImplTest, LayersRemovedFromHostAfterHighlight) {
159 ink_drop_host_.set_should_show_hover(true); 160 ink_drop_host_.set_should_show_highlight(true);
160 161
161 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 162 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
162 163
163 ink_drop_.SetHovered(true); 164 ink_drop_.SetHovered(true);
164 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 165 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
165 166
166 test_api_.CompleteAnimations(); 167 test_api_.CompleteAnimations();
167 168
168 ink_drop_.SetHovered(false); 169 ink_drop_.SetHovered(false);
169 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 170 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
170 171
171 test_api_.CompleteAnimations(); 172 test_api_.CompleteAnimations();
172 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 173 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
173 } 174 }
174 175
175 TEST_F(InkDropImplTest, LayersRemovedFromHostAfterInkDrop) { 176 TEST_F(InkDropImplTest, LayersRemovedFromHostAfterInkDrop) {
176 ink_drop_host_.set_should_show_hover(true); 177 ink_drop_host_.set_should_show_highlight(true);
177 178
178 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 179 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
179 180
180 ink_drop_.AnimateToState(InkDropState::ACTION_PENDING); 181 ink_drop_.AnimateToState(InkDropState::ACTION_PENDING);
181 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 182 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
182 183
183 ink_drop_.AnimateToState(InkDropState::HIDDEN); 184 ink_drop_.AnimateToState(InkDropState::HIDDEN);
184 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 185 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
185 186
186 test_api_.CompleteAnimations(); 187 test_api_.CompleteAnimations();
187 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 188 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
188 } 189 }
189 190
190 TEST_F(InkDropImplTest, LayersAddedToHostWhenHoverOrInkDropVisible) { 191 TEST_F(InkDropImplTest, LayersAddedToHostWhenHighlightOrInkDropVisible) {
191 ink_drop_host_.set_should_show_hover(true); 192 ink_drop_host_.set_should_show_highlight(true);
192 193
193 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 194 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
194 195
195 ink_drop_.SetHovered(true); 196 ink_drop_.SetHovered(true);
196 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 197 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
197 198
198 ink_drop_.AnimateToState(InkDropState::ACTION_PENDING); 199 ink_drop_.AnimateToState(InkDropState::ACTION_PENDING);
199 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 200 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
200 201
201 ink_drop_.AnimateToState(InkDropState::HIDDEN); 202 ink_drop_.AnimateToState(InkDropState::HIDDEN);
202 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 203 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
203 204
204 test_api_.CompleteAnimations(); 205 test_api_.CompleteAnimations();
205 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 206 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
206 207
207 EXPECT_TRUE(task_runner_->HasPendingTask()); 208 EXPECT_TRUE(task_runner_->HasPendingTask());
208 task_runner_->RunPendingTasks(); 209 task_runner_->RunPendingTasks();
209 210
210 // Hover should be fading back in. 211 // Highlight should be fading back in.
211 EXPECT_TRUE(test_api_.HasActiveAnimations()); 212 EXPECT_TRUE(test_api_.HasActiveAnimations());
212 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 213 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
213 } 214 }
214 215
215 TEST_F(InkDropImplTest, LayersNotAddedToHostWhenHoverTimeFires) { 216 TEST_F(InkDropImplTest, LayersNotAddedToHostWhenHighlightTimeFires) {
216 ink_drop_host_.set_should_show_hover(true); 217 ink_drop_host_.set_should_show_highlight(true);
217 218
218 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 219 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
219 220
220 ink_drop_.SetHovered(true); 221 ink_drop_.SetHovered(true);
221 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 222 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
222 223
223 ink_drop_.AnimateToState(InkDropState::ACTION_PENDING); 224 ink_drop_.AnimateToState(InkDropState::ACTION_PENDING);
224 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 225 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
225 226
226 ink_drop_.AnimateToState(InkDropState::HIDDEN); 227 ink_drop_.AnimateToState(InkDropState::HIDDEN);
227 test_api_.CompleteAnimations(); 228 test_api_.CompleteAnimations();
228 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 229 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
229 230
230 ink_drop_host_.set_should_show_hover(false); 231 ink_drop_host_.set_should_show_highlight(false);
231 232
232 EXPECT_TRUE(task_runner_->HasPendingTask()); 233 EXPECT_TRUE(task_runner_->HasPendingTask());
233 task_runner_->RunPendingTasks(); 234 task_runner_->RunPendingTasks();
234 235
235 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 236 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
236 } 237 }
237 238
238 TEST_F(InkDropImplTest, LayersArentRemovedWhenPreemptingFadeOut) { 239 TEST_F(InkDropImplTest, LayersArentRemovedWhenPreemptingFadeOut) {
239 ink_drop_host_.set_should_show_hover(true); 240 ink_drop_host_.set_should_show_highlight(true);
240 241
241 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers()); 242 EXPECT_EQ(0, ink_drop_host_.num_ink_drop_layers());
242 243
243 ink_drop_.SetHovered(true); 244 ink_drop_.SetHovered(true);
244 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 245 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
245 246
246 test_api_.CompleteAnimations(); 247 test_api_.CompleteAnimations();
247 248
248 ink_drop_.SetHovered(false); 249 ink_drop_.SetHovered(false);
249 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 250 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
250 251
251 ink_drop_.SetHovered(true); 252 ink_drop_.SetHovered(true);
252 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers()); 253 EXPECT_EQ(1, ink_drop_host_.num_ink_drop_layers());
253 } 254 }
254 255
255 } // namespace views 256 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/animation/ink_drop_impl.cc ('k') | ui/views/animation/test/ink_drop_highlight_test_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698