| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 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 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseU
RL.c_str()), WebString::fromUTF8(fileName.c_str())); | 221 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseU
RL.c_str()), WebString::fromUTF8(fileName.c_str())); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void testAutoResize(const WebSize& minAutoResize, const WebSize& maxAutoResi
ze, | 224 void testAutoResize(const WebSize& minAutoResize, const WebSize& maxAutoResi
ze, |
| 225 const std::string& pageWidth, const std::string& pageHei
ght, | 225 const std::string& pageWidth, const std::string& pageHei
ght, |
| 226 int expectedWidth, int expectedHeight, | 226 int expectedWidth, int expectedHeight, |
| 227 HorizontalScrollbarState expectedHorizontalState, Vertic
alScrollbarState expectedVerticalState); | 227 HorizontalScrollbarState expectedHorizontalState, Vertic
alScrollbarState expectedVerticalState); |
| 228 | 228 |
| 229 void testTextInputType(WebTextInputType expectedType, const std::string& htm
lFile); | 229 void testTextInputType(WebTextInputType expectedType, const std::string& htm
lFile); |
| 230 void testInputMode(const WebString& expectedInputMode, const std::string& ht
mlFile); | 230 void testInputMode(const WebString& expectedInputMode, const std::string& ht
mlFile); |
| 231 void testSelectionRootBounds(const char* htmlFile, float pageScaleFactor); | |
| 232 | 231 |
| 233 std::string m_baseURL; | 232 std::string m_baseURL; |
| 234 FrameTestHelpers::WebViewHelper m_webViewHelper; | 233 FrameTestHelpers::WebViewHelper m_webViewHelper; |
| 235 }; | 234 }; |
| 236 | 235 |
| 237 TEST_F(WebViewTest, SaveImageAt) | 236 TEST_F(WebViewTest, SaveImageAt) |
| 238 { | 237 { |
| 239 SaveImageFromDataURLWebViewClient client; | 238 SaveImageFromDataURLWebViewClient client; |
| 240 | 239 |
| 241 std::string url = m_baseURL + "image-with-data-url.html"; | 240 std::string url = m_baseURL + "image-with-data-url.html"; |
| (...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1000 mainFrameLocal->loader().load(FrameLoadRequest(mainFrameLocal->document(), R
esourceRequest(mainFrameLocal->document()->completeURL("#b")))); | 999 mainFrameLocal->loader().load(FrameLoadRequest(mainFrameLocal->document(), R
esourceRequest(mainFrameLocal->document()->completeURL("#b")))); |
| 1001 RefPtrWillBePersistent<HistoryItem> item3 = mainFrameLocal->loader().current
Item(); | 1000 RefPtrWillBePersistent<HistoryItem> item3 = mainFrameLocal->loader().current
Item(); |
| 1002 | 1001 |
| 1003 // Go back, then forward. The scroll position should be properly set on the
forward navigation. | 1002 // Go back, then forward. The scroll position should be properly set on the
forward navigation. |
| 1004 mainFrameLocal->loader().loadHistoryItem(item1.get(), FrameLoadTypeBackForwa
rd, HistorySameDocumentLoad); | 1003 mainFrameLocal->loader().loadHistoryItem(item1.get(), FrameLoadTypeBackForwa
rd, HistorySameDocumentLoad); |
| 1005 mainFrameLocal->loader().loadHistoryItem(item3.get(), FrameLoadTypeBackForwa
rd, HistorySameDocumentLoad); | 1004 mainFrameLocal->loader().loadHistoryItem(item3.get(), FrameLoadTypeBackForwa
rd, HistorySameDocumentLoad); |
| 1006 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); | 1005 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); |
| 1007 EXPECT_GT(webViewImpl->mainFrame()->scrollOffset().height, 2000); | 1006 EXPECT_GT(webViewImpl->mainFrame()->scrollOffset().height, 2000); |
| 1008 } | 1007 } |
| 1009 | 1008 |
| 1010 class EnterFullscreenWebViewClient : public FrameTestHelpers::TestWebViewClient
{ | |
| 1011 public: | |
| 1012 // WebViewClient methods | |
| 1013 virtual bool enterFullScreen() { return true; } | |
| 1014 virtual void exitFullScreen() { } | |
| 1015 }; | |
| 1016 | |
| 1017 | |
| 1018 TEST_F(WebViewTest, EnterFullscreenResetScrollAndScaleState) | 1009 TEST_F(WebViewTest, EnterFullscreenResetScrollAndScaleState) |
| 1019 { | 1010 { |
| 1020 EnterFullscreenWebViewClient client; | 1011 FrameTestHelpers::TestWebViewClient client; |
| 1021 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("hello_world.html")); | 1012 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("hello_world.html")); |
| 1022 WebViewImpl* webViewImpl = m_webViewHelper.initializeAndLoad(m_baseURL + "he
llo_world.html", true, 0, &client); | 1013 WebViewImpl* webViewImpl = m_webViewHelper.initializeAndLoad(m_baseURL + "he
llo_world.html", true, 0, &client); |
| 1023 webViewImpl->resize(WebSize(640, 480)); | 1014 webViewImpl->resize(WebSize(640, 480)); |
| 1024 webViewImpl->layout(); | 1015 webViewImpl->layout(); |
| 1025 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); | 1016 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().width); |
| 1026 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().height); | 1017 EXPECT_EQ(0, webViewImpl->mainFrame()->scrollOffset().height); |
| 1027 | 1018 |
| 1028 // Make the page scale and scroll with the given paremeters. | 1019 // Make the page scale and scroll with the given paremeters. |
| 1029 webViewImpl->setPageScaleFactor(2.0f); | 1020 webViewImpl->setPageScaleFactor(2.0f); |
| 1030 webViewImpl->setMainFrameScrollOffset(WebPoint(116, 84)); | 1021 webViewImpl->setMainFrameScrollOffset(WebPoint(116, 84)); |
| (...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1990 #if ENABLE(OILPAN) | 1981 #if ENABLE(OILPAN) |
| 1991 // For oilpan we have to force a GC to ensure the event handlers have been r
emoved when | 1982 // For oilpan we have to force a GC to ensure the event handlers have been r
emoved when |
| 1992 // checking below. We do a precise GC (collectAllGarbage does not scan the s
tack) | 1983 // checking below. We do a precise GC (collectAllGarbage does not scan the s
tack) |
| 1993 // to ensure the div element dies. This is also why the Document is in a Per
sistent | 1984 // to ensure the div element dies. This is also why the Document is in a Per
sistent |
| 1994 // since we want that to stay around. | 1985 // since we want that to stay around. |
| 1995 Heap::collectAllGarbage(); | 1986 Heap::collectAllGarbage(); |
| 1996 #endif | 1987 #endif |
| 1997 EXPECT_FALSE(registry.hasEventHandlers(EventHandlerRegistry::ScrollEvent)); | 1988 EXPECT_FALSE(registry.hasEventHandlers(EventHandlerRegistry::ScrollEvent)); |
| 1998 } | 1989 } |
| 1999 | 1990 |
| 2000 static WebRect ExpectedRootBounds(Document* document, float scaleFactor) | |
| 2001 { | |
| 2002 Element* element = document->getElementById("root"); | |
| 2003 if (!element) | |
| 2004 element = document->getElementById("target"); | |
| 2005 if (element->hasTagName(HTMLNames::iframeTag)) | |
| 2006 return ExpectedRootBounds(toHTMLIFrameElement(element)->contentDocument(
), scaleFactor); | |
| 2007 | |
| 2008 IntRect boundingBox; | |
| 2009 if (element->hasTagName(HTMLNames::htmlTag)) | |
| 2010 boundingBox = IntRect(IntPoint(0, 0), document->frame()->view()->content
sSize()); | |
| 2011 else | |
| 2012 boundingBox = element->pixelSnappedBoundingBox(); | |
| 2013 boundingBox = document->frame()->view()->contentsToWindow(boundingBox); | |
| 2014 boundingBox.scale(scaleFactor); | |
| 2015 return boundingBox; | |
| 2016 } | |
| 2017 | |
| 2018 void WebViewTest::testSelectionRootBounds(const char* htmlFile, float pageScaleF
actor) | |
| 2019 { | |
| 2020 std::string url = m_baseURL + htmlFile; | |
| 2021 | |
| 2022 WebView* webView = m_webViewHelper.initializeAndLoad(url, true); | |
| 2023 webView->resize(WebSize(640, 480)); | |
| 2024 webView->setPageScaleFactor(pageScaleFactor); | |
| 2025 webView->layout(); | |
| 2026 runPendingTasks(); | |
| 2027 | |
| 2028 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webView->mainFrame()); | |
| 2029 EXPECT_TRUE(frame->frame()->document()->isHTMLDocument()); | |
| 2030 HTMLDocument* document = toHTMLDocument(frame->frame()->document()); | |
| 2031 | |
| 2032 WebRect anchor, focus; | |
| 2033 webView->selectionBounds(anchor, focus); | |
| 2034 IntRect expectedIntRect = ExpectedRootBounds(document, webView->pageScaleFac
tor()); | |
| 2035 ASSERT_TRUE(expectedIntRect.contains(anchor)); | |
| 2036 // The "overflow" tests have the focus boundary outside of the element box. | |
| 2037 ASSERT_EQ(url.find("overflow") == std::string::npos, expectedIntRect.contain
s(focus)); | |
| 2038 } | |
| 2039 | |
| 2040 class NonUserInputTextUpdateWebViewClient : public FrameTestHelpers::TestWebView
Client { | 1991 class NonUserInputTextUpdateWebViewClient : public FrameTestHelpers::TestWebView
Client { |
| 2041 public: | 1992 public: |
| 2042 NonUserInputTextUpdateWebViewClient() : m_textIsUpdated(false) { } | 1993 NonUserInputTextUpdateWebViewClient() : m_textIsUpdated(false) { } |
| 2043 | 1994 |
| 2044 // WebWidgetClient methods | 1995 // WebWidgetClient methods |
| 2045 virtual void didUpdateTextOfFocusedElementByNonUserInput() override | 1996 virtual void didUpdateTextOfFocusedElementByNonUserInput() override |
| 2046 { | 1997 { |
| 2047 m_textIsUpdated = true; | 1998 m_textIsUpdated = true; |
| 2048 } | 1999 } |
| 2049 | 2000 |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2438 // Test without any preventDefault. | 2389 // Test without any preventDefault. |
| 2439 client.reset(); | 2390 client.reset(); |
| 2440 frame->executeScript(WebScriptSource("setTest('none');")); | 2391 frame->executeScript(WebScriptSource("setTest('none');")); |
| 2441 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, WebString::fr
omUTF8("target"))); | 2392 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, WebString::fr
omUTF8("target"))); |
| 2442 EXPECT_TRUE(client.getWasCalled()); | 2393 EXPECT_TRUE(client.getWasCalled()); |
| 2443 | 2394 |
| 2444 m_webViewHelper.reset(); // Remove dependency on locally scoped client. | 2395 m_webViewHelper.reset(); // Remove dependency on locally scoped client. |
| 2445 } | 2396 } |
| 2446 | 2397 |
| 2447 } // namespace | 2398 } // namespace |
| OLD | NEW |