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 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 7154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7404 EXPECT_EQ(fourthFrame, parent->lastChild()); | 7403 EXPECT_EQ(fourthFrame, parent->lastChild()); |
7405 | 7404 |
7406 EXPECT_EQ(parent, firstFrame->parent()); | 7405 EXPECT_EQ(parent, firstFrame->parent()); |
7407 EXPECT_EQ(parent, secondFrame->parent()); | 7406 EXPECT_EQ(parent, secondFrame->parent()); |
7408 EXPECT_EQ(parent, thirdFrame->parent()); | 7407 EXPECT_EQ(parent, thirdFrame->parent()); |
7409 EXPECT_EQ(parent, fourthFrame->parent()); | 7408 EXPECT_EQ(parent, fourthFrame->parent()); |
7410 | 7409 |
7411 view->close(); | 7410 view->close(); |
7412 } | 7411 } |
7413 | 7412 |
| 7413 class WebFrameOverscrollTest : public WebFrameTest { |
| 7414 protected: |
| 7415 WebGestureEvent generateEvent(WebInputEvent::Type type, int deltaX = 0, int
deltaY = 0) |
| 7416 { |
| 7417 WebGestureEvent event; |
| 7418 event.type = type; |
| 7419 event.x = 100; |
| 7420 event.y = 100; |
| 7421 if (type == WebInputEvent::GestureScrollUpdate) { |
| 7422 event.data.scrollUpdate.deltaX = deltaX; |
| 7423 event.data.scrollUpdate.deltaY = deltaY; |
| 7424 } |
| 7425 return event; |
| 7426 } |
| 7427 |
| 7428 void ScrollBegin(FrameTestHelpers::WebViewHelper* webViewHelper) |
| 7429 { |
| 7430 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve
nt::GestureScrollBegin)); |
| 7431 } |
| 7432 |
| 7433 void ScrollUpdate(FrameTestHelpers::WebViewHelper* webViewHelper, float delt
aX, float deltaY) |
| 7434 { |
| 7435 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve
nt::GestureScrollUpdate, deltaX, deltaY)); |
| 7436 } |
| 7437 |
| 7438 void ScrollEnd(FrameTestHelpers::WebViewHelper* webViewHelper) |
| 7439 { |
| 7440 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve
nt::GestureScrollEnd)); |
| 7441 } |
| 7442 |
| 7443 void CompareUnusedDeltaAndAccumulatedRootOverscroll(FrameTestHelpers::WebVie
wHelper* webViewHelper, float unUsedWidth, float unUsedHeight, float accumulated
Width, float accumulatedHeight) |
| 7444 { |
| 7445 FloatSize unUsedDelta = webViewHelper->webViewImpl()->mainFrameImpl()->f
rame()->eventHandler().unusedDeltaForTesting(); |
| 7446 FloatSize accumulatedRootOverscroll = webViewHelper->webViewImpl()->main
FrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting(); |
| 7447 EXPECT_EQ(unUsedWidth, unUsedDelta.width()); |
| 7448 EXPECT_EQ(unUsedHeight, unUsedDelta.height()); |
| 7449 EXPECT_EQ(accumulatedWidth, accumulatedRootOverscroll.width()); |
| 7450 EXPECT_EQ(accumulatedHeight, accumulatedRootOverscroll.height()); |
| 7451 } |
| 7452 }; |
| 7453 |
| 7454 TEST_F(WebFrameOverscrollTest, AccumulatedRootOverscrollAndUnsedDeltaSetAndUnset
) |
| 7455 { |
| 7456 FakeCompositingWebViewClient client; |
| 7457 registerMockedHttpURLLoad("mainthread-scrolling.html"); |
| 7458 FrameTestHelpers::WebViewHelper webViewHelper; |
| 7459 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "main
thread-scrolling.html", true, 0, &client, configureAndroid); |
| 7460 webViewImpl->layout(); |
| 7461 |
| 7462 ScrollBegin(&webViewHelper); |
| 7463 |
| 7464 ScrollUpdate(&webViewHelper, 0, -13); |
| 7465 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13)
; |
| 7466 |
| 7467 ScrollUpdate(&webViewHelper, 0, -13); |
| 7468 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 26)
; |
| 7469 |
| 7470 ScrollUpdate(&webViewHelper, -20, -13); |
| 7471 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 20, 13, 20, 3
9); |
| 7472 |
| 7473 ScrollEnd(&webViewHelper); |
| 7474 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); |
| 7475 |
| 7476 ScrollBegin(&webViewHelper); |
| 7477 ScrollUpdate(&webViewHelper, 0, -13); |
| 7478 ScrollEnd(&webViewHelper); |
| 7479 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); |
| 7480 |
| 7481 ScrollBegin(&webViewHelper); |
| 7482 ScrollUpdate(&webViewHelper, 0, -13); |
| 7483 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13)
; |
| 7484 } |
| 7485 |
| 7486 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerDivOverScroll) |
| 7487 { |
| 7488 FakeCompositingWebViewClient client; |
| 7489 registerMockedHttpURLLoad("mainthread-inner-div-overscroll.html"); |
| 7490 FrameTestHelpers::WebViewHelper webViewHelper; |
| 7491 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "main
thread-inner-div-overscroll.html", true, 0, &client, configureAndroid); |
| 7492 webViewImpl->layout(); |
| 7493 |
| 7494 ScrollBegin(&webViewHelper); |
| 7495 |
| 7496 ScrollUpdate(&webViewHelper, 0, 13); |
| 7497 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -13, 0, -1
3); |
| 7498 |
| 7499 ScrollUpdate(&webViewHelper, 0, 13); |
| 7500 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -13, 0, -2
6); |
| 7501 |
| 7502 ScrollUpdate(&webViewHelper, 13, 13); |
| 7503 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -13, -13, -13
, -39); |
| 7504 |
| 7505 ScrollUpdate(&webViewHelper, 13, 0); |
| 7506 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -13, 0, -26,
-39); |
| 7507 |
| 7508 ScrollEnd(&webViewHelper); |
| 7509 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); |
| 7510 } |
| 7511 |
| 7512 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerIFrameOverScroll) |
| 7513 { |
| 7514 FakeCompositingWebViewClient client; |
| 7515 registerMockedHttpURLLoad("mainthread-inner-iframe-overscroll.html"); |
| 7516 FrameTestHelpers::WebViewHelper webViewHelper; |
| 7517 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "main
thread-inner-iframe-overscroll.html", true, 0, &client, configureAndroid); |
| 7518 webViewImpl->layout(); |
| 7519 |
| 7520 ScrollBegin(&webViewHelper); |
| 7521 |
| 7522 ScrollUpdate(&webViewHelper, 0, 13); |
| 7523 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -13, 0, -1
3); |
| 7524 |
| 7525 ScrollUpdate(&webViewHelper, 0, 13); |
| 7526 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -13, 0, -2
6); |
| 7527 |
| 7528 ScrollUpdate(&webViewHelper, 13, 13); |
| 7529 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -13, -13, -13
, -39); |
| 7530 |
| 7531 ScrollUpdate(&webViewHelper, 13, 0); |
| 7532 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -13, 0, -26,
-39); |
| 7533 |
| 7534 ScrollEnd(&webViewHelper); |
| 7535 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0); |
| 7536 } |
| 7537 |
7414 } // namespace blink | 7538 } // namespace blink |
OLD | NEW |