OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/process_manager.h" | 5 #include "extensions/browser/process_manager.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ptr_util.h" |
8 #include "content/public/browser/content_browser_client.h" | 9 #include "content/public/browser/content_browser_client.h" |
9 #include "content/public/browser/notification_service.h" | 10 #include "content/public/browser/notification_service.h" |
10 #include "content/public/browser/site_instance.h" | 11 #include "content/public/browser/site_instance.h" |
11 #include "content/public/common/content_client.h" | 12 #include "content/public/common/content_client.h" |
12 #include "content/public/test/test_browser_context.h" | 13 #include "content/public/test/test_browser_context.h" |
13 #include "extensions/browser/extension_registry.h" | 14 #include "extensions/browser/extension_registry.h" |
14 #include "extensions/browser/extensions_test.h" | 15 #include "extensions/browser/extensions_test.h" |
15 #include "extensions/browser/notification_types.h" | 16 #include "extensions/browser/notification_types.h" |
16 #include "extensions/browser/process_manager_delegate.h" | 17 #include "extensions/browser/process_manager_delegate.h" |
17 #include "extensions/browser/test_extensions_browser_client.h" | 18 #include "extensions/browser/test_extensions_browser_client.h" |
(...skipping 30 matching lines...) Expand all Loading... |
48 } | 49 } |
49 | 50 |
50 bool is_background_page_allowed_; | 51 bool is_background_page_allowed_; |
51 bool defer_creating_startup_background_hosts_; | 52 bool defer_creating_startup_background_hosts_; |
52 }; | 53 }; |
53 | 54 |
54 } // namespace | 55 } // namespace |
55 | 56 |
56 class ProcessManagerTest : public ExtensionsTest { | 57 class ProcessManagerTest : public ExtensionsTest { |
57 public: | 58 public: |
58 ProcessManagerTest() : extension_registry_(browser_context()) { | 59 ProcessManagerTest() {} |
| 60 |
| 61 ~ProcessManagerTest() override {} |
| 62 |
| 63 void SetUp() override { |
| 64 ExtensionsTest::SetUp(); |
| 65 extension_registry_ = |
| 66 base::MakeUnique<ExtensionRegistry>(browser_context()); |
59 extensions_browser_client()->set_process_manager_delegate( | 67 extensions_browser_client()->set_process_manager_delegate( |
60 &process_manager_delegate_); | 68 &process_manager_delegate_); |
61 } | 69 } |
62 | 70 |
63 ~ProcessManagerTest() override {} | |
64 | |
65 // Use original_context() to make it clear it is a non-incognito context. | 71 // Use original_context() to make it clear it is a non-incognito context. |
66 BrowserContext* original_context() { return browser_context(); } | 72 BrowserContext* original_context() { return browser_context(); } |
67 ExtensionRegistry* extension_registry() { return &extension_registry_; } | 73 ExtensionRegistry* extension_registry() { return extension_registry_.get(); } |
68 TestProcessManagerDelegate* process_manager_delegate() { | 74 TestProcessManagerDelegate* process_manager_delegate() { |
69 return &process_manager_delegate_; | 75 return &process_manager_delegate_; |
70 } | 76 } |
71 | 77 |
72 // Returns true if the notification |type| is registered for |manager| with | 78 // Returns true if the notification |type| is registered for |manager| with |
73 // source |context|. Pass NULL for |context| for all sources. | 79 // source |context|. Pass NULL for |context| for all sources. |
74 static bool IsRegistered(ProcessManager* manager, | 80 static bool IsRegistered(ProcessManager* manager, |
75 int type, | 81 int type, |
76 BrowserContext* context) { | 82 BrowserContext* context) { |
77 return manager->registrar_.IsRegistered( | 83 return manager->registrar_.IsRegistered( |
78 manager, type, content::Source<BrowserContext>(context)); | 84 manager, type, content::Source<BrowserContext>(context)); |
79 } | 85 } |
80 | 86 |
81 private: | 87 private: |
82 ExtensionRegistry extension_registry_; // Shared between BrowserContexts. | 88 std::unique_ptr<ExtensionRegistry> |
| 89 extension_registry_; // Shared between BrowserContexts. |
83 TestProcessManagerDelegate process_manager_delegate_; | 90 TestProcessManagerDelegate process_manager_delegate_; |
84 | 91 |
85 DISALLOW_COPY_AND_ASSIGN(ProcessManagerTest); | 92 DISALLOW_COPY_AND_ASSIGN(ProcessManagerTest); |
86 }; | 93 }; |
87 | 94 |
88 // Test that notification registration works properly. | 95 // Test that notification registration works properly. |
89 TEST_F(ProcessManagerTest, ExtensionNotificationRegistration) { | 96 TEST_F(ProcessManagerTest, ExtensionNotificationRegistration) { |
90 // Test for a normal context ProcessManager. | 97 // Test for a normal context ProcessManager. |
91 std::unique_ptr<ProcessManager> manager1(ProcessManager::CreateForTesting( | 98 std::unique_ptr<ProcessManager> manager1(ProcessManager::CreateForTesting( |
92 original_context(), extension_registry())); | 99 original_context(), extension_registry())); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 scoped_refptr<SiteInstance> site21 = | 235 scoped_refptr<SiteInstance> site21 = |
229 manager1->GetSiteInstanceForURL(ext2_url1); | 236 manager1->GetSiteInstanceForURL(ext2_url1); |
230 EXPECT_NE(site11, site21); | 237 EXPECT_NE(site11, site21); |
231 | 238 |
232 scoped_refptr<SiteInstance> other_profile_site = | 239 scoped_refptr<SiteInstance> other_profile_site = |
233 manager2->GetSiteInstanceForURL(ext1_url1); | 240 manager2->GetSiteInstanceForURL(ext1_url1); |
234 EXPECT_NE(site11, other_profile_site); | 241 EXPECT_NE(site11, other_profile_site); |
235 } | 242 } |
236 | 243 |
237 } // namespace extensions | 244 } // namespace extensions |
OLD | NEW |