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

Unified Diff: chrome/browser/extensions/api/web_request/web_request_api_unittest.cc

Issue 2121873002: Fix WebRequest's EventListener::operator< (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix WebRequest's EventListener::operator< Created 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
diff --git a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
index 1e75bb5b488ec4407b458751ceb4db0f8c80f36c..8945653e7a7e1bb3784b6113bf0089a6bc4f6037 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
@@ -833,6 +833,36 @@ TEST_F(ExtensionWebRequestTest, NoAccessRequestBodyData) {
EXPECT_EQ(i, ipc_sender_.sent_end());
}
+// Tests the sanity of operator< (crbug.com/589735).
+TEST_F(ExtensionWebRequestTest, AddAndRemoveListeners) {
+ std::string ext_id("abcdefghijklmnopabcdefghijklmnop");
+ ExtensionWebRequestEventRouter::RequestFilter filter;
+ const std::string kEventName(web_request::OnBeforeRequest::kEventName);
+ const std::string kSubEventName = kEventName + "/1";
+ base::WeakPtrFactory<TestIPCSender> ipc_sender_factory(&ipc_sender_);
+
+ // Add two non-webview listeners.
+ ExtensionWebRequestEventRouter::GetInstance()->AddEventListener(
+ &profile_, ext_id, ext_id, events::FOR_TEST, kEventName, kSubEventName,
+ filter, 0, 1 /* embedder_process_id */, 0,
+ ipc_sender_factory.GetWeakPtr());
+ ExtensionWebRequestEventRouter::GetInstance()->AddEventListener(
+ &profile_, ext_id, ext_id, events::FOR_TEST, kEventName, kSubEventName,
+ filter, 0, 2 /* embedder_process_id */, 0,
+ ipc_sender_factory.GetWeakPtr());
+
+ // Now remove the events without passing an explicit process ID.
+ ExtensionWebRequestEventRouter::GetInstance()->RemoveEventListener(
+ &profile_, ext_id, kSubEventName, 0 /* embedder_process_id */, 0);
+ EXPECT_EQ(1, ExtensionWebRequestEventRouter::GetInstance()->GetListenerCount(
+ &profile_, kEventName));
+
+ ExtensionWebRequestEventRouter::GetInstance()->RemoveEventListener(
+ &profile_, ext_id, kSubEventName, 0 /* embedder_process_id */, 0);
+ EXPECT_EQ(0, ExtensionWebRequestEventRouter::GetInstance()->GetListenerCount(
+ &profile_, kEventName));
+}
+
struct HeaderModificationTest_Header {
const char* name;
const char* value;

Powered by Google App Engine
This is Rietveld 408576698