Commit 6f8f8b63 authored by jam@chromium.org's avatar jam@chromium.org

Get rid of view_messages.h dependency in extension_messages_browsertest.cc by...

Get rid of view_messages.h dependency in extension_messages_browsertest.cc by adding a method to MockRenderThread instead.

BUG=98716
Review URL: http://codereview.chromium.org/8801001

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112987 0039d316-1c4b-4281-b951-d872f2087c98
parent ed81b38b
......@@ -11,7 +11,6 @@
#include "chrome/renderer/extensions/extension_dispatcher.h"
#include "chrome/renderer/extensions/miscellaneous_bindings.h"
#include "chrome/test/base/chrome_render_view_test.h"
#include "content/common/view_messages.h"
#include "testing/gtest/include/gtest/gtest.h"
using extensions::MiscellaneousBindings;
......@@ -87,14 +86,8 @@ TEST_F(ChromeRenderViewTest, ExtensionMessagesOpenChannel) {
kPortId, "{\"val\": 42}", NULL);
// Verify that we got it.
const IPC::Message* alert_msg =
render_thread_->sink().GetUniqueMessageMatching(
ViewHostMsg_RunJavaScriptMessage::ID);
ASSERT_TRUE(alert_msg);
iter = IPC::SyncMessage::GetDataIterator(alert_msg);
ViewHostMsg_RunJavaScriptMessage::SendParam alert_param;
ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
EXPECT_EQ(ASCIIToUTF16("content got: 42"), alert_param.a);
render_thread_->VerifyRunJavaScriptMessageSend(
ASCIIToUTF16("content got: 42"));
}
// Tests that the bindings for handling a new channel connection and channel
......@@ -143,25 +136,13 @@ TEST_F(ChromeRenderViewTest, ExtensionMessagesOnConnect) {
kPortId, "{\"val\": 42}", NULL);
// Verify that we got it.
const IPC::Message* alert_msg =
render_thread_->sink().GetUniqueMessageMatching(
ViewHostMsg_RunJavaScriptMessage::ID);
ASSERT_TRUE(alert_msg);
void* iter = IPC::SyncMessage::GetDataIterator(alert_msg);
ViewHostMsg_RunJavaScriptMessage::SendParam alert_param;
ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
EXPECT_EQ(ASCIIToUTF16("got: 42"), alert_param.a);
render_thread_->VerifyRunJavaScriptMessageSend(ASCIIToUTF16("got: 42"));
// Now simulate the channel closing.
render_thread_->sink().ClearMessages();
DispatchOnDisconnect(extension_dispatcher_->v8_context_set(), kPortId);
// Verify that we got it.
alert_msg =
render_thread_->sink().GetUniqueMessageMatching(
ViewHostMsg_RunJavaScriptMessage::ID);
ASSERT_TRUE(alert_msg);
iter = IPC::SyncMessage::GetDataIterator(alert_msg);
ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
EXPECT_EQ(ASCIIToUTF16("disconnected: 24"), alert_param.a);
render_thread_->VerifyRunJavaScriptMessageSend(
ASCIIToUTF16("disconnected: 24"));
}
......@@ -28,7 +28,6 @@
#include "content/browser/renderer_host/mock_render_process_host.h"
#include "content/browser/tab_contents/navigation_details.h"
#include "content/browser/tab_contents/test_tab_contents.h"
#include "content/common/view_messages.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_registrar.h"
#include "content/test/notification_observer_mock.h"
......
......@@ -16,7 +16,6 @@
#include "chrome/renderer/extensions/miscellaneous_bindings.h"
#include "chrome/renderer/extensions/schema_generated_bindings.h"
#include "content/common/dom_storage_common.h"
#include "content/common/view_messages.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/common/renderer_preferences.h"
#include "content/renderer/render_view_impl.h"
......
......@@ -19,6 +19,17 @@ MockRenderThread::MockRenderThread()
MockRenderThread::~MockRenderThread() {
}
void MockRenderThread::VerifyRunJavaScriptMessageSend(
const string16& expected_alert_message) {
const IPC::Message* alert_msg =
sink_.GetUniqueMessageMatching(ViewHostMsg_RunJavaScriptMessage::ID);
ASSERT_TRUE(alert_msg);
void* iter = IPC::SyncMessage::GetDataIterator(alert_msg);
ViewHostMsg_RunJavaScriptMessage::SendParam alert_param;
ASSERT_TRUE(IPC::ReadParam(alert_msg, &iter, &alert_param));
EXPECT_EQ(expected_alert_message, alert_param.a);
}
// Called by the Widget. Used to send messages to the browser.
// We short-circuit the mechanism and handle the messages right here on this
// class.
......
......@@ -7,6 +7,7 @@
#pragma once
#include "base/shared_memory.h"
#include "base/string16.h"
#include "content/public/renderer/render_thread.h"
#include "ipc/ipc_test_sink.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h"
......@@ -29,6 +30,10 @@ class MockRenderThread : public content::RenderThread {
// Provides access to the messages that have been received by this thread.
IPC::TestSink& sink() { return sink_; }
// Helpers for embedders to know when content IPC messages are received, since
// they don't have access to content IPC files.
void VerifyRunJavaScriptMessageSend(const string16& expected_alert_message);
// content::RenderThread implementation:
virtual bool Send(IPC::Message* msg) OVERRIDE;
virtual MessageLoop* GetMessageLoop() OVERRIDE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment