| Index: content/renderer/browser_plugin/browser_plugin_browsertest.cc
|
| diff --git a/content/renderer/browser_plugin/browser_plugin_browsertest.cc b/content/renderer/browser_plugin/browser_plugin_browsertest.cc
|
| index 6d23e0cade9a60e29e69858877d2a91a49377dde..d6f7109b16f20c659b039fd9714ef5d3f8aec131 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin_browsertest.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin_browsertest.cc
|
| @@ -244,15 +244,15 @@ TEST_F(BrowserPluginTest, GuestCrash) {
|
| BrowserPluginHostMsg_HandleInputEvent::ID));
|
| browser_plugin_manager()->sink().ClearMessages();
|
|
|
| - const char* kAddEventListener =
|
| + const char* kAddCustomEventListener =
|
| "var msg;"
|
| "function crashListener() {"
|
| " msg = 'crashed';"
|
| "}"
|
| "document.getElementById('browserplugin')."
|
| - " addEventListener('crash', crashListener);";
|
| + " addCustomEventListener('crash', crashListener);";
|
|
|
| - ExecuteJavaScript(kAddEventListener);
|
| + ExecuteJavaScript(kAddCustomEventListener);
|
|
|
| // Pretend that the guest has crashed
|
| browser_plugin->GuestCrashed();
|
| @@ -283,21 +283,21 @@ TEST_F(BrowserPluginTest, RemovePlugin) {
|
| }
|
|
|
| TEST_F(BrowserPluginTest, CustomEvents) {
|
| - const char* kAddEventListener =
|
| + const char* kAddCustomEventListener =
|
| "var url;"
|
| "function nav(u) {"
|
| " url = u;"
|
| "}"
|
| "document.getElementById('browserplugin')."
|
| - " addEventListener('navigation', nav);";
|
| - const char* kRemoveEventListener =
|
| + " addCustomEventListener('navigation', nav);";
|
| + const char* kRemoveCustomEventListener =
|
| "document.getElementById('browserplugin')."
|
| - " removeEventListener('navigation', nav);";
|
| + " removeCustomEventListener('navigation', nav);";
|
| const char* kGoogleURL = "http://www.google.com/";
|
| const char* kGoogleNewsURL = "http://news.google.com/";
|
|
|
| LoadHTML(GetHTMLForBrowserPluginObject().c_str());
|
| - ExecuteJavaScript(kAddEventListener);
|
| + ExecuteJavaScript(kAddCustomEventListener);
|
| // Grab the BrowserPlugin's instance ID from its resize message.
|
| const IPC::Message* msg =
|
| browser_plugin_manager()->sink().GetFirstMessageMatching(
|
| @@ -316,11 +316,49 @@ TEST_F(BrowserPluginTest, CustomEvents) {
|
| browser_plugin->DidNavigate(GURL(kGoogleURL));
|
| EXPECT_EQ(kGoogleURL, ExecuteScriptAndReturnString("url"));
|
|
|
| - ExecuteJavaScript(kRemoveEventListener);
|
| + ExecuteJavaScript(kRemoveCustomEventListener);
|
| browser_plugin->DidNavigate(GURL(kGoogleNewsURL));
|
| // The URL variable should not change because we've removed the event
|
| // listener.
|
| EXPECT_EQ(kGoogleURL, ExecuteScriptAndReturnString("url"));
|
| }
|
|
|
| +TEST_F(BrowserPluginTest, PostMessage) {
|
| + const char* kTesting = "testing123";
|
| + const char* kPostMessage =
|
| + "var msg;"
|
| + "function receiveMessage(event) {"
|
| + " msg = event.data;"
|
| + "}"
|
| + "document.getElementById('browserplugin')."
|
| + " addEventListener('message', receiveMessage, false);"
|
| + "document.getElementById('browserplugin')."
|
| + " postMessage('testing123', '');";
|
| +
|
| + LoadHTML(GetHTMLForBrowserPluginObject().c_str());
|
| + ExecuteJavaScript(kPostMessage);
|
| +
|
| + const IPC::Message* msg =
|
| + browser_plugin_manager()->sink().GetUniqueMessageMatching(
|
| + BrowserPluginHostMsg_RouteMessageEvent::ID);
|
| + ASSERT_TRUE(msg);
|
| + int instance_id;
|
| + string16 data;
|
| + string16 target_origin;
|
| + PickleIterator iter(*msg);
|
| + ASSERT_TRUE(IPC::ReadParam(msg, &iter, &instance_id));
|
| + ASSERT_TRUE(IPC::ReadParam(msg, &iter, &data));
|
| + ASSERT_TRUE(IPC::ReadParam(msg, &iter, &target_origin));
|
| +
|
| + MockBrowserPlugin* browser_plugin =
|
| + static_cast<MockBrowserPlugin*>(
|
| + browser_plugin_manager()->GetBrowserPlugin(instance_id));
|
| + ASSERT_TRUE(browser_plugin);
|
| +
|
| + // Fire a message event in the embedder and verify that it fires.
|
| + browser_plugin->ReceiveMessage(MSG_ROUTING_NONE, string16(), data);
|
| + ProcessPendingMessages();
|
| + EXPECT_EQ(kTesting, ExecuteScriptAndReturnString("msg"));
|
| +}
|
| +
|
| } // namespace content
|
|
|