| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "cc/input/top_controls_manager.h" | 5 #include "cc/input/top_controls_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f)); | 128 manager->ScrollBy(gfx::Vector2dF(0.f, -100.f)); |
| 129 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 129 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
| 130 | 130 |
| 131 // See that scrolling down the page now will result in the controls hiding. | 131 // See that scrolling down the page now will result in the controls hiding. |
| 132 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); | 132 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
| 133 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); | 133 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); |
| 134 | 134 |
| 135 manager->ScrollEnd(); | 135 manager->ScrollEnd(); |
| 136 } | 136 } |
| 137 | 137 |
| 138 // Flaky. See http://crbug.com/456617. | 138 TEST(TopControlsManagerTest, PartialShownHideAnimation) { |
| 139 TEST(TopControlsManagerTest, DISABLED_PartialShownHideAnimation) { | |
| 140 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 139 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
| 141 TopControlsManager* manager = client.manager(); | 140 TopControlsManager* manager = client.manager(); |
| 142 manager->ScrollBegin(); | 141 manager->ScrollBegin(); |
| 143 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 142 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
| 144 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 143 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 145 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 144 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 146 manager->ScrollEnd(); | 145 manager->ScrollEnd(); |
| 147 | 146 |
| 148 manager->ScrollBegin(); | 147 manager->ScrollBegin(); |
| 149 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); | 148 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); |
| 150 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); | 149 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); |
| 151 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); | 150 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); |
| 152 manager->ScrollEnd(); | 151 manager->ScrollEnd(); |
| 153 | 152 |
| 154 EXPECT_TRUE(manager->animation()); | 153 EXPECT_TRUE(manager->animation()); |
| 155 | 154 |
| 156 base::TimeTicks time = gfx::FrameTime::Now(); | 155 base::TimeTicks time = gfx::FrameTime::Now(); |
| 157 float previous_offset = manager->ControlsTopOffset(); | 156 float previous; |
| 158 while (manager->animation()) { | 157 while (manager->animation()) { |
| 158 previous = manager->TopControlsShownRatio(); |
| 159 time = base::TimeDelta::FromMicroseconds(100) + time; | 159 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 160 manager->Animate(time); | 160 manager->Animate(time); |
| 161 EXPECT_LT(manager->ControlsTopOffset(), previous_offset); | 161 EXPECT_LT(manager->TopControlsShownRatio(), previous); |
| 162 previous_offset = manager->ControlsTopOffset(); | |
| 163 } | 162 } |
| 164 EXPECT_FALSE(manager->animation()); | 163 EXPECT_FALSE(manager->animation()); |
| 165 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 164 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 166 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 165 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 167 } | 166 } |
| 168 | 167 |
| 169 TEST(TopControlsManagerTest, PartialShownShowAnimation) { | 168 TEST(TopControlsManagerTest, PartialShownShowAnimation) { |
| 170 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 169 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
| 171 TopControlsManager* manager = client.manager(); | 170 TopControlsManager* manager = client.manager(); |
| 172 manager->ScrollBegin(); | 171 manager->ScrollBegin(); |
| 173 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 172 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
| 174 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 173 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 175 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 174 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 176 manager->ScrollEnd(); | 175 manager->ScrollEnd(); |
| 177 | 176 |
| 178 manager->ScrollBegin(); | 177 manager->ScrollBegin(); |
| 179 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f)); | 178 manager->ScrollBy(gfx::Vector2dF(0.f, -70.f)); |
| 180 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); | 179 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); |
| 181 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); | 180 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); |
| 182 manager->ScrollEnd(); | 181 manager->ScrollEnd(); |
| 183 | 182 |
| 184 EXPECT_TRUE(manager->animation()); | 183 EXPECT_TRUE(manager->animation()); |
| 185 | 184 |
| 186 base::TimeTicks time = gfx::FrameTime::Now(); | 185 base::TimeTicks time = gfx::FrameTime::Now(); |
| 187 float previous_offset = manager->ControlsTopOffset(); | 186 float previous; |
| 188 while (manager->animation()) { | 187 while (manager->animation()) { |
| 188 previous = manager->TopControlsShownRatio(); |
| 189 time = base::TimeDelta::FromMicroseconds(100) + time; | 189 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 190 manager->Animate(time); | 190 manager->Animate(time); |
| 191 EXPECT_GT(manager->ControlsTopOffset(), previous_offset); | 191 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
| 192 previous_offset = manager->ControlsTopOffset(); | |
| 193 } | 192 } |
| 194 EXPECT_FALSE(manager->animation()); | 193 EXPECT_FALSE(manager->animation()); |
| 195 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 194 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
| 196 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); | 195 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
| 197 } | 196 } |
| 198 | 197 |
| 199 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { | 198 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { |
| 200 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 199 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
| 201 TopControlsManager* manager = client.manager(); | 200 TopControlsManager* manager = client.manager(); |
| 202 | 201 |
| 203 manager->ScrollBegin(); | 202 manager->ScrollBegin(); |
| 204 | 203 |
| 205 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); | 204 manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
| 206 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); | 205 EXPECT_FLOAT_EQ(-20.f, manager->ControlsTopOffset()); |
| 207 EXPECT_FLOAT_EQ(80.f, manager->ContentTopOffset()); | 206 EXPECT_FLOAT_EQ(80.f, manager->ContentTopOffset()); |
| 208 | 207 |
| 209 manager->ScrollEnd(); | 208 manager->ScrollEnd(); |
| 210 EXPECT_TRUE(manager->animation()); | 209 EXPECT_TRUE(manager->animation()); |
| 211 | 210 |
| 212 base::TimeTicks time = gfx::FrameTime::Now(); | 211 base::TimeTicks time = gfx::FrameTime::Now(); |
| 213 float previous_offset = manager->ControlsTopOffset(); | 212 float previous; |
| 214 while (manager->animation()) { | 213 while (manager->animation()) { |
| 214 previous = manager->TopControlsShownRatio(); |
| 215 time = base::TimeDelta::FromMicroseconds(100) + time; | 215 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 216 manager->Animate(time); | 216 manager->Animate(time); |
| 217 EXPECT_GT(manager->ControlsTopOffset(), previous_offset); | 217 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
| 218 previous_offset = manager->ControlsTopOffset(); | |
| 219 } | 218 } |
| 220 EXPECT_FALSE(manager->animation()); | 219 EXPECT_FALSE(manager->animation()); |
| 221 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 220 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
| 222 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); | 221 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
| 223 } | 222 } |
| 224 | 223 |
| 225 // Flaky. See http://crbug.com/456617. | 224 TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) { |
| 226 TEST(TopControlsManagerTest, | |
| 227 DISABLED_PartialHiddenWithAmbiguousThresholdHides) { | |
| 228 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 225 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
| 229 TopControlsManager* manager = client.manager(); | 226 TopControlsManager* manager = client.manager(); |
| 230 | 227 |
| 231 manager->ScrollBegin(); | 228 manager->ScrollBegin(); |
| 232 | 229 |
| 233 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); | 230 manager->ScrollBy(gfx::Vector2dF(0.f, 30.f)); |
| 234 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); | 231 EXPECT_FLOAT_EQ(-30.f, manager->ControlsTopOffset()); |
| 235 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); | 232 EXPECT_FLOAT_EQ(70.f, manager->ContentTopOffset()); |
| 236 | 233 |
| 237 manager->ScrollEnd(); | 234 manager->ScrollEnd(); |
| 238 EXPECT_TRUE(manager->animation()); | 235 EXPECT_TRUE(manager->animation()); |
| 239 | 236 |
| 240 base::TimeTicks time = gfx::FrameTime::Now(); | 237 base::TimeTicks time = gfx::FrameTime::Now(); |
| 241 float previous_offset = manager->ControlsTopOffset(); | 238 float previous; |
| 242 while (manager->animation()) { | 239 while (manager->animation()) { |
| 240 previous = manager->TopControlsShownRatio(); |
| 243 time = base::TimeDelta::FromMicroseconds(100) + time; | 241 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 244 manager->Animate(time); | 242 manager->Animate(time); |
| 245 EXPECT_LT(manager->ControlsTopOffset(), previous_offset); | 243 EXPECT_LT(manager->TopControlsShownRatio(), previous); |
| 246 previous_offset = manager->ControlsTopOffset(); | |
| 247 } | 244 } |
| 248 EXPECT_FALSE(manager->animation()); | 245 EXPECT_FALSE(manager->animation()); |
| 249 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 246 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 250 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 247 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 251 } | 248 } |
| 252 | 249 |
| 253 TEST(TopControlsManagerTest, DISABLED_PartialShownWithAmbiguousThresholdHides) { | 250 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) { |
| 254 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 251 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
| 255 TopControlsManager* manager = client.manager(); | 252 TopControlsManager* manager = client.manager(); |
| 256 | 253 |
| 257 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); | 254 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); |
| 258 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 255 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 259 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 256 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 260 | 257 |
| 261 manager->ScrollBegin(); | 258 manager->ScrollBegin(); |
| 262 | 259 |
| 263 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f)); | 260 manager->ScrollBy(gfx::Vector2dF(0.f, -20.f)); |
| 264 EXPECT_FLOAT_EQ(-80.f, manager->ControlsTopOffset()); | 261 EXPECT_FLOAT_EQ(-80.f, manager->ControlsTopOffset()); |
| 265 EXPECT_FLOAT_EQ(20.f, manager->ContentTopOffset()); | 262 EXPECT_FLOAT_EQ(20.f, manager->ContentTopOffset()); |
| 266 | 263 |
| 267 manager->ScrollEnd(); | 264 manager->ScrollEnd(); |
| 268 EXPECT_TRUE(manager->animation()); | 265 EXPECT_TRUE(manager->animation()); |
| 269 | 266 |
| 270 base::TimeTicks time = gfx::FrameTime::Now(); | 267 base::TimeTicks time = gfx::FrameTime::Now(); |
| 271 float previous_offset = manager->ControlsTopOffset(); | 268 float previous; |
| 272 while (manager->animation()) { | 269 while (manager->animation()) { |
| 270 previous = manager->TopControlsShownRatio(); |
| 273 time = base::TimeDelta::FromMicroseconds(100) + time; | 271 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 274 manager->Animate(time); | 272 manager->Animate(time); |
| 275 EXPECT_LT(manager->ControlsTopOffset(), previous_offset); | 273 EXPECT_LT(manager->TopControlsShownRatio(), previous); |
| 276 previous_offset = manager->ControlsTopOffset(); | |
| 277 } | 274 } |
| 278 EXPECT_FALSE(manager->animation()); | 275 EXPECT_FALSE(manager->animation()); |
| 279 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 276 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 280 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 277 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 281 } | 278 } |
| 282 | 279 |
| 283 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { | 280 TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { |
| 284 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); | 281 MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
| 285 TopControlsManager* manager = client.manager(); | 282 TopControlsManager* manager = client.manager(); |
| 286 | 283 |
| 287 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); | 284 manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); |
| 288 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 285 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 289 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 286 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 290 | 287 |
| 291 manager->ScrollBegin(); | 288 manager->ScrollBegin(); |
| 292 | 289 |
| 293 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f)); | 290 manager->ScrollBy(gfx::Vector2dF(0.f, -30.f)); |
| 294 EXPECT_FLOAT_EQ(-70.f, manager->ControlsTopOffset()); | 291 EXPECT_FLOAT_EQ(-70.f, manager->ControlsTopOffset()); |
| 295 EXPECT_FLOAT_EQ(30.f, manager->ContentTopOffset()); | 292 EXPECT_FLOAT_EQ(30.f, manager->ContentTopOffset()); |
| 296 | 293 |
| 297 manager->ScrollEnd(); | 294 manager->ScrollEnd(); |
| 298 EXPECT_TRUE(manager->animation()); | 295 EXPECT_TRUE(manager->animation()); |
| 299 | 296 |
| 300 base::TimeTicks time = gfx::FrameTime::Now(); | 297 base::TimeTicks time = gfx::FrameTime::Now(); |
| 301 float previous_offset = manager->ControlsTopOffset(); | 298 float previous; |
| 302 while (manager->animation()) { | 299 while (manager->animation()) { |
| 300 previous = manager->TopControlsShownRatio(); |
| 303 time = base::TimeDelta::FromMicroseconds(100) + time; | 301 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 304 manager->Animate(time); | 302 manager->Animate(time); |
| 305 EXPECT_GT(manager->ControlsTopOffset(), previous_offset); | 303 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
| 306 previous_offset = manager->ControlsTopOffset(); | |
| 307 } | 304 } |
| 308 EXPECT_FALSE(manager->animation()); | 305 EXPECT_FALSE(manager->animation()); |
| 309 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 306 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
| 310 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); | 307 EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
| 311 } | 308 } |
| 312 | 309 |
| 313 TEST(TopControlsManagerTest, PinchIgnoresScroll) { | 310 TEST(TopControlsManagerTest, PinchIgnoresScroll) { |
| 314 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 311 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
| 315 TopControlsManager* manager = client.manager(); | 312 TopControlsManager* manager = client.manager(); |
| 316 | 313 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 332 | 329 |
| 333 // Scrolls should no long be ignored. | 330 // Scrolls should no long be ignored. |
| 334 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); | 331 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); |
| 335 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); | 332 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); |
| 336 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); | 333 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); |
| 337 manager->ScrollEnd(); | 334 manager->ScrollEnd(); |
| 338 | 335 |
| 339 EXPECT_TRUE(manager->animation()); | 336 EXPECT_TRUE(manager->animation()); |
| 340 } | 337 } |
| 341 | 338 |
| 342 // Flaky. See http://crbug.com/456617. | 339 TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) { |
| 343 TEST(TopControlsManagerTest, DISABLED_PinchBeginStartsAnimationIfNecessary) { | |
| 344 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); | 340 MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
| 345 TopControlsManager* manager = client.manager(); | 341 TopControlsManager* manager = client.manager(); |
| 346 | 342 |
| 347 manager->ScrollBegin(); | 343 manager->ScrollBegin(); |
| 348 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); | 344 manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
| 349 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); | 345 EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
| 350 | 346 |
| 351 manager->PinchBegin(); | 347 manager->PinchBegin(); |
| 352 EXPECT_FALSE(manager->animation()); | 348 EXPECT_FALSE(manager->animation()); |
| 353 | 349 |
| 354 manager->PinchEnd(); | 350 manager->PinchEnd(); |
| 355 EXPECT_FALSE(manager->animation()); | 351 EXPECT_FALSE(manager->animation()); |
| 356 | 352 |
| 357 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); | 353 manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)); |
| 358 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); | 354 EXPECT_FLOAT_EQ(-85.f, manager->ControlsTopOffset()); |
| 359 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); | 355 EXPECT_FLOAT_EQ(15.f, manager->ContentTopOffset()); |
| 360 | 356 |
| 361 manager->PinchBegin(); | 357 manager->PinchBegin(); |
| 362 EXPECT_TRUE(manager->animation()); | 358 EXPECT_TRUE(manager->animation()); |
| 363 | 359 |
| 364 base::TimeTicks time = base::TimeTicks::Now(); | 360 base::TimeTicks time = base::TimeTicks::Now(); |
| 365 float previous_offset = manager->ControlsTopOffset(); | 361 float previous; |
| 366 while (manager->animation()) { | 362 while (manager->animation()) { |
| 363 previous = manager->TopControlsShownRatio(); |
| 367 time = base::TimeDelta::FromMicroseconds(100) + time; | 364 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 368 manager->Animate(time); | 365 manager->Animate(time); |
| 369 EXPECT_LT(manager->ControlsTopOffset(), previous_offset); | 366 EXPECT_LT(manager->TopControlsShownRatio(), previous); |
| 370 previous_offset = manager->ControlsTopOffset(); | |
| 371 } | 367 } |
| 372 EXPECT_FALSE(manager->animation()); | 368 EXPECT_FALSE(manager->animation()); |
| 373 | 369 |
| 374 manager->PinchEnd(); | 370 manager->PinchEnd(); |
| 375 EXPECT_FALSE(manager->animation()); | 371 EXPECT_FALSE(manager->animation()); |
| 376 | 372 |
| 377 manager->ScrollBy(gfx::Vector2dF(0.f, -55.f)); | 373 manager->ScrollBy(gfx::Vector2dF(0.f, -55.f)); |
| 378 EXPECT_FLOAT_EQ(-45.f, manager->ControlsTopOffset()); | 374 EXPECT_FLOAT_EQ(-45.f, manager->ControlsTopOffset()); |
| 379 EXPECT_FLOAT_EQ(55.f, manager->ContentTopOffset()); | 375 EXPECT_FLOAT_EQ(55.f, manager->ContentTopOffset()); |
| 380 EXPECT_FALSE(manager->animation()); | 376 EXPECT_FALSE(manager->animation()); |
| 381 | 377 |
| 382 manager->ScrollEnd(); | 378 manager->ScrollEnd(); |
| 383 EXPECT_TRUE(manager->animation()); | 379 EXPECT_TRUE(manager->animation()); |
| 384 | 380 |
| 385 time = base::TimeTicks::Now(); | 381 time = base::TimeTicks::Now(); |
| 386 previous_offset = manager->ControlsTopOffset(); | |
| 387 while (manager->animation()) { | 382 while (manager->animation()) { |
| 383 previous = manager->TopControlsShownRatio(); |
| 388 time = base::TimeDelta::FromMicroseconds(100) + time; | 384 time = base::TimeDelta::FromMicroseconds(100) + time; |
| 389 manager->Animate(time); | 385 manager->Animate(time); |
| 390 EXPECT_GT(manager->ControlsTopOffset(), previous_offset); | 386 EXPECT_GT(manager->TopControlsShownRatio(), previous); |
| 391 previous_offset = manager->ControlsTopOffset(); | |
| 392 } | 387 } |
| 393 EXPECT_FALSE(manager->animation()); | 388 EXPECT_FALSE(manager->animation()); |
| 394 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 389 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
| 395 } | 390 } |
| 396 | 391 |
| 397 TEST(TopControlsManagerTest, HeightChangeMaintainsFullyVisibleControls) { | 392 TEST(TopControlsManagerTest, HeightChangeMaintainsFullyVisibleControls) { |
| 398 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); | 393 MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); |
| 399 TopControlsManager* manager = client.manager(); | 394 TopControlsManager* manager = client.manager(); |
| 400 | 395 |
| 401 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 396 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 440 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 446 | 441 |
| 447 client.SetTopControlsHeight(0.f); | 442 client.SetTopControlsHeight(0.f); |
| 448 EXPECT_FALSE(manager->animation()); | 443 EXPECT_FALSE(manager->animation()); |
| 449 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); | 444 EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
| 450 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); | 445 EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
| 451 } | 446 } |
| 452 | 447 |
| 453 } // namespace | 448 } // namespace |
| 454 } // namespace cc | 449 } // namespace cc |
| OLD | NEW |