Index: chrome/browser/extensions/extension_webrequest_api_unittest.cc |
diff --git a/chrome/browser/extensions/extension_webrequest_api_unittest.cc b/chrome/browser/extensions/extension_webrequest_api_unittest.cc |
index e2ace6743178bbc764878007a7e97e1d4b574443..67ff8048e43161911031f1b7bbd52b4990675842 100644 |
--- a/chrome/browser/extensions/extension_webrequest_api_unittest.cc |
+++ b/chrome/browser/extensions/extension_webrequest_api_unittest.cc |
@@ -12,6 +12,7 @@ |
#include "chrome/browser/extensions/extension_webrequest_api_constants.h" |
#include "chrome/browser/net/chrome_network_delegate.h" |
#include "chrome/browser/prefs/pref_member.h" |
+#include "chrome/common/extensions/extension_messages.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/test/testing_pref_service.h" |
#include "chrome/test/testing_profile.h" |
@@ -37,7 +38,7 @@ static void EventHandledOnIOThread( |
// A mock event router that responds to events with a pre-arranged queue of |
// Tasks. |
-class TestEventRouter : public ExtensionEventRouterForwarder { |
+class TestIPCSender : public IPC::Message::Sender { |
public: |
// Adds a Task to the queue. We will fire these in order as events are |
// dispatched. |
@@ -48,16 +49,15 @@ public: |
size_t GetNumTasks() { return task_queue_.size(); } |
private: |
- // ExtensionEventRouterForwarder: |
- virtual void HandleEvent(const std::string& extension_id, |
- const std::string& event_name, |
- const std::string& event_args, |
- ProfileId profile_id, |
- bool use_profile_to_restrict_events, |
- const GURL& event_url) { |
- ASSERT_FALSE(task_queue_.empty()); |
+ // IPC::Message::Sender |
+ virtual bool Send(IPC::Message* message) { |
+ EXPECT_EQ(ExtensionMsg_MessageInvoke::ID, message->type()); |
+ |
+ EXPECT_FALSE(task_queue_.empty()); |
MessageLoop::current()->PostTask(FROM_HERE, task_queue_.front()); |
task_queue_.pop(); |
+ |
+ return false; |
} |
std::queue<Task*> task_queue_; |
@@ -66,11 +66,11 @@ private: |
class ExtensionWebRequestTest : public testing::Test { |
protected: |
virtual void SetUp() { |
- event_router_ = new TestEventRouter(); |
+ event_router_ = new ExtensionEventRouterForwarder(); |
enable_referrers_.Init( |
prefs::kEnableReferrers, profile_.GetTestingPrefService(), NULL); |
network_delegate_.reset(new ChromeNetworkDelegate( |
- event_router_.get(), profile_.GetRuntimeId(), |
+ event_router_.get(), NULL, profile_.GetRuntimeId(), |
&enable_referrers_)); |
context_ = new TestURLRequestContext(); |
context_->set_network_delegate(network_delegate_.get()); |
@@ -80,7 +80,9 @@ protected: |
TestingProfile profile_; |
TestDelegate delegate_; |
BooleanPrefMember enable_referrers_; |
- scoped_refptr<TestEventRouter> event_router_; |
+ TestIPCSender ipc_sender_; |
+ scoped_refptr<ExtensionEventRouterForwarder> event_router_; |
+ scoped_refptr<ExtensionInfoMap> extension_info_map_; |
scoped_ptr<ChromeNetworkDelegate> network_delegate_; |
scoped_refptr<TestURLRequestContext> context_; |
}; |
@@ -93,14 +95,17 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedence) { |
std::string extension2_id("2"); |
ExtensionWebRequestEventRouter::RequestFilter filter; |
const std::string kEventName(keys::kOnBeforeRequest); |
+ base::WeakPtrFactory<TestIPCSender> ipc_sender_factory(&ipc_sender_); |
ExtensionWebRequestEventRouter::GetInstance()->AddEventListener( |
profile_.GetRuntimeId(), extension1_id, kEventName, |
kEventName + "/1", filter, |
- ExtensionWebRequestEventRouter::ExtraInfoSpec::BLOCKING); |
+ ExtensionWebRequestEventRouter::ExtraInfoSpec::BLOCKING, |
+ ipc_sender_factory.GetWeakPtr()); |
ExtensionWebRequestEventRouter::GetInstance()->AddEventListener( |
profile_.GetRuntimeId(), extension2_id, kEventName, |
kEventName + "/2", filter, |
- ExtensionWebRequestEventRouter::ExtraInfoSpec::BLOCKING); |
+ ExtensionWebRequestEventRouter::ExtraInfoSpec::BLOCKING, |
+ ipc_sender_factory.GetWeakPtr()); |
net::URLRequest request(GURL("about:blank"), &delegate_); |
request.set_context(context_); |
@@ -117,7 +122,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedence) { |
response = new ExtensionWebRequestEventRouter::EventResponse( |
extension1_id, base::Time::FromDoubleT(1)); |
response->cancel = true; |
- event_router_->PushTask( |
+ ipc_sender_.PushTask( |
NewRunnableFunction(&EventHandledOnIOThread, |
profile_.GetRuntimeId(), extension1_id, |
kEventName, kEventName + "/1", request.identifier(), response)); |
@@ -126,7 +131,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedence) { |
response = new ExtensionWebRequestEventRouter::EventResponse( |
extension2_id, base::Time::FromDoubleT(2)); |
response->new_url = redirect_url; |
- event_router_->PushTask( |
+ ipc_sender_.PushTask( |
NewRunnableFunction(&EventHandledOnIOThread, |
profile_.GetRuntimeId(), extension2_id, |
kEventName, kEventName + "/2", request.identifier(), response)); |
@@ -134,7 +139,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedence) { |
// Extension2 response to the redirected URL. Arrives first, and chosen. |
response = new ExtensionWebRequestEventRouter::EventResponse( |
extension2_id, base::Time::FromDoubleT(2)); |
- event_router_->PushTask( |
+ ipc_sender_.PushTask( |
NewRunnableFunction(&EventHandledOnIOThread, |
profile_.GetRuntimeId(), extension2_id, |
kEventName, kEventName + "/2", request.identifier(), response)); |
@@ -143,7 +148,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedence) { |
response = new ExtensionWebRequestEventRouter::EventResponse( |
extension1_id, base::Time::FromDoubleT(1)); |
response->cancel = true; |
- event_router_->PushTask( |
+ ipc_sender_.PushTask( |
NewRunnableFunction(&EventHandledOnIOThread, |
profile_.GetRuntimeId(), extension1_id, |
kEventName, kEventName + "/1", request.identifier(), response)); |
@@ -156,6 +161,6 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedence) { |
EXPECT_EQ(0, request.status().os_error()); |
EXPECT_EQ(redirect_url, request.url()); |
EXPECT_EQ(2U, request.url_chain().size()); |
- EXPECT_EQ(0U, event_router_->GetNumTasks()); |
+ EXPECT_EQ(0U, ipc_sender_.GetNumTasks()); |
} |
} |