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

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: s/GetListenerCount/GetListenerCountForTesting/ 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
« no previous file with comments | « no previous file | extensions/browser/api/web_request/web_request_api.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..861094c015cd5005b90f4bf707cc834dfae5335e 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,38 @@ 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()->GetListenerCountForTesting(
+ &profile_, kEventName));
+
+ ExtensionWebRequestEventRouter::GetInstance()->RemoveEventListener(
+ &profile_, ext_id, kSubEventName, 0 /* embedder_process_id */, 0);
+ EXPECT_EQ(0,
+ ExtensionWebRequestEventRouter::GetInstance()->GetListenerCountForTesting(
+ &profile_, kEventName));
+}
+
struct HeaderModificationTest_Header {
const char* name;
const char* value;
« no previous file with comments | « no previous file | extensions/browser/api/web_request/web_request_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698