Move render_view_context_menu.* and related files out of tab_contents.
[chromium-blink-merge.git] / extensions / browser / extension_registry_unittest.cc
blob075019b244c4a4dde186bdf59e0a62422ab450e0
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
3 // found in the LICENSE file.
5 #include "extensions/browser/extension_registry.h"
7 #include <string>
9 #include "base/memory/ref_counted.h"
10 #include "extensions/common/extension.h"
11 #include "extensions/common/test_util.h"
12 #include "testing/gtest/include/gtest/gtest.h"
14 namespace extensions {
15 namespace {
17 typedef testing::Test ExtensionRegistryTest;
19 TEST_F(ExtensionRegistryTest, FillAndClearRegistry) {
20 ExtensionRegistry registry;
21 scoped_refptr<Extension> extension1 = test_util::CreateExtensionWithID("id1");
22 scoped_refptr<Extension> extension2 = test_util::CreateExtensionWithID("id2");
23 scoped_refptr<Extension> extension3 = test_util::CreateExtensionWithID("id3");
24 scoped_refptr<Extension> extension4 = test_util::CreateExtensionWithID("id4");
26 // All the sets start empty.
27 EXPECT_EQ(0u, registry.enabled_extensions().size());
28 EXPECT_EQ(0u, registry.disabled_extensions().size());
29 EXPECT_EQ(0u, registry.terminated_extensions().size());
30 EXPECT_EQ(0u, registry.blacklisted_extensions().size());
32 // Extensions can be added to each set.
33 registry.AddEnabled(extension1);
34 registry.AddDisabled(extension2);
35 registry.AddTerminated(extension3);
36 registry.AddBlacklisted(extension4);
38 EXPECT_EQ(1u, registry.enabled_extensions().size());
39 EXPECT_EQ(1u, registry.disabled_extensions().size());
40 EXPECT_EQ(1u, registry.terminated_extensions().size());
41 EXPECT_EQ(1u, registry.blacklisted_extensions().size());
43 // Clearing the registry clears all sets.
44 registry.ClearAll();
46 EXPECT_EQ(0u, registry.enabled_extensions().size());
47 EXPECT_EQ(0u, registry.disabled_extensions().size());
48 EXPECT_EQ(0u, registry.terminated_extensions().size());
49 EXPECT_EQ(0u, registry.blacklisted_extensions().size());
52 // A simple test of adding and removing things from sets.
53 TEST_F(ExtensionRegistryTest, AddAndRemoveExtensionFromRegistry) {
54 ExtensionRegistry registry;
56 // Adding an extension works.
57 scoped_refptr<Extension> extension = test_util::CreateExtensionWithID("id");
58 EXPECT_TRUE(registry.AddEnabled(extension));
59 EXPECT_EQ(1u, registry.enabled_extensions().size());
61 // The extension was only added to one set.
62 EXPECT_EQ(0u, registry.disabled_extensions().size());
63 EXPECT_EQ(0u, registry.terminated_extensions().size());
64 EXPECT_EQ(0u, registry.blacklisted_extensions().size());
66 // Removing an extension works.
67 EXPECT_TRUE(registry.RemoveEnabled(extension->id()));
68 EXPECT_EQ(0u, registry.enabled_extensions().size());
70 // Trying to remove an extension that isn't in the set fails cleanly.
71 EXPECT_FALSE(registry.RemoveEnabled(extension->id()));
74 TEST_F(ExtensionRegistryTest, AddExtensionToRegistryTwice) {
75 ExtensionRegistry registry;
76 scoped_refptr<Extension> extension = test_util::CreateExtensionWithID("id");
78 // An extension can exist in two sets at once. It would be nice to eliminate
79 // this functionality, but some users of ExtensionRegistry need it.
80 EXPECT_TRUE(registry.AddEnabled(extension));
81 EXPECT_TRUE(registry.AddDisabled(extension));
83 EXPECT_EQ(1u, registry.enabled_extensions().size());
84 EXPECT_EQ(1u, registry.disabled_extensions().size());
85 EXPECT_EQ(0u, registry.terminated_extensions().size());
86 EXPECT_EQ(0u, registry.blacklisted_extensions().size());
89 TEST_F(ExtensionRegistryTest, GetExtensionById) {
90 ExtensionRegistry registry;
92 // Trying to get an extension fails cleanly when the sets are empty.
93 EXPECT_FALSE(
94 registry.GetExtensionById("id", ExtensionRegistry::EVERYTHING));
96 scoped_refptr<Extension> enabled =
97 test_util::CreateExtensionWithID("enabled");
98 scoped_refptr<Extension> disabled =
99 test_util::CreateExtensionWithID("disabled");
100 scoped_refptr<Extension> terminated =
101 test_util::CreateExtensionWithID("terminated");
102 scoped_refptr<Extension> blacklisted =
103 test_util::CreateExtensionWithID("blacklisted");
105 // Add an extension to each set.
106 registry.AddEnabled(enabled);
107 registry.AddDisabled(disabled);
108 registry.AddTerminated(terminated);
109 registry.AddBlacklisted(blacklisted);
111 // Enabled is part of everything and the enabled list.
112 EXPECT_TRUE(
113 registry.GetExtensionById("enabled", ExtensionRegistry::EVERYTHING));
114 EXPECT_TRUE(
115 registry.GetExtensionById("enabled", ExtensionRegistry::ENABLED));
116 EXPECT_FALSE(
117 registry.GetExtensionById("enabled", ExtensionRegistry::DISABLED));
118 EXPECT_FALSE(
119 registry.GetExtensionById("enabled", ExtensionRegistry::TERMINATED));
120 EXPECT_FALSE(
121 registry.GetExtensionById("enabled", ExtensionRegistry::BLACKLISTED));
123 // Disabled is part of everything and the disabled list.
124 EXPECT_TRUE(
125 registry.GetExtensionById("disabled", ExtensionRegistry::EVERYTHING));
126 EXPECT_FALSE(
127 registry.GetExtensionById("disabled", ExtensionRegistry::ENABLED));
128 EXPECT_TRUE(
129 registry.GetExtensionById("disabled", ExtensionRegistry::DISABLED));
130 EXPECT_FALSE(
131 registry.GetExtensionById("disabled", ExtensionRegistry::TERMINATED));
132 EXPECT_FALSE(
133 registry.GetExtensionById("disabled", ExtensionRegistry::BLACKLISTED));
135 // Terminated is part of everything and the terminated list.
136 EXPECT_TRUE(
137 registry.GetExtensionById("terminated", ExtensionRegistry::EVERYTHING));
138 EXPECT_FALSE(
139 registry.GetExtensionById("terminated", ExtensionRegistry::ENABLED));
140 EXPECT_FALSE(
141 registry.GetExtensionById("terminated", ExtensionRegistry::DISABLED));
142 EXPECT_TRUE(
143 registry.GetExtensionById("terminated", ExtensionRegistry::TERMINATED));
144 EXPECT_FALSE(
145 registry.GetExtensionById("terminated", ExtensionRegistry::BLACKLISTED));
147 // Blacklisted is part of everything and the blacklisted list.
148 EXPECT_TRUE(
149 registry.GetExtensionById("blacklisted", ExtensionRegistry::EVERYTHING));
150 EXPECT_FALSE(
151 registry.GetExtensionById("blacklisted", ExtensionRegistry::ENABLED));
152 EXPECT_FALSE(
153 registry.GetExtensionById("blacklisted", ExtensionRegistry::DISABLED));
154 EXPECT_FALSE(
155 registry.GetExtensionById("blacklisted", ExtensionRegistry::TERMINATED));
156 EXPECT_TRUE(
157 registry.GetExtensionById("blacklisted", ExtensionRegistry::BLACKLISTED));
159 // Enabled can be found with multiple flags set.
160 EXPECT_TRUE(registry.GetExtensionById(
161 "enabled", ExtensionRegistry::ENABLED | ExtensionRegistry::TERMINATED));
163 // Enabled isn't found if the wrong flags are set.
164 EXPECT_FALSE(registry.GetExtensionById(
165 "enabled", ExtensionRegistry::DISABLED | ExtensionRegistry::BLACKLISTED));
168 } // namespace
169 } // namespace extensions