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/extension_registry.h" | 5 #include "extensions/browser/extension_registry.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
11 #include "extensions/browser/extension_registry_observer.h" | 11 #include "extensions/browser/extension_registry_observer.h" |
12 #include "extensions/browser/uninstall_reason.h" | 12 #include "extensions/browser/uninstall_reason.h" |
13 #include "extensions/common/test_util.h" | 13 #include "extensions/common/test_util.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
15 | 15 |
16 namespace extensions { | 16 namespace extensions { |
17 namespace { | 17 namespace { |
18 | 18 |
19 typedef testing::Test ExtensionRegistryTest; | 19 typedef testing::Test ExtensionRegistryTest; |
20 | 20 |
21 testing::AssertionResult HasSingleExtension( | 21 testing::AssertionResult HasSingleExtension( |
22 const ExtensionList& list, | 22 const ExtensionList& list, |
23 const scoped_refptr<const Extension>& extension) { | 23 const scoped_refptr<const Extension>& extension) { |
24 if (list.empty()) | 24 if (list.empty()) |
25 return testing::AssertionFailure() << "No extensions in list"; | 25 return testing::AssertionFailure() << "No extensions in list"; |
26 if (list.size() > 1) | 26 if (list.size() > 1) |
27 return testing::AssertionFailure() << list.size() | 27 return testing::AssertionFailure() << list.size() |
28 << " extensions, expected 1"; | 28 << " extensions, expected 1"; |
29 const Extension* did_load = list[0].get(); | 29 const Extension* did_load = list[0].get(); |
30 if (did_load != extension) | 30 if (did_load != extension.get()) |
31 return testing::AssertionFailure() << "Expected " << extension->id() | 31 return testing::AssertionFailure() << "Expected " << extension->id() |
32 << " found " << did_load->id(); | 32 << " found " << did_load->id(); |
33 return testing::AssertionSuccess(); | 33 return testing::AssertionSuccess(); |
34 } | 34 } |
35 | 35 |
36 class TestObserver : public ExtensionRegistryObserver { | 36 class TestObserver : public ExtensionRegistryObserver { |
37 public: | 37 public: |
38 void Reset() { | 38 void Reset() { |
39 loaded_.clear(); | 39 loaded_.clear(); |
40 unloaded_.clear(); | 40 unloaded_.clear(); |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 registry.AddObserver(&observer); | 241 registry.AddObserver(&observer); |
242 | 242 |
243 EXPECT_TRUE(observer.loaded().empty()); | 243 EXPECT_TRUE(observer.loaded().empty()); |
244 EXPECT_TRUE(observer.unloaded().empty()); | 244 EXPECT_TRUE(observer.unloaded().empty()); |
245 EXPECT_TRUE(observer.installed().empty()); | 245 EXPECT_TRUE(observer.installed().empty()); |
246 | 246 |
247 scoped_refptr<const Extension> extension = | 247 scoped_refptr<const Extension> extension = |
248 test_util::CreateExtensionWithID("id"); | 248 test_util::CreateExtensionWithID("id"); |
249 | 249 |
250 registry.TriggerOnWillBeInstalled( | 250 registry.TriggerOnWillBeInstalled( |
251 extension, false, false, base::EmptyString()); | 251 extension.get(), false, false, base::EmptyString()); |
252 EXPECT_TRUE(HasSingleExtension(observer.installed(), extension.get())); | 252 EXPECT_TRUE(HasSingleExtension(observer.installed(), extension.get())); |
253 | 253 |
254 registry.AddEnabled(extension); | 254 registry.AddEnabled(extension); |
255 registry.TriggerOnLoaded(extension); | 255 registry.TriggerOnLoaded(extension.get()); |
256 | 256 |
257 registry.TriggerOnWillBeInstalled(extension, true, false, "foo"); | 257 registry.TriggerOnWillBeInstalled(extension.get(), true, false, "foo"); |
258 | 258 |
259 EXPECT_TRUE(HasSingleExtension(observer.loaded(), extension.get())); | 259 EXPECT_TRUE(HasSingleExtension(observer.loaded(), extension.get())); |
260 EXPECT_TRUE(observer.unloaded().empty()); | 260 EXPECT_TRUE(observer.unloaded().empty()); |
261 registry.Shutdown(); | 261 registry.Shutdown(); |
262 | 262 |
263 registry.RemoveEnabled(extension->id()); | 263 registry.RemoveEnabled(extension->id()); |
264 registry.TriggerOnUnloaded(extension, UnloadedExtensionInfo::REASON_DISABLE); | 264 registry.TriggerOnUnloaded(extension.get(), |
| 265 UnloadedExtensionInfo::REASON_DISABLE); |
265 | 266 |
266 EXPECT_TRUE(observer.loaded().empty()); | 267 EXPECT_TRUE(observer.loaded().empty()); |
267 EXPECT_TRUE(HasSingleExtension(observer.unloaded(), extension.get())); | 268 EXPECT_TRUE(HasSingleExtension(observer.unloaded(), extension.get())); |
268 registry.Shutdown(); | 269 registry.Shutdown(); |
269 | 270 |
270 registry.TriggerOnUninstalled(extension, | 271 registry.TriggerOnUninstalled(extension.get(), |
271 extensions::UNINSTALL_REASON_FOR_TESTING); | 272 extensions::UNINSTALL_REASON_FOR_TESTING); |
272 EXPECT_TRUE(observer.installed().empty()); | 273 EXPECT_TRUE(observer.installed().empty()); |
273 EXPECT_TRUE(HasSingleExtension(observer.uninstalled(), extension.get())); | 274 EXPECT_TRUE(HasSingleExtension(observer.uninstalled(), extension.get())); |
274 | 275 |
275 registry.RemoveObserver(&observer); | 276 registry.RemoveObserver(&observer); |
276 } | 277 } |
277 | 278 |
278 } // namespace | 279 } // namespace |
279 } // namespace extensions | 280 } // namespace extensions |
OLD | NEW |