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 |