| Index: extensions/browser/event_listener_map_unittest.cc
|
| diff --git a/extensions/browser/event_listener_map_unittest.cc b/extensions/browser/event_listener_map_unittest.cc
|
| index 0fa17d0826741f1da57b86c5e417f088224077a5..0b691cef623bd9bd49925a3f561ebf7919781df3 100644
|
| --- a/extensions/browser/event_listener_map_unittest.cc
|
| +++ b/extensions/browser/event_listener_map_unittest.cc
|
| @@ -5,6 +5,7 @@
|
| #include "extensions/browser/event_listener_map.h"
|
|
|
| #include "base/bind.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "content/public/test/mock_render_process_host.h"
|
| #include "content/public/test/test_browser_context.h"
|
| #include "extensions/browser/event_router.h"
|
| @@ -25,11 +26,12 @@ const char kEvent1Name[] = "event1";
|
| const char kEvent2Name[] = "event2";
|
| const char kURL[] = "https://google.com/some/url";
|
|
|
| -typedef base::Callback<scoped_ptr<EventListener>(
|
| +typedef base::Callback<std::unique_ptr<EventListener>(
|
| const std::string&, // event_name
|
| content::RenderProcessHost*, // process
|
| base::DictionaryValue* // filter (takes ownership)
|
| - )> EventListenerConstructor;
|
| + )>
|
| + EventListenerConstructor;
|
|
|
| class EmptyDelegate : public EventListenerMap::Delegate {
|
| void OnListenerAdded(const EventListener* listener) override{};
|
| @@ -44,11 +46,11 @@ class EventListenerMapTest : public testing::Test {
|
| browser_context_(new content::TestBrowserContext),
|
| process_(new content::MockRenderProcessHost(browser_context_.get())) {}
|
|
|
| - scoped_ptr<DictionaryValue> CreateHostSuffixFilter(
|
| + std::unique_ptr<DictionaryValue> CreateHostSuffixFilter(
|
| const std::string& suffix) {
|
| - scoped_ptr<DictionaryValue> filter(new DictionaryValue);
|
| - scoped_ptr<ListValue> filter_list(new ListValue);
|
| - scoped_ptr<DictionaryValue> filter_dict(new DictionaryValue);
|
| + std::unique_ptr<DictionaryValue> filter(new DictionaryValue);
|
| + std::unique_ptr<ListValue> filter_list(new ListValue);
|
| + std::unique_ptr<DictionaryValue> filter_dict(new DictionaryValue);
|
|
|
| filter_dict->Set("hostSuffix", new StringValue(suffix));
|
|
|
| @@ -57,16 +59,16 @@ class EventListenerMapTest : public testing::Test {
|
| return filter;
|
| }
|
|
|
| - scoped_ptr<Event> CreateNamedEvent(const std::string& event_name) {
|
| + std::unique_ptr<Event> CreateNamedEvent(const std::string& event_name) {
|
| return CreateEvent(event_name, GURL());
|
| }
|
|
|
| - scoped_ptr<Event> CreateEvent(const std::string& event_name,
|
| - const GURL& url) {
|
| + std::unique_ptr<Event> CreateEvent(const std::string& event_name,
|
| + const GURL& url) {
|
| EventFilteringInfo info;
|
| info.SetURL(url);
|
| - scoped_ptr<Event> result(new Event(
|
| - events::FOR_TEST, event_name, make_scoped_ptr(new ListValue()), NULL,
|
| + std::unique_ptr<Event> result(new Event(
|
| + events::FOR_TEST, event_name, base::WrapUnique(new ListValue()), NULL,
|
| GURL(), EventRouter::USER_GESTURE_UNKNOWN, info));
|
| return result;
|
| }
|
| @@ -80,35 +82,35 @@ class EventListenerMapTest : public testing::Test {
|
| const EventListenerConstructor& constructor);
|
| void TestHasListenerForEvent(const EventListenerConstructor& constructor);
|
|
|
| - scoped_ptr<EventListenerMap::Delegate> delegate_;
|
| - scoped_ptr<EventListenerMap> listeners_;
|
| - scoped_ptr<content::TestBrowserContext> browser_context_;
|
| - scoped_ptr<content::MockRenderProcessHost> process_;
|
| + std::unique_ptr<EventListenerMap::Delegate> delegate_;
|
| + std::unique_ptr<EventListenerMap> listeners_;
|
| + std::unique_ptr<content::TestBrowserContext> browser_context_;
|
| + std::unique_ptr<content::MockRenderProcessHost> process_;
|
| };
|
|
|
| -scoped_ptr<EventListener> CreateEventListenerForExtension(
|
| +std::unique_ptr<EventListener> CreateEventListenerForExtension(
|
| const std::string& extension_id,
|
| const std::string& event_name,
|
| content::RenderProcessHost* process,
|
| base::DictionaryValue* filter) {
|
| - return EventListener::ForExtension(
|
| - event_name, extension_id, process, make_scoped_ptr(filter));
|
| + return EventListener::ForExtension(event_name, extension_id, process,
|
| + base::WrapUnique(filter));
|
| }
|
|
|
| -scoped_ptr<EventListener> CreateEventListenerForURL(
|
| +std::unique_ptr<EventListener> CreateEventListenerForURL(
|
| const GURL& listener_url,
|
| const std::string& event_name,
|
| content::RenderProcessHost* process,
|
| base::DictionaryValue* filter) {
|
| - return EventListener::ForURL(
|
| - event_name, listener_url, process, make_scoped_ptr(filter));
|
| + return EventListener::ForURL(event_name, listener_url, process,
|
| + base::WrapUnique(filter));
|
| }
|
|
|
| void EventListenerMapTest::TestUnfilteredEventsGoToAllListeners(
|
| const EventListenerConstructor& constructor) {
|
| listeners_->AddListener(
|
| constructor.Run(kEvent1Name, NULL, new DictionaryValue()));
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| ASSERT_EQ(1u, listeners_->GetEventListeners(*event).size());
|
| }
|
|
|
| @@ -126,12 +128,10 @@ TEST_F(EventListenerMapTest, FilteredEventsGoToAllMatchingListeners) {
|
| listeners_->AddListener(EventListener::ForExtension(
|
| kEvent1Name, kExt1Id, NULL, CreateHostSuffixFilter("google.com")));
|
| listeners_->AddListener(EventListener::ForExtension(
|
| - kEvent1Name,
|
| - kExt1Id,
|
| - NULL,
|
| - scoped_ptr<DictionaryValue>(new DictionaryValue)));
|
| + kEvent1Name, kExt1Id, NULL,
|
| + std::unique_ptr<DictionaryValue>(new DictionaryValue)));
|
|
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| event->filter_info.SetURL(GURL("http://www.google.com"));
|
| std::set<const EventListener*> targets(listeners_->GetEventListeners(*event));
|
| ASSERT_EQ(2u, targets.size());
|
| @@ -143,7 +143,7 @@ TEST_F(EventListenerMapTest, FilteredEventsOnlyGoToMatchingListeners) {
|
| listeners_->AddListener(EventListener::ForExtension(
|
| kEvent1Name, kExt1Id, NULL, CreateHostSuffixFilter("yahoo.com")));
|
|
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| event->filter_info.SetURL(GURL("http://www.google.com"));
|
| std::set<const EventListener*> targets(listeners_->GetEventListeners(*event));
|
| ASSERT_EQ(1u, targets.size());
|
| @@ -159,7 +159,7 @@ TEST_F(EventListenerMapTest, LazyAndUnlazyListenersGetReturned) {
|
| process_.get(),
|
| CreateHostSuffixFilter("google.com")));
|
|
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| event->filter_info.SetURL(GURL("http://www.google.com"));
|
| std::set<const EventListener*> targets(listeners_->GetEventListeners(*event));
|
| ASSERT_EQ(2u, targets.size());
|
| @@ -177,7 +177,7 @@ void EventListenerMapTest::TestRemovingByProcess(
|
|
|
| listeners_->RemoveListenersForProcess(process_.get());
|
|
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| event->filter_info.SetURL(GURL("http://www.google.com"));
|
| ASSERT_EQ(1u, listeners_->GetEventListeners(*event).size());
|
| }
|
| @@ -200,13 +200,12 @@ void EventListenerMapTest::TestRemovingByListener(
|
| process_.get(),
|
| CreateHostSuffixFilter("google.com").release()));
|
|
|
| - scoped_ptr<EventListener> listener(
|
| - constructor.Run(kEvent1Name,
|
| - process_.get(),
|
| + std::unique_ptr<EventListener> listener(
|
| + constructor.Run(kEvent1Name, process_.get(),
|
| CreateHostSuffixFilter("google.com").release()));
|
| listeners_->RemoveListener(listener.get());
|
|
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| event->filter_info.SetURL(GURL("http://www.google.com"));
|
| ASSERT_EQ(1u, listeners_->GetEventListeners(*event).size());
|
| }
|
| @@ -225,19 +224,21 @@ TEST_F(EventListenerMapTest, TestLazyDoubleAddIsUndoneByRemove) {
|
| listeners_->AddListener(EventListener::ForExtension(
|
| kEvent1Name, kExt1Id, NULL, CreateHostSuffixFilter("google.com")));
|
|
|
| - scoped_ptr<EventListener> listener(EventListener::ForExtension(
|
| + std::unique_ptr<EventListener> listener(EventListener::ForExtension(
|
| kEvent1Name, kExt1Id, NULL, CreateHostSuffixFilter("google.com")));
|
| listeners_->RemoveListener(listener.get());
|
|
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| event->filter_info.SetURL(GURL("http://www.google.com"));
|
| std::set<const EventListener*> targets(listeners_->GetEventListeners(*event));
|
| ASSERT_EQ(0u, targets.size());
|
| }
|
|
|
| TEST_F(EventListenerMapTest, HostSuffixFilterEquality) {
|
| - scoped_ptr<DictionaryValue> filter1(CreateHostSuffixFilter("google.com"));
|
| - scoped_ptr<DictionaryValue> filter2(CreateHostSuffixFilter("google.com"));
|
| + std::unique_ptr<DictionaryValue> filter1(
|
| + CreateHostSuffixFilter("google.com"));
|
| + std::unique_ptr<DictionaryValue> filter2(
|
| + CreateHostSuffixFilter("google.com"));
|
| ASSERT_TRUE(filter1->Equals(filter2.get()));
|
| }
|
|
|
| @@ -249,7 +250,7 @@ TEST_F(EventListenerMapTest, RemoveListenersForExtension) {
|
|
|
| listeners_->RemoveListenersForExtension(kExt1Id);
|
|
|
| - scoped_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| + std::unique_ptr<Event> event(CreateNamedEvent(kEvent1Name));
|
| event->filter_info.SetURL(GURL("http://www.google.com"));
|
| std::set<const EventListener*> targets(listeners_->GetEventListeners(*event));
|
| ASSERT_EQ(0u, targets.size());
|
| @@ -276,7 +277,7 @@ void EventListenerMapTest::TestAddExistingUnfilteredListener(
|
| bool second_add = listeners_->AddListener(
|
| constructor.Run(kEvent1Name, NULL, new DictionaryValue()));
|
|
|
| - scoped_ptr<EventListener> listener(
|
| + std::unique_ptr<EventListener> listener(
|
| constructor.Run(kEvent1Name, NULL, new DictionaryValue()));
|
| bool first_remove = listeners_->RemoveListener(listener.get());
|
| bool second_remove = listeners_->RemoveListener(listener.get());
|
| @@ -298,10 +299,12 @@ TEST_F(EventListenerMapTest, AddExistingUnfilteredListenerForURLs) {
|
| }
|
|
|
| TEST_F(EventListenerMapTest, RemovingRouters) {
|
| - listeners_->AddListener(EventListener::ForExtension(
|
| - kEvent1Name, kExt1Id, process_.get(), scoped_ptr<DictionaryValue>()));
|
| - listeners_->AddListener(EventListener::ForURL(
|
| - kEvent1Name, GURL(kURL), process_.get(), scoped_ptr<DictionaryValue>()));
|
| + listeners_->AddListener(
|
| + EventListener::ForExtension(kEvent1Name, kExt1Id, process_.get(),
|
| + std::unique_ptr<DictionaryValue>()));
|
| + listeners_->AddListener(
|
| + EventListener::ForURL(kEvent1Name, GURL(kURL), process_.get(),
|
| + std::unique_ptr<DictionaryValue>()));
|
| listeners_->RemoveListenersForProcess(process_.get());
|
| ASSERT_FALSE(listeners_->HasListenerForEvent(kEvent1Name));
|
| }
|
| @@ -332,11 +335,12 @@ TEST_F(EventListenerMapTest, HasListenerForExtension) {
|
| ASSERT_FALSE(listeners_->HasListenerForExtension(kExt1Id, kEvent1Name));
|
|
|
| // Non-lazy listener.
|
| - listeners_->AddListener(EventListener::ForExtension(
|
| - kEvent1Name, kExt1Id, process_.get(), scoped_ptr<DictionaryValue>()));
|
| + listeners_->AddListener(
|
| + EventListener::ForExtension(kEvent1Name, kExt1Id, process_.get(),
|
| + std::unique_ptr<DictionaryValue>()));
|
| // Lazy listener.
|
| listeners_->AddListener(EventListener::ForExtension(
|
| - kEvent1Name, kExt1Id, NULL, scoped_ptr<DictionaryValue>()));
|
| + kEvent1Name, kExt1Id, NULL, std::unique_ptr<DictionaryValue>()));
|
|
|
| ASSERT_FALSE(listeners_->HasListenerForExtension(kExt1Id, kEvent2Name));
|
| ASSERT_TRUE(listeners_->HasListenerForExtension(kExt1Id, kEvent1Name));
|
| @@ -348,8 +352,9 @@ TEST_F(EventListenerMapTest, HasListenerForExtension) {
|
| }
|
|
|
| TEST_F(EventListenerMapTest, AddLazyListenersFromPreferences) {
|
| - scoped_ptr<DictionaryValue> filter1(CreateHostSuffixFilter("google.com"));
|
| - scoped_ptr<DictionaryValue> filter2(CreateHostSuffixFilter("yahoo.com"));
|
| + std::unique_ptr<DictionaryValue> filter1(
|
| + CreateHostSuffixFilter("google.com"));
|
| + std::unique_ptr<DictionaryValue> filter2(CreateHostSuffixFilter("yahoo.com"));
|
|
|
| DictionaryValue filtered_listeners;
|
| ListValue* filter_list = new ListValue();
|
| @@ -360,17 +365,18 @@ TEST_F(EventListenerMapTest, AddLazyListenersFromPreferences) {
|
|
|
| listeners_->LoadFilteredLazyListeners(kExt1Id, filtered_listeners);
|
|
|
| - scoped_ptr<Event> event(CreateEvent(kEvent1Name,
|
| - GURL("http://www.google.com")));
|
| + std::unique_ptr<Event> event(
|
| + CreateEvent(kEvent1Name, GURL("http://www.google.com")));
|
| std::set<const EventListener*> targets(listeners_->GetEventListeners(*event));
|
| ASSERT_EQ(1u, targets.size());
|
| - scoped_ptr<EventListener> listener(EventListener::ForExtension(
|
| + std::unique_ptr<EventListener> listener(EventListener::ForExtension(
|
| kEvent1Name, kExt1Id, NULL, CreateHostSuffixFilter("google.com")));
|
| ASSERT_TRUE((*targets.begin())->Equals(listener.get()));
|
| }
|
|
|
| TEST_F(EventListenerMapTest, CorruptedExtensionPrefsShouldntCrash) {
|
| - scoped_ptr<DictionaryValue> filter1(CreateHostSuffixFilter("google.com"));
|
| + std::unique_ptr<DictionaryValue> filter1(
|
| + CreateHostSuffixFilter("google.com"));
|
|
|
| DictionaryValue filtered_listeners;
|
| // kEvent1Name should be associated with a list, not a dictionary.
|
| @@ -378,8 +384,8 @@ TEST_F(EventListenerMapTest, CorruptedExtensionPrefsShouldntCrash) {
|
|
|
| listeners_->LoadFilteredLazyListeners(kExt1Id, filtered_listeners);
|
|
|
| - scoped_ptr<Event> event(CreateEvent(kEvent1Name,
|
| - GURL("http://www.google.com")));
|
| + std::unique_ptr<Event> event(
|
| + CreateEvent(kEvent1Name, GURL("http://www.google.com")));
|
| std::set<const EventListener*> targets(listeners_->GetEventListeners(*event));
|
| ASSERT_EQ(0u, targets.size());
|
| }
|
|
|