| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 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 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 124 |
| 125 WebPluginContainer* getWebPluginContainer(WebView* webView, const WebString& id) | 125 WebPluginContainer* getWebPluginContainer(WebView* webView, const WebString& id) |
| 126 { | 126 { |
| 127 WebElement element = webView->mainFrame()->document().getElementById(id); | 127 WebElement element = webView->mainFrame()->document().getElementById(id); |
| 128 return element.pluginContainer(); | 128 return element.pluginContainer(); |
| 129 } | 129 } |
| 130 | 130 |
| 131 TEST_F(WebPluginContainerTest, WindowToLocalPointTest) | 131 TEST_F(WebPluginContainerTest, WindowToLocalPointTest) |
| 132 { | 132 { |
| 133 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); | 133 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); |
| 134 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper
. |
| 134 FrameTestHelpers::WebViewHelper webViewHelper; | 135 FrameTestHelpers::WebViewHelper webViewHelper; |
| 135 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, new TestPluginWebFrameClient()); | 136 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, &pluginWebFrameClient); |
| 136 ASSERT(webView); | 137 ASSERT(webView); |
| 137 webView->settings()->setPluginsEnabled(true); | 138 webView->settings()->setPluginsEnabled(true); |
| 138 webView->resize(WebSize(300, 300)); | 139 webView->resize(WebSize(300, 300)); |
| 139 webView->layout(); | 140 webView->layout(); |
| 140 runPendingTasks(); | 141 runPendingTasks(); |
| 141 | 142 |
| 142 WebPluginContainer* pluginContainerOne = getWebPluginContainer(webView, WebS
tring::fromUTF8("translated-plugin")); | 143 WebPluginContainer* pluginContainerOne = getWebPluginContainer(webView, WebS
tring::fromUTF8("translated-plugin")); |
| 143 ASSERT(pluginContainerOne); | 144 ASSERT(pluginContainerOne); |
| 144 WebPoint point1 = pluginContainerOne->rootFrameToLocalPoint(WebPoint(10, 10)
); | 145 WebPoint point1 = pluginContainerOne->rootFrameToLocalPoint(WebPoint(10, 10)
); |
| 145 ASSERT_EQ(0, point1.x); | 146 ASSERT_EQ(0, point1.x); |
| 146 ASSERT_EQ(0, point1.y); | 147 ASSERT_EQ(0, point1.y); |
| 147 WebPoint point2 = pluginContainerOne->rootFrameToLocalPoint(WebPoint(100, 10
0)); | 148 WebPoint point2 = pluginContainerOne->rootFrameToLocalPoint(WebPoint(100, 10
0)); |
| 148 ASSERT_EQ(90, point2.x); | 149 ASSERT_EQ(90, point2.x); |
| 149 ASSERT_EQ(90, point2.y); | 150 ASSERT_EQ(90, point2.y); |
| 150 | 151 |
| 151 WebPluginContainer* pluginContainerTwo = getWebPluginContainer(webView, WebS
tring::fromUTF8("rotated-plugin")); | 152 WebPluginContainer* pluginContainerTwo = getWebPluginContainer(webView, WebS
tring::fromUTF8("rotated-plugin")); |
| 152 ASSERT(pluginContainerTwo); | 153 ASSERT(pluginContainerTwo); |
| 153 WebPoint point3 = pluginContainerTwo->rootFrameToLocalPoint(WebPoint(0, 10))
; | 154 WebPoint point3 = pluginContainerTwo->rootFrameToLocalPoint(WebPoint(0, 10))
; |
| 154 ASSERT_EQ(10, point3.x); | 155 ASSERT_EQ(10, point3.x); |
| 155 ASSERT_EQ(0, point3.y); | 156 ASSERT_EQ(0, point3.y); |
| 156 WebPoint point4 = pluginContainerTwo->rootFrameToLocalPoint(WebPoint(-10, 10
)); | 157 WebPoint point4 = pluginContainerTwo->rootFrameToLocalPoint(WebPoint(-10, 10
)); |
| 157 ASSERT_EQ(10, point4.x); | 158 ASSERT_EQ(10, point4.x); |
| 158 ASSERT_EQ(10, point4.y); | 159 ASSERT_EQ(10, point4.y); |
| 159 } | 160 } |
| 160 | 161 |
| 161 TEST_F(WebPluginContainerTest, PrintOnePage) | 162 TEST_F(WebPluginContainerTest, PrintOnePage) |
| 162 { | 163 { |
| 163 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("test.pdf"), WebString::fromUTF8("application/pdf")
); | 164 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("test.pdf"), WebString::fromUTF8("application/pdf")
); |
| 164 | 165 |
| 166 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper
. |
| 165 FrameTestHelpers::WebViewHelper webViewHelper; | 167 FrameTestHelpers::WebViewHelper webViewHelper; |
| 166 TestPluginWebFrameClient* testClient = new TestPluginWebFrameClient(); | 168 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "test.pdf", t
rue, &pluginWebFrameClient); |
| 167 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "test.pdf", t
rue, testClient); | |
| 168 ASSERT(webView); | 169 ASSERT(webView); |
| 169 webView->layout(); | 170 webView->layout(); |
| 170 runPendingTasks(); | 171 runPendingTasks(); |
| 171 WebFrame* frame = webView->mainFrame(); | 172 WebFrame* frame = webView->mainFrame(); |
| 172 | 173 |
| 173 WebPrintParams printParams; | 174 WebPrintParams printParams; |
| 174 printParams.printContentArea.width = 500; | 175 printParams.printContentArea.width = 500; |
| 175 printParams.printContentArea.height = 500; | 176 printParams.printContentArea.height = 500; |
| 176 | 177 |
| 177 frame->printBegin(printParams); | 178 frame->printBegin(printParams); |
| 178 SkPictureRecorder recorder; | 179 SkPictureRecorder recorder; |
| 179 frame->printPage(0, recorder.beginRecording(IntRect())); | 180 frame->printPage(0, recorder.beginRecording(IntRect())); |
| 180 frame->printEnd(); | 181 frame->printEnd(); |
| 181 ASSERT(testClient->printedAtLeastOnePage()); | 182 ASSERT(pluginWebFrameClient.printedAtLeastOnePage()); |
| 182 } | 183 } |
| 183 | 184 |
| 184 TEST_F(WebPluginContainerTest, PrintAllPages) | 185 TEST_F(WebPluginContainerTest, PrintAllPages) |
| 185 { | 186 { |
| 186 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("test.pdf"), WebString::fromUTF8("application/pdf")
); | 187 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("test.pdf"), WebString::fromUTF8("application/pdf")
); |
| 187 | 188 |
| 189 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper
. |
| 188 FrameTestHelpers::WebViewHelper webViewHelper; | 190 FrameTestHelpers::WebViewHelper webViewHelper; |
| 189 TestPluginWebFrameClient* testClient = new TestPluginWebFrameClient(); | 191 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "test.pdf", t
rue, &pluginWebFrameClient); |
| 190 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "test.pdf", t
rue, testClient); | |
| 191 ASSERT(webView); | 192 ASSERT(webView); |
| 192 webView->layout(); | 193 webView->layout(); |
| 193 runPendingTasks(); | 194 runPendingTasks(); |
| 194 WebFrame* frame = webView->mainFrame(); | 195 WebFrame* frame = webView->mainFrame(); |
| 195 | 196 |
| 196 WebPrintParams printParams; | 197 WebPrintParams printParams; |
| 197 printParams.printContentArea.width = 500; | 198 printParams.printContentArea.width = 500; |
| 198 printParams.printContentArea.height = 500; | 199 printParams.printContentArea.height = 500; |
| 199 | 200 |
| 200 frame->printBegin(printParams); | 201 frame->printBegin(printParams); |
| 201 SkPictureRecorder recorder; | 202 SkPictureRecorder recorder; |
| 202 frame->printPagesWithBoundaries(recorder.beginRecording(IntRect()), WebSize(
)); | 203 frame->printPagesWithBoundaries(recorder.beginRecording(IntRect()), WebSize(
)); |
| 203 frame->printEnd(); | 204 frame->printEnd(); |
| 204 ASSERT(testClient->printedAtLeastOnePage()); | 205 ASSERT(pluginWebFrameClient.printedAtLeastOnePage()); |
| 205 } | 206 } |
| 206 | 207 |
| 207 TEST_F(WebPluginContainerTest, LocalToWindowPointTest) | 208 TEST_F(WebPluginContainerTest, LocalToWindowPointTest) |
| 208 { | 209 { |
| 209 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); | 210 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); |
| 210 FrameTestHelpers::WebViewHelper webViewHelper; | 211 FrameTestHelpers::WebViewHelper webViewHelper; |
| 211 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, new TestPluginWebFrameClient()); | 212 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, new TestPluginWebFrameClient()); |
| 212 ASSERT(webView); | 213 ASSERT(webView); |
| 213 webView->settings()->setPluginsEnabled(true); | 214 webView->settings()->setPluginsEnabled(true); |
| 214 webView->resize(WebSize(300, 300)); | 215 webView->resize(WebSize(300, 300)); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 231 ASSERT_EQ(10, point3.y); | 232 ASSERT_EQ(10, point3.y); |
| 232 WebPoint point4 = pluginContainerTwo->localToRootFramePoint(WebPoint(10, 10)
); | 233 WebPoint point4 = pluginContainerTwo->localToRootFramePoint(WebPoint(10, 10)
); |
| 233 ASSERT_EQ(-10, point4.x); | 234 ASSERT_EQ(-10, point4.x); |
| 234 ASSERT_EQ(10, point4.y); | 235 ASSERT_EQ(10, point4.y); |
| 235 } | 236 } |
| 236 | 237 |
| 237 // Verifies executing the command 'Copy' results in copying to the clipboard. | 238 // Verifies executing the command 'Copy' results in copying to the clipboard. |
| 238 TEST_F(WebPluginContainerTest, Copy) | 239 TEST_F(WebPluginContainerTest, Copy) |
| 239 { | 240 { |
| 240 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); | 241 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); |
| 242 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper
. |
| 241 FrameTestHelpers::WebViewHelper webViewHelper; | 243 FrameTestHelpers::WebViewHelper webViewHelper; |
| 242 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, new TestPluginWebFrameClient()); | 244 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, &pluginWebFrameClient); |
| 243 ASSERT(webView); | 245 ASSERT(webView); |
| 244 webView->settings()->setPluginsEnabled(true); | 246 webView->settings()->setPluginsEnabled(true); |
| 245 webView->resize(WebSize(300, 300)); | 247 webView->resize(WebSize(300, 300)); |
| 246 webView->layout(); | 248 webView->layout(); |
| 247 runPendingTasks(); | 249 runPendingTasks(); |
| 248 | 250 |
| 249 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE
lementById(WebString::fromUTF8("translated-plugin")); | 251 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE
lementById(WebString::fromUTF8("translated-plugin")); |
| 250 EXPECT_TRUE(webView->mainFrame()->executeCommand("Copy", pluginContainerOne
Element)); | 252 EXPECT_TRUE(webView->mainFrame()->executeCommand("Copy", pluginContainerOne
Element)); |
| 251 EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(We
bClipboard::Buffer())); | 253 EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(We
bClipboard::Buffer())); |
| 252 } | 254 } |
| 253 | 255 |
| 254 // Verifies |Ctrl-C| and |Ctrl-Insert| keyboard events, results in copying to | 256 // Verifies |Ctrl-C| and |Ctrl-Insert| keyboard events, results in copying to |
| 255 // the clipboard. | 257 // the clipboard. |
| 256 TEST_F(WebPluginContainerTest, CopyInsertKeyboardEventsTest) | 258 TEST_F(WebPluginContainerTest, CopyInsertKeyboardEventsTest) |
| 257 { | 259 { |
| 258 URLTestHelpers::registerMockedURLFromBaseURL( | 260 URLTestHelpers::registerMockedURLFromBaseURL( |
| 259 WebString::fromUTF8(m_baseURL.c_str()), | 261 WebString::fromUTF8(m_baseURL.c_str()), |
| 260 WebString::fromUTF8("plugin_container.html")); | 262 WebString::fromUTF8("plugin_container.html")); |
| 263 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper
. |
| 261 FrameTestHelpers::WebViewHelper webViewHelper; | 264 FrameTestHelpers::WebViewHelper webViewHelper; |
| 262 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, new TestPluginWebFrameClient()); | 265 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, &pluginWebFrameClient); |
| 263 ASSERT(webView); | 266 ASSERT(webView); |
| 264 webView->settings()->setPluginsEnabled(true); | 267 webView->settings()->setPluginsEnabled(true); |
| 265 webView->resize(WebSize(300, 300)); | 268 webView->resize(WebSize(300, 300)); |
| 266 webView->layout(); | 269 webView->layout(); |
| 267 runPendingTasks(); | 270 runPendingTasks(); |
| 268 | 271 |
| 269 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE
lementById(WebString::fromUTF8("translated-plugin")); | 272 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE
lementById(WebString::fromUTF8("translated-plugin")); |
| 270 PlatformEvent::Modifiers modifierKey = PlatformEvent::CtrlKey; | 273 PlatformEvent::Modifiers modifierKey = PlatformEvent::CtrlKey; |
| 271 #if OS(MACOSX) | 274 #if OS(MACOSX) |
| 272 modifierKey = PlatformEvent::MetaKey; | 275 modifierKey = PlatformEvent::MetaKey; |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 webView->handleInputEvent(event); | 356 webView->handleInputEvent(event); |
| 354 runPendingTasks(); | 357 runPendingTasks(); |
| 355 | 358 |
| 356 EXPECT_EQ(WebInputEvent::GestureLongPress, testPlugin->getLastInputEventType
()); | 359 EXPECT_EQ(WebInputEvent::GestureLongPress, testPlugin->getLastInputEventType
()); |
| 357 } | 360 } |
| 358 | 361 |
| 359 // Verify that isRectTopmost returns false when the document is detached. | 362 // Verify that isRectTopmost returns false when the document is detached. |
| 360 TEST_F(WebPluginContainerTest, IsRectTopmostTest) | 363 TEST_F(WebPluginContainerTest, IsRectTopmostTest) |
| 361 { | 364 { |
| 362 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); | 365 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c
_str()), WebString::fromUTF8("plugin_container.html")); |
| 366 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper
. |
| 363 FrameTestHelpers::WebViewHelper webViewHelper; | 367 FrameTestHelpers::WebViewHelper webViewHelper; |
| 364 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, new TestPluginWebFrameClient()); | 368 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta
iner.html", true, &pluginWebFrameClient); |
| 365 ASSERT(webView); | 369 ASSERT(webView); |
| 366 webView->settings()->setPluginsEnabled(true); | 370 webView->settings()->setPluginsEnabled(true); |
| 367 webView->resize(WebSize(300, 300)); | 371 webView->resize(WebSize(300, 300)); |
| 368 webView->layout(); | 372 webView->layout(); |
| 369 runPendingTasks(); | 373 runPendingTasks(); |
| 370 | 374 |
| 371 RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl = | 375 RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl = |
| 372 toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromU
TF8("translated-plugin"))); | 376 toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromU
TF8("translated-plugin"))); |
| 373 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300)); | 377 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300)); |
| 374 | 378 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 TopmostPlugin* testPlugin = static_cast<TopmostPlugin*>(pluginContainerImpl-
>plugin()); | 433 TopmostPlugin* testPlugin = static_cast<TopmostPlugin*>(pluginContainerImpl-
>plugin()); |
| 430 EXPECT_TRUE(testPlugin->isRectTopmost()); | 434 EXPECT_TRUE(testPlugin->isRectTopmost()); |
| 431 | 435 |
| 432 // Cause the plugin's frame to be detached. | 436 // Cause the plugin's frame to be detached. |
| 433 webViewHelper.reset(); | 437 webViewHelper.reset(); |
| 434 | 438 |
| 435 EXPECT_FALSE(pluginContainerImpl->isRectTopmost(topmostRect)); | 439 EXPECT_FALSE(pluginContainerImpl->isRectTopmost(topmostRect)); |
| 436 } | 440 } |
| 437 | 441 |
| 438 } // namespace blink | 442 } // namespace blink |
| OLD | NEW |