| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "extensions/browser/event_router.h" | 5 #include "extensions/browser/event_router.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" |
| 13 #include "base/macros.h" | 13 #include "base/macros.h" |
| 14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
| 15 #include "base/test/histogram_tester.h" | 15 #include "base/test/histogram_tester.h" |
| 16 #include "base/values.h" | 16 #include "base/values.h" |
| 17 #include "components/pref_registry/pref_registry_syncable.h" | |
| 18 #include "components/prefs/pref_service_factory.h" | |
| 19 #include "components/prefs/testing_pref_store.h" | |
| 20 #include "content/public/browser/browser_context.h" | 17 #include "content/public/browser/browser_context.h" |
| 21 #include "content/public/test/mock_render_process_host.h" | 18 #include "content/public/test/mock_render_process_host.h" |
| 22 #include "content/public/test/test_browser_thread_bundle.h" | 19 #include "content/public/test/test_browser_thread_bundle.h" |
| 23 #include "extensions/browser/event_listener_map.h" | 20 #include "extensions/browser/event_listener_map.h" |
| 24 #include "extensions/browser/extension_pref_value_map.h" | |
| 25 #include "extensions/browser/extension_prefs.h" | |
| 26 #include "extensions/browser/extension_prefs_factory.h" | |
| 27 #include "extensions/browser/extensions_test.h" | 21 #include "extensions/browser/extensions_test.h" |
| 28 #include "extensions/common/extension_builder.h" | 22 #include "extensions/common/extension_builder.h" |
| 29 #include "extensions/common/test_util.h" | 23 #include "extensions/common/test_util.h" |
| 30 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
| 31 | 25 |
| 32 using base::DictionaryValue; | 26 using base::DictionaryValue; |
| 33 using base::ListValue; | 27 using base::ListValue; |
| 34 using base::Value; | 28 using base::Value; |
| 35 | 29 |
| 36 namespace extensions { | 30 namespace extensions { |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 | 181 |
| 188 DISALLOW_COPY_AND_ASSIGN(EventRouterTest); | 182 DISALLOW_COPY_AND_ASSIGN(EventRouterTest); |
| 189 }; | 183 }; |
| 190 | 184 |
| 191 class EventRouterFilterTest : public ExtensionsTest { | 185 class EventRouterFilterTest : public ExtensionsTest { |
| 192 public: | 186 public: |
| 193 EventRouterFilterTest() {} | 187 EventRouterFilterTest() {} |
| 194 | 188 |
| 195 void SetUp() override { | 189 void SetUp() override { |
| 196 ExtensionsTest::SetUp(); | 190 ExtensionsTest::SetUp(); |
| 197 | |
| 198 render_process_host_.reset( | 191 render_process_host_.reset( |
| 199 new content::MockRenderProcessHost(browser_context())); | 192 new content::MockRenderProcessHost(browser_context())); |
| 200 | |
| 201 // Set up all the dependencies of ExtensionPrefs. | |
| 202 extension_pref_value_map_.reset(new ExtensionPrefValueMap()); | |
| 203 PrefServiceFactory factory; | |
| 204 factory.set_user_prefs(new TestingPrefStore()); | |
| 205 factory.set_extension_prefs(new TestingPrefStore()); | |
| 206 user_prefs::PrefRegistrySyncable* pref_registry = | |
| 207 new user_prefs::PrefRegistrySyncable(); | |
| 208 // Prefs should be registered before the PrefService is created. | |
| 209 ExtensionPrefs::RegisterProfilePrefs(pref_registry); | |
| 210 pref_service_ = factory.Create(pref_registry); | |
| 211 | |
| 212 std::unique_ptr<ExtensionPrefs> extension_prefs(ExtensionPrefs::Create( | |
| 213 browser_context(), pref_service_.get(), | |
| 214 browser_context()->GetPath().AppendASCII("Extensions"), | |
| 215 extension_pref_value_map_.get(), false /* extensions_disabled */, | |
| 216 std::vector<ExtensionPrefsObserver*>())); | |
| 217 | |
| 218 ExtensionPrefsFactory::GetInstance()->SetInstanceForTesting( | |
| 219 browser_context(), std::move(extension_prefs)); | |
| 220 | |
| 221 ASSERT_TRUE(EventRouter::Get(browser_context())); // constructs EventRouter | 193 ASSERT_TRUE(EventRouter::Get(browser_context())); // constructs EventRouter |
| 222 } | 194 } |
| 223 | 195 |
| 224 void TearDown() override { | 196 void TearDown() override { |
| 225 render_process_host_.reset(); | 197 render_process_host_.reset(); |
| 226 ExtensionsTest::TearDown(); | 198 ExtensionsTest::TearDown(); |
| 227 } | 199 } |
| 228 | 200 |
| 229 content::RenderProcessHost* render_process_host() const { | 201 content::RenderProcessHost* render_process_host() const { |
| 230 return render_process_host_.get(); | 202 return render_process_host_.get(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 DictionaryValue::Iterator iter(*filtered_events); | 237 DictionaryValue::Iterator iter(*filtered_events); |
| 266 if (iter.key() != event_name) | 238 if (iter.key() != event_name) |
| 267 return nullptr; | 239 return nullptr; |
| 268 | 240 |
| 269 const base::ListValue* filter_list = nullptr; | 241 const base::ListValue* filter_list = nullptr; |
| 270 iter.value().GetAsList(&filter_list); | 242 iter.value().GetAsList(&filter_list); |
| 271 return filter_list; | 243 return filter_list; |
| 272 } | 244 } |
| 273 | 245 |
| 274 std::unique_ptr<content::RenderProcessHost> render_process_host_; | 246 std::unique_ptr<content::RenderProcessHost> render_process_host_; |
| 275 std::unique_ptr<ExtensionPrefValueMap> extension_pref_value_map_; | |
| 276 std::unique_ptr<PrefService> pref_service_; | |
| 277 | 247 |
| 278 DISALLOW_COPY_AND_ASSIGN(EventRouterFilterTest); | 248 DISALLOW_COPY_AND_ASSIGN(EventRouterFilterTest); |
| 279 }; | 249 }; |
| 280 | 250 |
| 281 TEST_F(EventRouterTest, GetBaseEventName) { | 251 TEST_F(EventRouterTest, GetBaseEventName) { |
| 282 // Normal event names are passed through unchanged. | 252 // Normal event names are passed through unchanged. |
| 283 EXPECT_EQ("foo.onBar", EventRouter::GetBaseEventName("foo.onBar")); | 253 EXPECT_EQ("foo.onBar", EventRouter::GetBaseEventName("foo.onBar")); |
| 284 | 254 |
| 285 // Sub-events are converted to the part before the slash. | 255 // Sub-events are converted to the part before the slash. |
| 286 EXPECT_EQ("foo.onBar", EventRouter::GetBaseEventName("foo.onBar/123")); | 256 EXPECT_EQ("foo.onBar", EventRouter::GetBaseEventName("foo.onBar/123")); |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 | 410 |
| 441 // Remove the third filter. | 411 // Remove the third filter. |
| 442 event_router()->RemoveFilteredEventListener(kEventName, render_process_host(), | 412 event_router()->RemoveFilteredEventListener(kEventName, render_process_host(), |
| 443 kExtensionId, *filters[2], true); | 413 kExtensionId, *filters[2], true); |
| 444 ASSERT_FALSE(ContainsFilter(kExtensionId, kEventName, *filters[0])); | 414 ASSERT_FALSE(ContainsFilter(kExtensionId, kEventName, *filters[0])); |
| 445 ASSERT_FALSE(ContainsFilter(kExtensionId, kEventName, *filters[1])); | 415 ASSERT_FALSE(ContainsFilter(kExtensionId, kEventName, *filters[1])); |
| 446 ASSERT_FALSE(ContainsFilter(kExtensionId, kEventName, *filters[2])); | 416 ASSERT_FALSE(ContainsFilter(kExtensionId, kEventName, *filters[2])); |
| 447 } | 417 } |
| 448 | 418 |
| 449 } // namespace extensions | 419 } // namespace extensions |
| OLD | NEW |