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 16 matching lines...) Expand all Loading... |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "config.h" | 31 #include "config.h" |
32 #include "web/FrameLoaderClientImpl.h" | 32 #include "web/FrameLoaderClientImpl.h" |
33 | 33 |
34 #include "core/loader/FrameLoader.h" | 34 #include "core/loader/FrameLoader.h" |
35 #include "platform/weborigin/KURL.h" | 35 #include "platform/weborigin/KURL.h" |
36 #include "public/web/WebFrameClient.h" | 36 #include "public/web/WebFrameClient.h" |
37 #include "public/web/WebPluginParams.h" | |
38 #include "public/web/WebPluginPlaceholder.h" | |
39 #include "public/web/WebSettings.h" | 37 #include "public/web/WebSettings.h" |
40 #include "public/web/WebView.h" | 38 #include "public/web/WebView.h" |
41 #include "web/PluginPlaceholderImpl.h" | |
42 #include "web/WebLocalFrameImpl.h" | 39 #include "web/WebLocalFrameImpl.h" |
43 #include "web/tests/FrameTestHelpers.h" | 40 #include "web/tests/FrameTestHelpers.h" |
44 #include "wtf/text/CString.h" | 41 #include "wtf/text/CString.h" |
45 #include "wtf/text/WTFString.h" | 42 #include "wtf/text/WTFString.h" |
46 #include <gmock/gmock.h> | 43 #include <gmock/gmock.h> |
47 #include <gtest/gtest.h> | 44 #include <gtest/gtest.h> |
48 | 45 |
49 using testing::_; | 46 using testing::_; |
50 using testing::Mock; | 47 using testing::Mock; |
51 using testing::Return; | 48 using testing::Return; |
52 | 49 |
53 namespace blink { | 50 namespace blink { |
54 namespace { | 51 namespace { |
55 | 52 |
56 class MockWebFrameClient : public WebFrameClient { | 53 class MockWebFrameClient : public WebFrameClient { |
57 public: | 54 public: |
58 ~MockWebFrameClient() override { } | 55 ~MockWebFrameClient() override { } |
59 | 56 |
60 MOCK_METHOD2(userAgentOverride, WebString(WebLocalFrame*, const WebURL&)); | 57 MOCK_METHOD2(userAgentOverride, WebString(WebLocalFrame*, const WebURL&)); |
61 MOCK_METHOD2(createPluginPlaceholder, WebPluginPlaceholder*(WebLocalFrame*,
const WebPluginParams&)); | |
62 }; | 58 }; |
63 | 59 |
64 class FrameLoaderClientImplTest : public ::testing::Test { | 60 class FrameLoaderClientImplTest : public ::testing::Test { |
65 protected: | 61 protected: |
66 void SetUp() override | 62 void SetUp() override |
67 { | 63 { |
68 ON_CALL(m_webFrameClient, userAgentOverride(_, _)).WillByDefault(Return(
WebString())); | 64 ON_CALL(m_webFrameClient, userAgentOverride(_, _)).WillByDefault(Return(
WebString())); |
69 | 65 |
70 FrameTestHelpers::TestWebViewClient webViewClient; | 66 FrameTestHelpers::TestWebViewClient webViewClient; |
71 m_webView = WebView::create(&webViewClient); | 67 m_webView = WebView::create(&webViewClient); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 // Override the user agent and make sure we get it back. | 107 // Override the user agent and make sure we get it back. |
112 EXPECT_CALL(webFrameClient(), userAgentOverride(_, _)).WillOnce(Return(overr
ideUserAgent)); | 108 EXPECT_CALL(webFrameClient(), userAgentOverride(_, _)).WillOnce(Return(overr
ideUserAgent)); |
113 EXPECT_TRUE(overrideUserAgent.equals(userAgent())); | 109 EXPECT_TRUE(overrideUserAgent.equals(userAgent())); |
114 Mock::VerifyAndClearExpectations(&webFrameClient()); | 110 Mock::VerifyAndClearExpectations(&webFrameClient()); |
115 | 111 |
116 // Remove the override and make sure we get the original back. | 112 // Remove the override and make sure we get the original back. |
117 EXPECT_CALL(webFrameClient(), userAgentOverride(_, _)).WillOnce(Return(WebSt
ring())); | 113 EXPECT_CALL(webFrameClient(), userAgentOverride(_, _)).WillOnce(Return(WebSt
ring())); |
118 EXPECT_TRUE(defaultUserAgent.equals(userAgent())); | 114 EXPECT_TRUE(defaultUserAgent.equals(userAgent())); |
119 } | 115 } |
120 | 116 |
121 TEST_F(FrameLoaderClientImplTest, CreatePluginPlaceholderForwardsToWebFrameClien
t) | |
122 { | |
123 KURL url(ParsedURLString, "http://www.example.com/plugin.swf"); | |
124 Vector<String> paramNames(1, "param"); | |
125 Vector<String> paramValues(1, "value"); | |
126 String mimeType = "application/x-shockwave-flash"; | |
127 bool loadManually = false; | |
128 | |
129 // Test with a valid WebPluginPlaceholder. | |
130 { | |
131 WebPluginPlaceholder* webPluginPlaceholder = new WebPluginPlaceholder; | |
132 EXPECT_CALL(webFrameClient(), createPluginPlaceholder(mainFrame(), _)) | |
133 .WillOnce(Return(webPluginPlaceholder)); | |
134 OwnPtrWillBeRawPtr<PluginPlaceholder> pluginPlaceholder = frameLoaderCli
ent().createPluginPlaceholder( | |
135 document(), url, paramNames, paramValues, mimeType, loadManually); | |
136 ASSERT_TRUE(pluginPlaceholder); | |
137 EXPECT_EQ(webPluginPlaceholder, static_cast<PluginPlaceholderImpl*>(plug
inPlaceholder.get())->webPluginPlaceholder()); | |
138 } | |
139 | |
140 // Test with no WebPluginPlaceholder. | |
141 { | |
142 EXPECT_CALL(webFrameClient(), createPluginPlaceholder(mainFrame(), _)) | |
143 .WillOnce(Return(nullptr)); | |
144 OwnPtrWillBeRawPtr<PluginPlaceholder> pluginPlaceholder = frameLoaderCli
ent().createPluginPlaceholder( | |
145 document(), url, paramNames, paramValues, mimeType, loadManually); | |
146 ASSERT_FALSE(pluginPlaceholder); | |
147 } | |
148 } | |
149 | |
150 } // namespace | 117 } // namespace |
151 } // namespace blink | 118 } // namespace blink |
OLD | NEW |