OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 7323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7334 EXPECT_EQ(fourthFrame, parent->lastChild()); | 7334 EXPECT_EQ(fourthFrame, parent->lastChild()); |
7335 | 7335 |
7336 EXPECT_EQ(parent, firstFrame->parent()); | 7336 EXPECT_EQ(parent, firstFrame->parent()); |
7337 EXPECT_EQ(parent, secondFrame->parent()); | 7337 EXPECT_EQ(parent, secondFrame->parent()); |
7338 EXPECT_EQ(parent, thirdFrame->parent()); | 7338 EXPECT_EQ(parent, thirdFrame->parent()); |
7339 EXPECT_EQ(parent, fourthFrame->parent()); | 7339 EXPECT_EQ(parent, fourthFrame->parent()); |
7340 | 7340 |
7341 view->close(); | 7341 view->close(); |
7342 } | 7342 } |
7343 | 7343 |
7344 class WebFrameOverscrollTest : public WebFrameTest { | |
7345 protected: | |
7346 WebGestureEvent generateEvent(WebInputEvent::Type type, int deltaX = 0, int deltaY = 0) | |
7347 { | |
7348 WebGestureEvent event; | |
7349 event.type = type; | |
7350 event.x = 100; | |
7351 event.y = 100; | |
7352 if (type == WebInputEvent::GestureScrollUpdate) { | |
7353 event.data.scrollUpdate.deltaX = deltaX; | |
7354 event.data.scrollUpdate.deltaY = deltaY; | |
7355 } | |
7356 return event; | |
7357 } | |
7358 | |
7359 void ScrollBegin(FrameTestHelpers::WebViewHelper* webViewHelper) | |
7360 { | |
7361 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollBegin)); | |
7362 } | |
7363 | |
7364 void ScrollUpdate(FrameTestHelpers::WebViewHelper* webViewHelper, float delt aX, float deltaY) | |
7365 { | |
7366 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollUpdate, deltaX, deltaY)); | |
7367 } | |
7368 | |
7369 void ScrollEnd(FrameTestHelpers::WebViewHelper* webViewHelper) | |
7370 { | |
7371 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollEnd)); | |
7372 } | |
7373 | |
7374 void CompareUnusedDeltaAndAccumulatedRootOverscroll(FrameTestHelpers::WebVie wHelper* webViewHelper, float unUsedWidth, float unUsedHeight, float accumulated Width, float accumulatedHeight) | |
7375 { | |
7376 FloatSize unUsedDelta = webViewHelper->webViewImpl()->mainFrameImpl()->f rame()->eventHandler().unusedDeltaForTesting(); | |
7377 FloatSize accumulatedRootOverscroll = webViewHelper->webViewImpl()->main FrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); | |
7378 EXPECT_FLOAT_EQ(unUsedWidth, unUsedDelta.width()); | |
majidvp
2015/05/29 19:14:19
Having the assertions in this function which is ca
MuVen
2015/06/01 13:29:26
Done.
majidvp
2015/06/01 15:58:29
Thanks.
| |
7379 EXPECT_FLOAT_EQ(unUsedHeight, unUsedDelta.height()); | |
7380 EXPECT_FLOAT_EQ(accumulatedWidth, accumulatedRootOverscroll.width()); | |
7381 EXPECT_FLOAT_EQ(accumulatedHeight, accumulatedRootOverscroll.height()); | |
7382 } | |
7383 }; | |
7384 | |
7385 TEST_F(WebFrameOverscrollTest, AccumulatedRootOverscrollAndUnsedDeltaSetAndUnset ) | |
7386 { | |
7387 FakeCompositingWebViewClient client; | |
7388 registerMockedHttpURLLoad("overscroll/overscroll.html"); | |
7389 FrameTestHelpers::WebViewHelper webViewHelper; | |
7390 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/overscroll.html", true, 0, &client, configureAndroid); | |
7391 webViewImpl->layout(); | |
7392 | |
7393 // Resets accumulatedRootOverscroll and unusedDelta on scroll end. | |
7394 ScrollBegin(&webViewHelper); | |
7395 ScrollUpdate(&webViewHelper, 0, -13); | |
7396 ScrollEnd(&webViewHelper); | |
7397 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); | |
7398 | |
7399 // Calculation of accumulatedRootOverscroll and unusedDelta on Single scroll Update. | |
7400 ScrollBegin(&webViewHelper); | |
7401 ScrollUpdate(&webViewHelper, 0, -13); | |
7402 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13) ; | |
7403 ScrollEnd(&webViewHelper); | |
7404 | |
7405 // Calculation of accumulatedRootOverscroll and unusedDelta on multiple scro llUpdate. | |
7406 ScrollBegin(&webViewHelper); | |
7407 ScrollUpdate(&webViewHelper, 0, -13); | |
7408 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13) ; | |
7409 ScrollUpdate(&webViewHelper, -20, -13); | |
7410 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 20, 13, 20, 2 6); | |
7411 ScrollUpdate(&webViewHelper, 0, 26); | |
7412 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -26, 20, 0 ); | |
majidvp
2015/05/29 19:14:19
Why is the unused value not 0? If the frame is bei
MuVen
2015/06/01 13:29:26
the current reset logic fixes the issue.
MuVen
2015/06/01 13:29:26
current reset logic fixes this.
majidvp
2015/06/01 15:58:29
Maybe the issue is fixed but this test is not veri
MuVen
2015/06/02 09:04:00
Done.
| |
7413 ScrollUpdate(&webViewHelper, 20, 0); | |
7414 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -20, 0, 0, 0) ; | |
7415 ScrollEnd(&webViewHelper); | |
7416 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); | |
7417 } | |
7418 | |
7419 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerDivOverScroll) | |
7420 { | |
7421 FakeCompositingWebViewClient client; | |
7422 registerMockedHttpURLLoad("overscroll/div-overscroll.html"); | |
7423 FrameTestHelpers::WebViewHelper webViewHelper; | |
7424 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/div-overscroll.html", true, 0, &client, configureAndroid); | |
7425 webViewImpl->layout(); | |
7426 | |
7427 ScrollBegin(&webViewHelper); | |
7428 | |
7429 // Scroll the Div to the end. | |
7430 ScrollUpdate(&webViewHelper, 0, -316); | |
7431 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); | |
7432 | |
7433 // Now On Scrolling DIV, scroll is bubbled and root layer is over-scrolled. | |
7434 ScrollUpdate(&webViewHelper, 0, -50); | |
7435 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 50, 0, 50) ; | |
7436 | |
7437 ScrollEnd(&webViewHelper); | |
7438 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); | |
7439 } | |
7440 | |
7441 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerIFrameOverScroll) | |
7442 { | |
7443 FakeCompositingWebViewClient client; | |
7444 registerMockedHttpURLLoad("overscroll/iframe-overscroll.html"); | |
7445 registerMockedHttpURLLoad("overscroll/scrollable-iframe.html"); | |
7446 FrameTestHelpers::WebViewHelper webViewHelper; | |
7447 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/iframe-overscroll.html", true, 0, &client, configureAndroid); | |
7448 webViewImpl->layout(); | |
7449 | |
7450 ScrollBegin(&webViewHelper); | |
7451 | |
7452 // Scroll the IFrame to the end. | |
7453 ScrollUpdate(&webViewHelper, 0, -320); | |
7454 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); | |
7455 | |
7456 // Now On Scrolling IFrame, scroll is bubbled and root layer is over-scrolle d. | |
7457 ScrollUpdate(&webViewHelper, 0, -50); | |
7458 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 50, 0, 50) ; | |
7459 } | |
7460 | |
7461 TEST_F(WebFrameOverscrollTest, ScaledPageRootLayerOverscrolled) | |
7462 { | |
7463 FakeCompositingWebViewClient client; | |
7464 registerMockedHttpURLLoad("overscroll/overscroll.html"); | |
7465 FrameTestHelpers::WebViewHelper webViewHelper; | |
7466 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/overscroll.html", true, 0, &client, configureAndroid); | |
7467 webViewImpl->setPageScaleFactor(3.f); | |
7468 webViewImpl->layout(); | |
7469 | |
7470 // Calculation of accumulatedRootOverscroll and unusedDelta on scaled page. | |
7471 ScrollBegin(&webViewHelper); | |
7472 ScrollUpdate(&webViewHelper, 0, 30); | |
7473 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -10, 0, -1 0); | |
7474 | |
7475 ScrollUpdate(&webViewHelper, 0, 30); | |
7476 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -10, 0, -2 0); | |
7477 | |
7478 ScrollUpdate(&webViewHelper, 30, 30); | |
7479 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -10, -10, -10 , -30); | |
7480 | |
7481 ScrollUpdate(&webViewHelper, 30, 0); | |
7482 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -10, 0, -20, -30); | |
7483 | |
7484 ScrollEnd(&webViewHelper); | |
7485 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); | |
7486 } | |
7487 | |
7344 } // namespace blink | 7488 } // namespace blink |
OLD | NEW |