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

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

Issue 8801001: Get rid of view_messages.h dependency in extension_messages_browsertest.cc by adding a method to ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/translate/translate_manager_browsertest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/utf_string_conversions.h" 5 #include "base/utf_string_conversions.h"
6 #include "base/values.h" 6 #include "base/values.h"
7 #include "chrome/browser/extensions/extension_message_service.h" 7 #include "chrome/browser/extensions/extension_message_service.h"
8 #include "chrome/common/extensions/extension_messages.h" 8 #include "chrome/common/extensions/extension_messages.h"
9 #include "chrome/common/render_messages.h" 9 #include "chrome/common/render_messages.h"
10 #include "chrome/renderer/extensions/chrome_v8_context.h" 10 #include "chrome/renderer/extensions/chrome_v8_context.h"
11 #include "chrome/renderer/extensions/extension_dispatcher.h" 11 #include "chrome/renderer/extensions/extension_dispatcher.h"
12 #include "chrome/renderer/extensions/miscellaneous_bindings.h" 12 #include "chrome/renderer/extensions/miscellaneous_bindings.h"
13 #include "chrome/test/base/chrome_render_view_test.h" 13 #include "chrome/test/base/chrome_render_view_test.h"
14 #include "content/common/view_messages.h"
15 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
16 15
17 using extensions::MiscellaneousBindings; 16 using extensions::MiscellaneousBindings;
18 17
19 namespace { 18 namespace {
20 19
21 static const char kTestingExtensionId[] = "oooooooooooooooooooooooooooooooo"; 20 static const char kTestingExtensionId[] = "oooooooooooooooooooooooooooooooo";
22 21
23 void DispatchOnConnect(const ChromeV8ContextSet& v8_context_set, 22 void DispatchOnConnect(const ChromeV8ContextSet& v8_context_set,
24 int source_port_id, const std::string& name, 23 int source_port_id, const std::string& name,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 EXPECT_EQ("{\"message\":\"content ready\"}", post_params.b); 79 EXPECT_EQ("{\"message\":\"content ready\"}", post_params.b);
81 80
82 // Now simulate getting a message back from the other side. 81 // Now simulate getting a message back from the other side.
83 render_thread_->sink().ClearMessages(); 82 render_thread_->sink().ClearMessages();
84 const int kPortId = 0; 83 const int kPortId = 0;
85 MiscellaneousBindings::DeliverMessage( 84 MiscellaneousBindings::DeliverMessage(
86 extension_dispatcher_->v8_context_set().GetAll(), 85 extension_dispatcher_->v8_context_set().GetAll(),
87 kPortId, "{\"val\": 42}", NULL); 86 kPortId, "{\"val\": 42}", NULL);
88 87
89 // Verify that we got it. 88 // Verify that we got it.
90 const IPC::Message* alert_msg = 89 render_thread_->VerifyRunJavaScriptMessageSend(
91 render_thread_->sink().GetUniqueMessageMatching( 90 ASCIIToUTF16("content got: 42"));
92 ViewHostMsg_RunJavaScriptMessage::ID);
93 ASSERT_TRUE(alert_msg);
94 iter = IPC::SyncMessage::GetDataIterator(alert_msg);
95 ViewHostMsg_RunJavaScriptMessage::SendParam alert_param;
96 ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
97 EXPECT_EQ(ASCIIToUTF16("content got: 42"), alert_param.a);
98 } 91 }
99 92
100 // Tests that the bindings for handling a new channel connection and channel 93 // Tests that the bindings for handling a new channel connection and channel
101 // closing all works. 94 // closing all works.
102 TEST_F(ChromeRenderViewTest, ExtensionMessagesOnConnect) { 95 TEST_F(ChromeRenderViewTest, ExtensionMessagesOnConnect) {
103 extension_dispatcher_->SetTestExtensionId(kTestingExtensionId); 96 extension_dispatcher_->SetTestExtensionId(kTestingExtensionId);
104 LoadHTML("<body></body>"); 97 LoadHTML("<body></body>");
105 ExecuteJavaScript( 98 ExecuteJavaScript(
106 "chrome.extension.onConnect.addListener(function (port) {" 99 "chrome.extension.onConnect.addListener(function (port) {"
107 " port.test = 24;" 100 " port.test = 24;"
(...skipping 28 matching lines...) Expand all
136 "{\"message\":\"onconnect from foo://bar name " + kPortName + "\"}"; 129 "{\"message\":\"onconnect from foo://bar name " + kPortName + "\"}";
137 EXPECT_EQ(expected_msg, post_params.b); 130 EXPECT_EQ(expected_msg, post_params.b);
138 131
139 // Now simulate getting a message back from the channel opener. 132 // Now simulate getting a message back from the channel opener.
140 render_thread_->sink().ClearMessages(); 133 render_thread_->sink().ClearMessages();
141 MiscellaneousBindings::DeliverMessage( 134 MiscellaneousBindings::DeliverMessage(
142 extension_dispatcher_->v8_context_set().GetAll(), 135 extension_dispatcher_->v8_context_set().GetAll(),
143 kPortId, "{\"val\": 42}", NULL); 136 kPortId, "{\"val\": 42}", NULL);
144 137
145 // Verify that we got it. 138 // Verify that we got it.
146 const IPC::Message* alert_msg = 139 render_thread_->VerifyRunJavaScriptMessageSend(ASCIIToUTF16("got: 42"));
147 render_thread_->sink().GetUniqueMessageMatching(
148 ViewHostMsg_RunJavaScriptMessage::ID);
149 ASSERT_TRUE(alert_msg);
150 void* iter = IPC::SyncMessage::GetDataIterator(alert_msg);
151 ViewHostMsg_RunJavaScriptMessage::SendParam alert_param;
152 ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
153 EXPECT_EQ(ASCIIToUTF16("got: 42"), alert_param.a);
154 140
155 // Now simulate the channel closing. 141 // Now simulate the channel closing.
156 render_thread_->sink().ClearMessages(); 142 render_thread_->sink().ClearMessages();
157 DispatchOnDisconnect(extension_dispatcher_->v8_context_set(), kPortId); 143 DispatchOnDisconnect(extension_dispatcher_->v8_context_set(), kPortId);
158 144
159 // Verify that we got it. 145 // Verify that we got it.
160 alert_msg = 146 render_thread_->VerifyRunJavaScriptMessageSend(
161 render_thread_->sink().GetUniqueMessageMatching( 147 ASCIIToUTF16("disconnected: 24"));
162 ViewHostMsg_RunJavaScriptMessage::ID);
163 ASSERT_TRUE(alert_msg);
164 iter = IPC::SyncMessage::GetDataIterator(alert_msg);
165 ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
166 EXPECT_EQ(ASCIIToUTF16("disconnected: 24"), alert_param.a);
167 } 148 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/translate/translate_manager_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698