Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: chrome/browser/extensions/extension_messages_unittest.cc

Issue 155707: Changed the extension.connect() API not to broadcast to all tabs. Added a (Closed)
Patch Set: review comments Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_message_service.h" 5 #include "chrome/browser/extensions/extension_message_service.h"
6 #include "chrome/common/render_messages.h" 6 #include "chrome/common/render_messages.h"
7 #include "chrome/renderer/extensions/event_bindings.h" 7 #include "chrome/renderer/extensions/event_bindings.h"
8 #include "chrome/renderer/extensions/renderer_extension_bindings.h" 8 #include "chrome/renderer/extensions/renderer_extension_bindings.h"
9 #include "chrome/test/render_view_test.h" 9 #include "chrome/test/render_view_test.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 static void DispatchOnConnect(int source_port_id, const std::string& name, 12 static void DispatchOnConnect(int source_port_id, const std::string& name,
13 const std::string& tab_json) { 13 const std::string& tab_json) {
14 ListValue args; 14 ListValue args;
15 args.Set(0, Value::CreateIntegerValue(source_port_id)); 15 args.Set(0, Value::CreateIntegerValue(source_port_id));
16 args.Set(1, Value::CreateStringValue(name)); 16 args.Set(1, Value::CreateStringValue(name));
17 args.Set(2, Value::CreateStringValue(tab_json)); 17 args.Set(2, Value::CreateStringValue(tab_json));
18 args.Set(3, Value::CreateStringValue("")); // extension ID is empty for tests 18 args.Set(3, Value::CreateStringValue("")); // extension ID is empty for tests
19 RendererExtensionBindings::Invoke( 19 RendererExtensionBindings::Invoke(
20 ExtensionMessageService::kDispatchOnConnect, args); 20 ExtensionMessageService::kDispatchOnConnect, args, NULL);
21 } 21 }
22 22
23 static void DispatchOnDisconnect(int source_port_id) { 23 static void DispatchOnDisconnect(int source_port_id) {
24 ListValue args; 24 ListValue args;
25 args.Set(0, Value::CreateIntegerValue(source_port_id)); 25 args.Set(0, Value::CreateIntegerValue(source_port_id));
26 RendererExtensionBindings::Invoke( 26 RendererExtensionBindings::Invoke(
27 ExtensionMessageService::kDispatchOnDisconnect, args); 27 ExtensionMessageService::kDispatchOnDisconnect, args, NULL);
28 } 28 }
29 29
30 static void DispatchOnMessage(const std::string& message, int source_port_id) { 30 static void DispatchOnMessage(const std::string& message, int source_port_id) {
31 ListValue args; 31 ListValue args;
32 args.Set(0, Value::CreateStringValue(message)); 32 args.Set(0, Value::CreateStringValue(message));
33 args.Set(1, Value::CreateIntegerValue(source_port_id)); 33 args.Set(1, Value::CreateIntegerValue(source_port_id));
34 RendererExtensionBindings::Invoke( 34 RendererExtensionBindings::Invoke(
35 ExtensionMessageService::kDispatchOnMessage, args); 35 ExtensionMessageService::kDispatchOnMessage, args, NULL);
36 } 36 }
37 37
38 // Tests that the bindings for opening a channel to an extension and sending 38 // Tests that the bindings for opening a channel to an extension and sending
39 // and receiving messages through that channel all works. 39 // and receiving messages through that channel all works.
40 TEST_F(RenderViewTest, ExtensionMessagesOpenChannel) { 40 TEST_F(RenderViewTest, ExtensionMessagesOpenChannel) {
41 render_thread_.sink().ClearMessages(); 41 render_thread_.sink().ClearMessages();
42 LoadHTML("<body></body>"); 42 LoadHTML("<body></body>");
43 ExecuteJavaScript( 43 ExecuteJavaScript(
44 "var e = new chrome.Extension('foobar');" 44 "var e = new chrome.Extension('foobar');"
45 "var port = e.connect('testName');" 45 "var port = e.connect('testName');"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 140
141 // Verify that we got it. 141 // Verify that we got it.
142 alert_msg = 142 alert_msg =
143 render_thread_.sink().GetUniqueMessageMatching( 143 render_thread_.sink().GetUniqueMessageMatching(
144 ViewHostMsg_RunJavaScriptMessage::ID); 144 ViewHostMsg_RunJavaScriptMessage::ID);
145 ASSERT_TRUE(alert_msg); 145 ASSERT_TRUE(alert_msg);
146 iter = IPC::SyncMessage::GetDataIterator(alert_msg); 146 iter = IPC::SyncMessage::GetDataIterator(alert_msg);
147 ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param)); 147 ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
148 EXPECT_EQ(L"disconnected: 24", alert_param.a); 148 EXPECT_EQ(L"disconnected: 24", alert_param.a);
149 } 149 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_message_service.cc ('k') | chrome/browser/extensions/extension_process_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698