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

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 1056983004: OverscrollGlow for mainThread-{BLINK CHANGES} (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Modified Tests Created 5 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 /* 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 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 { 229 {
230 registerMockedHttpURLLoad("nodeimage.html"); 230 registerMockedHttpURLLoad("nodeimage.html");
231 webViewHelper->initializeAndLoad(m_baseURL + "nodeimage.html"); 231 webViewHelper->initializeAndLoad(m_baseURL + "nodeimage.html");
232 webViewHelper->webView()->resize(WebSize(640, 480)); 232 webViewHelper->webView()->resize(WebSize(640, 480));
233 webViewHelper->webView()->layout(); 233 webViewHelper->webView()->layout();
234 RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper->webVi ewImpl()->page()->mainFrame()); 234 RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper->webVi ewImpl()->page()->mainFrame());
235 ASSERT(frame); 235 ASSERT(frame);
236 Element* element = frame->document()->getElementById(testcase.c_str()); 236 Element* element = frame->document()->getElementById(testcase.c_str());
237 return frame->nodeImage(*element); 237 return frame->nodeImage(*element);
238 } 238 }
239
240 std::string m_baseURL; 239 std::string m_baseURL;
241 std::string m_notBaseURL; 240 std::string m_notBaseURL;
242 std::string m_chromeURL; 241 std::string m_chromeURL;
243 }; 242 };
244 243
245 TEST_F(WebFrameTest, ContentText) 244 TEST_F(WebFrameTest, ContentText)
246 { 245 {
247 registerMockedHttpURLLoad("iframes_test.html"); 246 registerMockedHttpURLLoad("iframes_test.html");
248 registerMockedHttpURLLoad("visible_iframe.html"); 247 registerMockedHttpURLLoad("visible_iframe.html");
249 registerMockedHttpURLLoad("invisible_iframe.html"); 248 registerMockedHttpURLLoad("invisible_iframe.html");
(...skipping 7084 matching lines...) Expand 10 before | Expand all | Expand 10 after
7334 EXPECT_EQ(fourthFrame, parent->lastChild()); 7333 EXPECT_EQ(fourthFrame, parent->lastChild());
7335 7334
7336 EXPECT_EQ(parent, firstFrame->parent()); 7335 EXPECT_EQ(parent, firstFrame->parent());
7337 EXPECT_EQ(parent, secondFrame->parent()); 7336 EXPECT_EQ(parent, secondFrame->parent());
7338 EXPECT_EQ(parent, thirdFrame->parent()); 7337 EXPECT_EQ(parent, thirdFrame->parent());
7339 EXPECT_EQ(parent, fourthFrame->parent()); 7338 EXPECT_EQ(parent, fourthFrame->parent());
7340 7339
7341 view->close(); 7340 view->close();
7342 } 7341 }
7343 7342
7343 class WebFrameOverscrollTest : public WebFrameTest {
7344 protected:
7345 WebGestureEvent generateEvent(WebInputEvent::Type type, int deltaX = 0, int deltaY = 0)
7346 {
7347 WebGestureEvent event;
7348 event.type = type;
7349 event.x = 100;
7350 event.y = 100;
7351 if (type == WebInputEvent::GestureScrollUpdate) {
7352 event.data.scrollUpdate.deltaX = deltaX;
7353 event.data.scrollUpdate.deltaY = deltaY;
7354 }
7355 return event;
7356 }
7357
7358 void ScrollBegin(FrameTestHelpers::WebViewHelper* webViewHelper)
7359 {
7360 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollBegin));
7361 }
7362
7363 void ScrollUpdate(FrameTestHelpers::WebViewHelper* webViewHelper, float delt aX, float deltaY)
7364 {
7365 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollUpdate, deltaX, deltaY));
7366 }
7367
7368 void ScrollEnd(FrameTestHelpers::WebViewHelper* webViewHelper)
7369 {
7370 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollEnd));
7371 }
7372
7373 void CompareUnusedDeltaAndAccumulatedRootOverscroll(FrameTestHelpers::WebVie wHelper* webViewHelper, float unUsedWidth, float unUsedHeight, float accumulated Width, float accumulatedHeight)
7374 {
7375 FloatSize unUsedDelta = webViewHelper->webViewImpl()->mainFrameImpl()->f rame()->eventHandler().unusedDeltaForTesting();
7376 FloatSize accumulatedRootOverscroll = webViewHelper->webViewImpl()->main FrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting();
7377 EXPECT_FLOAT_EQ(unUsedWidth, unUsedDelta.width());
7378 EXPECT_FLOAT_EQ(unUsedHeight, unUsedDelta.height());
7379 EXPECT_FLOAT_EQ(accumulatedWidth, accumulatedRootOverscroll.width());
7380 EXPECT_FLOAT_EQ(accumulatedHeight, accumulatedRootOverscroll.height());
7381 }
7382 };
7383
7384 TEST_F(WebFrameOverscrollTest, AccumulatedRootOverscrollAndUnsedDeltaSetAndUnset )
7385 {
7386 FakeCompositingWebViewClient client;
7387 registerMockedHttpURLLoad("overscroll/overscroll.html");
7388 FrameTestHelpers::WebViewHelper webViewHelper;
7389 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/overscroll.html", true, 0, &client, configureAndroid);
7390 webViewImpl->layout();
7391
7392 // Resets accumulatedRootOverscroll and unusedDelta on scroll end.
7393 ScrollBegin(&webViewHelper);
7394 ScrollUpdate(&webViewHelper, 0, -13);
7395 ScrollEnd(&webViewHelper);
7396 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7397
7398 // Calculation of accumulatedRootOverscroll and unusedDelta on Single scroll Update.
7399 ScrollBegin(&webViewHelper);
7400 ScrollUpdate(&webViewHelper, 0, -13);
7401 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13) ;
7402 ScrollEnd(&webViewHelper);
7403
7404 // Calculation of accumulatedRootOverscroll and unusedDelta on multiple scro llUpdate.
7405 ScrollBegin(&webViewHelper);
7406 ScrollUpdate(&webViewHelper, 0, -13);
7407 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13) ;
7408 ScrollUpdate(&webViewHelper, -20, -13);
7409 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 20, 13, 20, 2 6);
majidvp 2015/05/28 20:30:46 To test reset logic in middle of a single gesture
MuVen 2015/05/29 09:37:15 Done.
7410 ScrollUpdate(&webViewHelper, -20, 0);
7411 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 20, 0, 40, 26 );
7412 ScrollEnd(&webViewHelper);
7413 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7414 }
7415
7416 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerDivOverScroll)
7417 {
7418 FakeCompositingWebViewClient client;
7419 registerMockedHttpURLLoad("overscroll/div-overscroll.html");
7420 FrameTestHelpers::WebViewHelper webViewHelper;
7421 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/div-overscroll.html", true, 0, &client, configureAndroid);
7422 webViewImpl->layout();
7423
7424 ScrollBegin(&webViewHelper);
7425
7426 // Scroll the Div to the end.
7427 ScrollUpdate(&webViewHelper, 0, -316);
7428 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7429
7430 // Now On Scrolling DIV, scroll is bubbled and root layer is over-scrolled.
7431 ScrollUpdate(&webViewHelper, 0, -50);
7432 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 50, 0, 50) ;
7433
7434 ScrollEnd(&webViewHelper);
7435 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7436 }
7437
7438 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerIFrameOverScroll)
7439 {
7440 FakeCompositingWebViewClient client;
7441 registerMockedHttpURLLoad("overscroll/iframe-overscroll.html");
7442 registerMockedHttpURLLoad("overscroll/scrollable-iframe.html");
7443 FrameTestHelpers::WebViewHelper webViewHelper;
7444 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/iframe-overscroll.html", true, 0, &client, configureAndroid);
7445 webViewImpl->layout();
7446
7447 ScrollBegin(&webViewHelper);
7448
7449 // Scroll the IFrame to the end.
7450 ScrollUpdate(&webViewHelper, 0, -320);
7451 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7452
7453 // Now On Scrolling IFrame, scroll is bubbled and root layer is over-scrolle d.
7454 ScrollUpdate(&webViewHelper, 0, -50);
7455 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 50, 0, 50) ;
7456 }
7457
7458 TEST_F(WebFrameOverscrollTest, ScaledPageRootLayerOverscrolled)
7459 {
7460 FakeCompositingWebViewClient client;
7461 registerMockedHttpURLLoad("overscroll/overscroll.html");
7462 FrameTestHelpers::WebViewHelper webViewHelper;
7463 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/overscroll.html", true, 0, &client, configureAndroid);
7464 webViewImpl->setPageScaleFactor(3.f);
7465 webViewImpl->layout();
7466
7467 // Calculation of accumulatedRootOverscroll and unusedDelta on scaled page.
7468 ScrollBegin(&webViewHelper);
7469 ScrollUpdate(&webViewHelper, 0, 30);
7470 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -10, 0, -1 0);
7471
7472 ScrollUpdate(&webViewHelper, 0, 30);
7473 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -10, 0, -2 0);
7474
7475 ScrollUpdate(&webViewHelper, 30, 30);
7476 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -10, -10, -10 , -30);
7477
7478 ScrollUpdate(&webViewHelper, 30, 0);
7479 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -10, 0, -20, -30);
7480
7481 ScrollEnd(&webViewHelper);
7482 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7483 }
7484
7344 } // namespace blink 7485 } // namespace blink
OLDNEW
« no previous file with comments | « Source/web/WebPluginScrollbarImpl.cpp ('k') | Source/web/tests/data/overscroll/div-overscroll.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698