diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-03 23:21:27 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-03 23:21:27 +0000 |
commit | 4ae8a457d40bc4485e8acb527527be5be7e5321f (patch) | |
tree | f5aa7aa328a541cb003f3d9a479b930924215b24 /chrome/browser/extensions/extension_messages_unittest.cc | |
parent | 28dbc6574fc0e115ac1ba2264e159e137f9709d9 (diff) | |
download | chromium_src-4ae8a457d40bc4485e8acb527527be5be7e5321f.zip chromium_src-4ae8a457d40bc4485e8acb527527be5be7e5321f.tar.gz chromium_src-4ae8a457d40bc4485e8acb527527be5be7e5321f.tar.bz2 |
Clean up extension message port data in the renderer.
BUG=26262
Review URL: http://codereview.chromium.org/344044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30884 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_messages_unittest.cc')
-rw-r--r-- | chrome/browser/extensions/extension_messages_unittest.cc | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/chrome/browser/extensions/extension_messages_unittest.cc b/chrome/browser/extensions/extension_messages_unittest.cc index cdb78cc..98d4db0 100644 --- a/chrome/browser/extensions/extension_messages_unittest.cc +++ b/chrome/browser/extensions/extension_messages_unittest.cc @@ -147,72 +147,3 @@ TEST_F(RenderViewTest, ExtensionMessagesOnConnect) { ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param)); EXPECT_EQ(L"disconnected: 24", alert_param.a); } - -// Tests that we don't send the disconnect message until all ports have -// disconnected. -TEST_F(RenderViewTest, ExtensionMessagesDisconnect) { - LoadHTML("<body></body>"); - ExecuteJavaScript( - "chrome.extension.onConnect.addListener(function (port) {" - " port.onMessage.addListener(function(msg, p) {" - " if (msg.disconnect) port.disconnect();" - " });" - "});" - "var iframe1 = document.createElement('iframe');" - "var iframe2 = document.createElement('iframe');" - "var src = 'javascript:" - " chrome.extension.onConnect.addListener(function(port) {" - " port.postMessage(\"onconnect\");" - " port.onMessage.addListener(function(p) { alert(\"NOTREACHED\"); });" - " port.disconnect();" - " });';" - "iframe1.src = src;" - "iframe2.src = src;" - "document.body.appendChild(iframe1);" - "document.body.appendChild(iframe2);"); - - render_thread_.sink().ClearMessages(); - - // Simulate a new connection being opened. The two child frames should - // disconnect immediately, but we shouldn't get a disconnect message until - // all 3 frames disconnect. - const int kPortId = 0; - const std::string kPortName = "testName"; - DispatchOnConnect(kPortId, kPortName, "null"); - - // Verify that we handled the new connection by posting a message. - const IPC::Message* post_msg = - render_thread_.sink().GetFirstMessageMatching( - ViewHostMsg_ExtensionPostMessage::ID); - ASSERT_TRUE(post_msg); - ViewHostMsg_ExtensionPostMessage::Param post_params; - ViewHostMsg_ExtensionPostMessage::Read(post_msg, &post_params); - EXPECT_EQ("\"onconnect\"", post_params.b); - - // Simulate sending a message. - render_thread_.sink().ClearMessages(); - DispatchOnMessage("{\"val\": 42}", kPortId); - - // If we get an alert box, then the iframes failed to disconnect properly. - const IPC::Message* alert_msg = - render_thread_.sink().GetFirstMessageMatching( - ViewHostMsg_RunJavaScriptMessage::ID); - ASSERT_FALSE(alert_msg); - - // We should not get a disconnect message yet, since the toplevel frame didn't - // disconnect. - const IPC::Message* disconnect_msg = - render_thread_.sink().GetFirstMessageMatching( - ViewHostMsg_ExtensionCloseChannel::ID); - ASSERT_FALSE(disconnect_msg); - - // Disconnect the port in the top frame. - render_thread_.sink().ClearMessages(); - DispatchOnMessage("{\"disconnect\": true}", kPortId); - - // Now we should have a disconnect message. - disconnect_msg = - render_thread_.sink().GetUniqueMessageMatching( - ViewHostMsg_ExtensionCloseChannel::ID); - ASSERT_TRUE(disconnect_msg); -} |