OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "chrome/browser/extensions/blacklist.h" | 8 #include "chrome/browser/extensions/blacklist.h" |
9 #include "chrome/browser/extensions/extension_prefs.h" | 9 #include "chrome/browser/extensions/extension_prefs.h" |
10 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" | 10 #include "chrome/browser/extensions/fake_safe_browsing_database_manager.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 TEST_F(BlacklistTest, SetFromUpdater) { | 50 TEST_F(BlacklistTest, SetFromUpdater) { |
51 scoped_refptr<const Extension> extension_a = prefs_.AddExtension("a"); | 51 scoped_refptr<const Extension> extension_a = prefs_.AddExtension("a"); |
52 scoped_refptr<const Extension> extension_b = prefs_.AddExtension("b"); | 52 scoped_refptr<const Extension> extension_b = prefs_.AddExtension("b"); |
53 scoped_refptr<const Extension> extension_c = prefs_.AddExtension("c"); | 53 scoped_refptr<const Extension> extension_c = prefs_.AddExtension("c"); |
54 scoped_refptr<const Extension> extension_d = prefs_.AddExtension("d"); | 54 scoped_refptr<const Extension> extension_d = prefs_.AddExtension("d"); |
55 | 55 |
56 // c, d, start blacklisted. | 56 // c, d, start blacklisted. |
57 prefs_.prefs()->SetExtensionBlacklisted(extension_c->id(), true); | 57 prefs_.prefs()->SetExtensionBlacklisted(extension_c->id(), true); |
58 prefs_.prefs()->SetExtensionBlacklisted(extension_d->id(), true); | 58 prefs_.prefs()->SetExtensionBlacklisted(extension_d->id(), true); |
59 | 59 |
60 EXPECT_FALSE(IsBlacklisted(extension_a)); | 60 EXPECT_FALSE(IsBlacklisted(extension_a.get())); |
61 EXPECT_FALSE(IsBlacklisted(extension_b)); | 61 EXPECT_FALSE(IsBlacklisted(extension_b.get())); |
62 EXPECT_TRUE(IsBlacklisted(extension_c)); | 62 EXPECT_TRUE(IsBlacklisted(extension_c.get())); |
63 EXPECT_TRUE(IsBlacklisted(extension_d)); | 63 EXPECT_TRUE(IsBlacklisted(extension_d.get())); |
64 | 64 |
65 // Mix up the blacklist. | 65 // Mix up the blacklist. |
66 { | 66 { |
67 std::vector<std::string> blacklist; | 67 std::vector<std::string> blacklist; |
68 blacklist.push_back(extension_b->id()); | 68 blacklist.push_back(extension_b->id()); |
69 blacklist.push_back(extension_c->id()); | 69 blacklist.push_back(extension_c->id()); |
70 blacklist_.SetFromUpdater(blacklist, "1"); | 70 blacklist_.SetFromUpdater(blacklist, "1"); |
71 } | 71 } |
72 EXPECT_FALSE(IsBlacklisted(extension_a)); | 72 EXPECT_FALSE(IsBlacklisted(extension_a.get())); |
73 EXPECT_TRUE(IsBlacklisted(extension_b)); | 73 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
74 EXPECT_TRUE(IsBlacklisted(extension_c)); | 74 EXPECT_TRUE(IsBlacklisted(extension_c.get())); |
75 EXPECT_FALSE(IsBlacklisted(extension_d)); | 75 EXPECT_FALSE(IsBlacklisted(extension_d.get())); |
76 | 76 |
77 // No-op, just in case. | 77 // No-op, just in case. |
78 { | 78 { |
79 std::vector<std::string> blacklist; | 79 std::vector<std::string> blacklist; |
80 blacklist.push_back(extension_b->id()); | 80 blacklist.push_back(extension_b->id()); |
81 blacklist.push_back(extension_c->id()); | 81 blacklist.push_back(extension_c->id()); |
82 blacklist_.SetFromUpdater(blacklist, "2"); | 82 blacklist_.SetFromUpdater(blacklist, "2"); |
83 } | 83 } |
84 EXPECT_FALSE(IsBlacklisted(extension_a)); | 84 EXPECT_FALSE(IsBlacklisted(extension_a.get())); |
85 EXPECT_TRUE(IsBlacklisted(extension_b)); | 85 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
86 EXPECT_TRUE(IsBlacklisted(extension_c)); | 86 EXPECT_TRUE(IsBlacklisted(extension_c.get())); |
87 EXPECT_FALSE(IsBlacklisted(extension_d)); | 87 EXPECT_FALSE(IsBlacklisted(extension_d.get())); |
88 | 88 |
89 // Strictly increase the blacklist. | 89 // Strictly increase the blacklist. |
90 { | 90 { |
91 std::vector<std::string> blacklist; | 91 std::vector<std::string> blacklist; |
92 blacklist.push_back(extension_a->id()); | 92 blacklist.push_back(extension_a->id()); |
93 blacklist.push_back(extension_b->id()); | 93 blacklist.push_back(extension_b->id()); |
94 blacklist.push_back(extension_c->id()); | 94 blacklist.push_back(extension_c->id()); |
95 blacklist.push_back(extension_d->id()); | 95 blacklist.push_back(extension_d->id()); |
96 blacklist_.SetFromUpdater(blacklist, "3"); | 96 blacklist_.SetFromUpdater(blacklist, "3"); |
97 } | 97 } |
98 EXPECT_TRUE(IsBlacklisted(extension_a)); | 98 EXPECT_TRUE(IsBlacklisted(extension_a.get())); |
99 EXPECT_TRUE(IsBlacklisted(extension_b)); | 99 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
100 EXPECT_TRUE(IsBlacklisted(extension_c)); | 100 EXPECT_TRUE(IsBlacklisted(extension_c.get())); |
101 EXPECT_TRUE(IsBlacklisted(extension_d)); | 101 EXPECT_TRUE(IsBlacklisted(extension_d.get())); |
102 | 102 |
103 // Strictly decrease the blacklist. | 103 // Strictly decrease the blacklist. |
104 { | 104 { |
105 std::vector<std::string> blacklist; | 105 std::vector<std::string> blacklist; |
106 blacklist.push_back(extension_a->id()); | 106 blacklist.push_back(extension_a->id()); |
107 blacklist.push_back(extension_b->id()); | 107 blacklist.push_back(extension_b->id()); |
108 blacklist_.SetFromUpdater(blacklist, "4"); | 108 blacklist_.SetFromUpdater(blacklist, "4"); |
109 } | 109 } |
110 EXPECT_TRUE(IsBlacklisted(extension_a)); | 110 EXPECT_TRUE(IsBlacklisted(extension_a.get())); |
111 EXPECT_TRUE(IsBlacklisted(extension_b)); | 111 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
112 EXPECT_FALSE(IsBlacklisted(extension_c)); | 112 EXPECT_FALSE(IsBlacklisted(extension_c.get())); |
113 EXPECT_FALSE(IsBlacklisted(extension_d)); | 113 EXPECT_FALSE(IsBlacklisted(extension_d.get())); |
114 | 114 |
115 // Clear the blacklist. | 115 // Clear the blacklist. |
116 { | 116 { |
117 std::vector<std::string> blacklist; | 117 std::vector<std::string> blacklist; |
118 blacklist_.SetFromUpdater(blacklist, "5"); | 118 blacklist_.SetFromUpdater(blacklist, "5"); |
119 } | 119 } |
120 EXPECT_FALSE(IsBlacklisted(extension_a)); | 120 EXPECT_FALSE(IsBlacklisted(extension_a.get())); |
121 EXPECT_FALSE(IsBlacklisted(extension_b)); | 121 EXPECT_FALSE(IsBlacklisted(extension_b.get())); |
122 EXPECT_FALSE(IsBlacklisted(extension_c)); | 122 EXPECT_FALSE(IsBlacklisted(extension_c.get())); |
123 EXPECT_FALSE(IsBlacklisted(extension_d)); | 123 EXPECT_FALSE(IsBlacklisted(extension_d.get())); |
124 } | 124 } |
125 | 125 |
126 void Assign(std::set<std::string> *to, const std::set<std::string>& from) { | 126 void Assign(std::set<std::string> *to, const std::set<std::string>& from) { |
127 *to = from; | 127 *to = from; |
128 } | 128 } |
129 | 129 |
130 TEST_F(BlacklistTest, OnlyIncludesRequestedIDs) { | 130 TEST_F(BlacklistTest, OnlyIncludesRequestedIDs) { |
131 scoped_refptr<const Extension> extension_a = prefs_.AddExtension("a"); | 131 scoped_refptr<const Extension> extension_a = prefs_.AddExtension("a"); |
132 scoped_refptr<const Extension> extension_b = prefs_.AddExtension("b"); | 132 scoped_refptr<const Extension> extension_b = prefs_.AddExtension("b"); |
133 scoped_refptr<const Extension> extension_c = prefs_.AddExtension("c"); | 133 scoped_refptr<const Extension> extension_c = prefs_.AddExtension("c"); |
(...skipping 30 matching lines...) Expand all Loading... |
164 prefs_.prefs()->SetExtensionBlacklisted(extension_a->id(), true); | 164 prefs_.prefs()->SetExtensionBlacklisted(extension_a->id(), true); |
165 prefs_.prefs()->SetExtensionBlacklisted(extension_b->id(), true); | 165 prefs_.prefs()->SetExtensionBlacklisted(extension_b->id(), true); |
166 { | 166 { |
167 std::set<std::string> bc; | 167 std::set<std::string> bc; |
168 bc.insert(extension_b->id()); | 168 bc.insert(extension_b->id()); |
169 bc.insert(extension_c->id()); | 169 bc.insert(extension_c->id()); |
170 safe_browsing_database_manager_->set_unsafe_ids(bc); | 170 safe_browsing_database_manager_->set_unsafe_ids(bc); |
171 } | 171 } |
172 | 172 |
173 // The manager is still disabled at this point, so c won't be blacklisted. | 173 // The manager is still disabled at this point, so c won't be blacklisted. |
174 EXPECT_TRUE(IsBlacklisted(extension_a)); | 174 EXPECT_TRUE(IsBlacklisted(extension_a.get())); |
175 EXPECT_TRUE(IsBlacklisted(extension_b)); | 175 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
176 EXPECT_FALSE(IsBlacklisted(extension_c)); | 176 EXPECT_FALSE(IsBlacklisted(extension_c.get())); |
177 | 177 |
178 // Now it should be. | 178 // Now it should be. |
179 safe_browsing_database_manager_->set_enabled(true); | 179 safe_browsing_database_manager_->set_enabled(true); |
180 EXPECT_TRUE(IsBlacklisted(extension_a)); | 180 EXPECT_TRUE(IsBlacklisted(extension_a.get())); |
181 EXPECT_TRUE(IsBlacklisted(extension_b)); | 181 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
182 EXPECT_TRUE(IsBlacklisted(extension_c)); | 182 EXPECT_TRUE(IsBlacklisted(extension_c.get())); |
183 | 183 |
184 // Corner case: nothing in safebrowsing (but still enabled). | 184 // Corner case: nothing in safebrowsing (but still enabled). |
185 safe_browsing_database_manager_->set_unsafe_ids(std::set<std::string>()); | 185 safe_browsing_database_manager_->set_unsafe_ids(std::set<std::string>()); |
186 EXPECT_TRUE(IsBlacklisted(extension_a)); | 186 EXPECT_TRUE(IsBlacklisted(extension_a.get())); |
187 EXPECT_TRUE(IsBlacklisted(extension_b)); | 187 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
188 EXPECT_FALSE(IsBlacklisted(extension_c)); | 188 EXPECT_FALSE(IsBlacklisted(extension_c.get())); |
189 | 189 |
190 // Corner case: nothing in prefs. | 190 // Corner case: nothing in prefs. |
191 prefs_.prefs()->SetExtensionBlacklisted(extension_a->id(), false); | 191 prefs_.prefs()->SetExtensionBlacklisted(extension_a->id(), false); |
192 prefs_.prefs()->SetExtensionBlacklisted(extension_b->id(), false); | 192 prefs_.prefs()->SetExtensionBlacklisted(extension_b->id(), false); |
193 { | 193 { |
194 std::set<std::string> bc; | 194 std::set<std::string> bc; |
195 bc.insert(extension_b->id()); | 195 bc.insert(extension_b->id()); |
196 bc.insert(extension_c->id()); | 196 bc.insert(extension_c->id()); |
197 safe_browsing_database_manager_->set_unsafe_ids(bc); | 197 safe_browsing_database_manager_->set_unsafe_ids(bc); |
198 } | 198 } |
199 EXPECT_FALSE(IsBlacklisted(extension_a)); | 199 EXPECT_FALSE(IsBlacklisted(extension_a.get())); |
200 EXPECT_TRUE(IsBlacklisted(extension_b)); | 200 EXPECT_TRUE(IsBlacklisted(extension_b.get())); |
201 EXPECT_TRUE(IsBlacklisted(extension_c)); | 201 EXPECT_TRUE(IsBlacklisted(extension_c.get())); |
202 } | 202 } |
203 | 203 |
204 } // namespace extensions | 204 } // namespace extensions |
205 } // namespace | 205 } // namespace |
OLD | NEW |