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 7745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7756 EXPECT_TRUE(webFrameClient.messages.empty()); | 7756 EXPECT_TRUE(webFrameClient.messages.empty()); |
7757 ASSERT_EQ(2u, popupWebFrameClient.messages.size()); | 7757 ASSERT_EQ(2u, popupWebFrameClient.messages.size()); |
7758 EXPECT_TRUE(std::string::npos != popupWebFrameClient.messages[1].text.utf8()
.find("Blocked a frame")); | 7758 EXPECT_TRUE(std::string::npos != popupWebFrameClient.messages[1].text.utf8()
.find("Blocked a frame")); |
7759 | 7759 |
7760 // Manually reset to break WebViewHelpers' dependencies on the stack | 7760 // Manually reset to break WebViewHelpers' dependencies on the stack |
7761 // allocated WebFrameClients. | 7761 // allocated WebFrameClients. |
7762 webViewHelper.reset(); | 7762 webViewHelper.reset(); |
7763 popupWebViewHelper.reset(); | 7763 popupWebViewHelper.reset(); |
7764 } | 7764 } |
7765 | 7765 |
7766 class ViewportOnResizeTest : public ParameterizedWebFrameTest { | 7766 class DeviceEmulationTest : public ParameterizedWebFrameTest { |
7767 protected: | 7767 protected: |
7768 ViewportOnResizeTest() | 7768 DeviceEmulationTest() |
7769 : m_webViewHelper(this) | 7769 : m_webViewHelper(this) |
7770 { | 7770 { |
7771 registerMockedHttpURLLoad("viewport_emulation.html"); | 7771 registerMockedHttpURLLoad("device_emulation.html"); |
7772 m_client.m_screenInfo.deviceScaleFactor = 1; | 7772 m_client.m_screenInfo.deviceScaleFactor = 1; |
7773 m_webViewHelper.initializeAndLoad(m_baseURL + "viewport_emulation.html",
true, 0, &m_client); | 7773 m_webViewHelper.initializeAndLoad(m_baseURL + "device_emulation.html", t
rue, 0, &m_client); |
7774 } | 7774 } |
7775 | 7775 |
7776 void testResize(const WebSize size, const String& expectedSize) | 7776 void testResize(const WebSize size, const String& expectedSize) |
7777 { | 7777 { |
7778 m_client.m_screenInfo.rect = WebRect(0, 0, size.width, size.height); | 7778 m_client.m_screenInfo.rect = WebRect(0, 0, size.width, size.height); |
7779 m_client.m_screenInfo.availableRect = m_client.m_screenInfo.rect; | 7779 m_client.m_screenInfo.availableRect = m_client.m_screenInfo.rect; |
7780 m_webViewHelper.webView()->resize(size); | 7780 m_webViewHelper.webView()->resize(size); |
7781 m_webViewHelper.webView()->layout(); | 7781 m_webViewHelper.webView()->layout(); |
| 7782 EXPECT_EQ(expectedSize, dumpSize("test")); |
| 7783 } |
7782 | 7784 |
| 7785 String dumpSize(const String& id) |
| 7786 { |
| 7787 String code = "dumpSize('" + id + "')"; |
7783 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 7788 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
7784 ScriptExecutionCallbackHelper callbackHelper(m_webViewHelper.webView()->
mainFrame()->mainWorldScriptContext()); | 7789 ScriptExecutionCallbackHelper callbackHelper(m_webViewHelper.webView()->
mainFrame()->mainWorldScriptContext()); |
7785 m_webViewHelper.webView()->mainFrame()->toWebLocalFrame()->requestExecut
eScriptAndReturnValue(WebScriptSource(WebString("dumpSize()")), false, &callback
Helper); | 7790 m_webViewHelper.webView()->mainFrame()->toWebLocalFrame()->requestExecut
eScriptAndReturnValue(WebScriptSource(WebString(code)), false, &callbackHelper); |
7786 runPendingTasks(); | 7791 runPendingTasks(); |
7787 EXPECT_TRUE(callbackHelper.didComplete()); | 7792 EXPECT_TRUE(callbackHelper.didComplete()); |
7788 EXPECT_EQ(expectedSize, callbackHelper.stringValue()); | 7793 return callbackHelper.stringValue(); |
7789 } | 7794 } |
7790 | 7795 |
7791 FixedLayoutTestWebViewClient m_client; | 7796 FixedLayoutTestWebViewClient m_client; |
7792 FrameTestHelpers::WebViewHelper m_webViewHelper; | 7797 FrameTestHelpers::WebViewHelper m_webViewHelper; |
7793 }; | 7798 }; |
7794 | 7799 |
7795 INSTANTIATE_TEST_CASE_P(All, ViewportOnResizeTest, ::testing::Values( | 7800 INSTANTIATE_TEST_CASE_P(All, DeviceEmulationTest, ::testing::Values( |
7796 ParameterizedWebFrameTestConfig::Default, | 7801 ParameterizedWebFrameTestConfig::Default, |
7797 ParameterizedWebFrameTestConfig::RootLayerScrolls)); | 7802 ParameterizedWebFrameTestConfig::RootLayerScrolls)); |
7798 | 7803 |
7799 TEST_P(ViewportOnResizeTest, ViewportInvalidatedOnResizeWithEmulation) | 7804 TEST_P(DeviceEmulationTest, DeviceSizeInvalidatedOnResize) |
7800 { | 7805 { |
7801 WebDeviceEmulationParams params; | 7806 WebDeviceEmulationParams params; |
7802 params.screenPosition = WebDeviceEmulationParams::Mobile; | 7807 params.screenPosition = WebDeviceEmulationParams::Mobile; |
7803 m_webViewHelper.webView()->enableDeviceEmulation(params); | 7808 m_webViewHelper.webView()->enableDeviceEmulation(params); |
7804 | 7809 |
7805 testResize(WebSize(700, 500), "300x300"); | 7810 testResize(WebSize(700, 500), "300x300"); |
7806 testResize(WebSize(710, 500), "400x300"); | 7811 testResize(WebSize(710, 500), "400x300"); |
7807 testResize(WebSize(690, 500), "200x300"); | 7812 testResize(WebSize(690, 500), "200x300"); |
7808 testResize(WebSize(700, 510), "300x400"); | 7813 testResize(WebSize(700, 510), "300x400"); |
7809 testResize(WebSize(700, 490), "300x200"); | 7814 testResize(WebSize(700, 490), "300x200"); |
7810 testResize(WebSize(710, 510), "400x400"); | 7815 testResize(WebSize(710, 510), "400x400"); |
7811 testResize(WebSize(690, 490), "200x200"); | 7816 testResize(WebSize(690, 490), "200x200"); |
7812 testResize(WebSize(800, 600), "400x400"); | 7817 testResize(WebSize(800, 600), "400x400"); |
7813 | 7818 |
7814 m_webViewHelper.webView()->disableDeviceEmulation(); | 7819 m_webViewHelper.webView()->disableDeviceEmulation(); |
7815 } | 7820 } |
7816 | 7821 |
| 7822 TEST_P(DeviceEmulationTest, PointerAndHoverTypes) |
| 7823 { |
| 7824 WebDeviceEmulationParams params; |
| 7825 params.screenPosition = WebDeviceEmulationParams::Mobile; |
| 7826 m_webViewHelper.webView()->enableDeviceEmulation(params); |
| 7827 EXPECT_EQ("20x20", dumpSize("pointer")); |
| 7828 m_webViewHelper.webView()->disableDeviceEmulation(); |
| 7829 } |
| 7830 |
7817 class WebLocalFrameScope final { | 7831 class WebLocalFrameScope final { |
7818 public: | 7832 public: |
7819 WebLocalFrameScope(WebLocalFrame* localFrame) | 7833 WebLocalFrameScope(WebLocalFrame* localFrame) |
7820 : m_localFrame(localFrame) | 7834 : m_localFrame(localFrame) |
7821 { | 7835 { |
7822 } | 7836 } |
7823 | 7837 |
7824 operator WebLocalFrame*() const | 7838 operator WebLocalFrame*() const |
7825 { | 7839 { |
7826 return m_localFrame; | 7840 return m_localFrame; |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8202 | 8216 |
8203 TEST_F(WebFrameTest, MaxFramesDetach) | 8217 TEST_F(WebFrameTest, MaxFramesDetach) |
8204 { | 8218 { |
8205 registerMockedHttpURLLoad("max-frames-detach.html"); | 8219 registerMockedHttpURLLoad("max-frames-detach.html"); |
8206 FrameTestHelpers::WebViewHelper webViewHelper; | 8220 FrameTestHelpers::WebViewHelper webViewHelper; |
8207 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "max-
frames-detach.html", true); | 8221 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "max-
frames-detach.html", true); |
8208 webViewImpl->mainFrameImpl()->collectGarbage(); | 8222 webViewImpl->mainFrameImpl()->collectGarbage(); |
8209 } | 8223 } |
8210 | 8224 |
8211 } // namespace blink | 8225 } // namespace blink |
OLD | NEW |