| OLD | NEW |
| 1 #include "config.h" | 1 #include "config.h" |
| 2 | 2 |
| 3 #include <gtest/gtest.h> | 3 #include <gtest/gtest.h> |
| 4 #include "FrameTestHelpers.h" | 4 #include "FrameTestHelpers.h" |
| 5 #include "URLTestHelpers.h" | 5 #include "URLTestHelpers.h" |
| 6 #include "WebFrame.h" | 6 #include "WebFrame.h" |
| 7 #include "WebFrameClient.h" | 7 #include "WebFrameClient.h" |
| 8 #include "WebFrameImpl.h" | 8 #include "WebFrameImpl.h" |
| 9 #include "WebHistoryItem.h" | 9 #include "WebHistoryItem.h" |
| 10 #include "WebInputEvent.h" | 10 #include "WebInputEvent.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 | 54 |
| 55 FrameTestHelpers::WebViewHelper webViewHelper; | 55 FrameTestHelpers::WebViewHelper webViewHelper; |
| 56 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.
html", true, 0, 0); | 56 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.
html", true, 0, 0); |
| 57 webView->resize(WebSize(1000, 1000)); | 57 webView->resize(WebSize(1000, 1000)); |
| 58 webView->layout(); | 58 webView->layout(); |
| 59 | 59 |
| 60 WebViewImpl* webViewImpl = toWebViewImpl(webView); | 60 WebViewImpl* webViewImpl = toWebViewImpl(webView); |
| 61 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); | 61 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); |
| 62 frame->loader().setLoadType(FrameLoadTypeBackForward); | 62 frame->loader().setLoadType(FrameLoadTypeBackForward); |
| 63 | 63 |
| 64 webViewImpl->setPageScaleFactor(3.0f, WebPoint(0, 500)); | 64 webViewImpl->setPinchViewportScaleFactor(3.0f); |
| 65 webViewImpl->setMainFrameScrollOffset(WebPoint(0, 500)); |
| 65 frame->view()->setWasScrolledByUser(false); | 66 frame->view()->setWasScrolledByUser(false); |
| 66 frame->loader().currentItem()->setPageScaleFactor(2); | 67 frame->loader().currentItem()->setPageScaleFactor(2); |
| 67 frame->loader().currentItem()->setScrollPoint(WebPoint(0, 200)); | 68 frame->loader().currentItem()->setScrollPoint(WebPoint(0, 200)); |
| 68 | 69 |
| 69 // Flip back the wasScrolledByUser flag which was set to true by setPageScal
eFactor | 70 // Flip back the wasScrolledByUser flag which was set to true by setPageScal
eFactor |
| 70 // because otherwise FrameLoader::restoreScrollPositionAndViewState does not
hing. | 71 // because otherwise FrameLoader::restoreScrollPositionAndViewState does not
hing. |
| 71 frame->view()->setWasScrolledByUser(false); | 72 frame->view()->setWasScrolledByUser(false); |
| 72 frame->loader().restoreScrollPositionAndViewState(); | 73 frame->loader().restoreScrollPositionAndViewState(); |
| 73 | 74 |
| 74 // Expect that both scroll and scale were restored, and that it was not a pr
ogrammatic scroll. | 75 // Expect that both scroll and scale were restored, and that it was not a pr
ogrammatic scroll. |
| 75 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); | 76 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); |
| 76 EXPECT_EQ(200, webViewImpl->mainFrameImpl()->scrollOffset().height); | 77 EXPECT_EQ(200, webViewImpl->mainFrameImpl()->scrollOffset().height); |
| 77 EXPECT_TRUE(frame->view()->wasScrolledByUser()); | 78 EXPECT_TRUE(frame->view()->wasScrolledByUser()); |
| 78 } | 79 } |
| 79 | 80 |
| 80 TEST_F(ProgrammaticScrollTest, RestoreScrollPositionAndViewStateWithoutScale) | 81 TEST_F(ProgrammaticScrollTest, RestoreScrollPositionAndViewStateWithoutScale) |
| 81 { | 82 { |
| 82 registerMockedHttpURLLoad("long_scroll.html"); | 83 registerMockedHttpURLLoad("long_scroll.html"); |
| 83 | 84 |
| 84 FrameTestHelpers::WebViewHelper webViewHelper; | 85 FrameTestHelpers::WebViewHelper webViewHelper; |
| 85 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.
html", true, 0, 0); | 86 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.
html", true, 0, 0); |
| 86 webView->resize(WebSize(1000, 1000)); | 87 webView->resize(WebSize(1000, 1000)); |
| 87 webView->layout(); | 88 webView->layout(); |
| 88 | 89 |
| 89 WebViewImpl* webViewImpl = toWebViewImpl(webView); | 90 WebViewImpl* webViewImpl = toWebViewImpl(webView); |
| 90 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); | 91 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); |
| 91 frame->loader().setLoadType(FrameLoadTypeBackForward); | 92 frame->loader().setLoadType(FrameLoadTypeBackForward); |
| 92 | 93 |
| 93 webViewImpl->setPageScaleFactor(3.0f, WebPoint(0, 500)); | 94 webViewImpl->setPinchViewportScaleFactor(3.0f); |
| 95 webViewImpl->setMainFrameScrollOffset(WebPoint(0, 500)); |
| 94 frame->view()->setWasScrolledByUser(false); | 96 frame->view()->setWasScrolledByUser(false); |
| 95 frame->loader().currentItem()->setPageScaleFactor(0); | 97 frame->loader().currentItem()->setPageScaleFactor(0); |
| 96 frame->loader().currentItem()->setScrollPoint(WebPoint(0, 400)); | 98 frame->loader().currentItem()->setScrollPoint(WebPoint(0, 400)); |
| 97 | 99 |
| 98 // FrameLoader::restoreScrollPositionAndViewState flows differently if scale
is zero. | 100 // FrameLoader::restoreScrollPositionAndViewState flows differently if scale
is zero. |
| 99 frame->loader().restoreScrollPositionAndViewState(); | 101 frame->loader().restoreScrollPositionAndViewState(); |
| 100 | 102 |
| 101 // Expect that only the scroll position was restored, and that it was not a
programmatic scroll. | 103 // Expect that only the scroll position was restored, and that it was not a
programmatic scroll. |
| 102 EXPECT_EQ(3.0f, webViewImpl->pageScaleFactor()); | 104 EXPECT_EQ(3.0f, webViewImpl->pageScaleFactor()); |
| 103 EXPECT_EQ(400, webViewImpl->mainFrameImpl()->scrollOffset().height); | 105 EXPECT_EQ(400, webViewImpl->mainFrameImpl()->scrollOffset().height); |
| 104 EXPECT_TRUE(frame->view()->wasScrolledByUser()); | 106 EXPECT_TRUE(frame->view()->wasScrolledByUser()); |
| 105 } | 107 } |
| 106 | 108 |
| 107 } | 109 } |
| OLD | NEW |