Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Side by Side Diff: chrome/browser/extensions/blacklist_unittest.cc

Issue 11415216: Make Blacklist::IsBlacklist asynchronous (it will need to be for safe (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix another test Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/bind.h"
6 #include "base/message_loop.h"
7 #include "base/run_loop.h"
8 #include "chrome/browser/extensions/blacklist.h"
9 #include "chrome/browser/extensions/extension_prefs.h"
10 #include "chrome/browser/extensions/test_blacklist.h"
11 #include "chrome/browser/extensions/test_extension_prefs.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace extensions {
15 namespace {
16
17 class BlacklistTest : public testing::Test {
18 public:
19 BlacklistTest()
20 : prefs_(message_loop_.message_loop_proxy()),
21 blacklist_(prefs_.prefs()) {
22 }
23
24 bool IsBlacklisted(const Extension* extension) {
25 return TestBlacklist(&blacklist_).IsBlacklisted(extension->id());
26 }
27
28 protected:
29 MessageLoop message_loop_;
30
31 TestExtensionPrefs prefs_;
32
33 Blacklist blacklist_;
34 };
35
36 TEST_F(BlacklistTest, SetFromUpdater) {
37 scoped_refptr<const Extension> extension_a = prefs_.AddExtension("a");
38 scoped_refptr<const Extension> extension_b = prefs_.AddExtension("b");
39 scoped_refptr<const Extension> extension_c = prefs_.AddExtension("c");
40 scoped_refptr<const Extension> extension_d = prefs_.AddExtension("d");
41
42 // c, d, start blacklisted.
43 prefs_.prefs()->SetExtensionBlacklisted(extension_c->id(), true);
44 prefs_.prefs()->SetExtensionBlacklisted(extension_d->id(), true);
45
46 EXPECT_FALSE(IsBlacklisted(extension_a));
47 EXPECT_FALSE(IsBlacklisted(extension_b));
48 EXPECT_TRUE(IsBlacklisted(extension_c));
49 EXPECT_TRUE(IsBlacklisted(extension_d));
50
51 // Mix up the blacklist.
52 {
53 std::vector<std::string> blacklist;
54 blacklist.push_back(extension_b->id());
55 blacklist.push_back(extension_c->id());
56 blacklist_.SetFromUpdater(blacklist, "1");
57 }
58 EXPECT_FALSE(IsBlacklisted(extension_a));
59 EXPECT_TRUE(IsBlacklisted(extension_b));
60 EXPECT_TRUE(IsBlacklisted(extension_c));
61 EXPECT_FALSE(IsBlacklisted(extension_d));
62
63 // No-op, just in case.
64 {
65 std::vector<std::string> blacklist;
66 blacklist.push_back(extension_b->id());
67 blacklist.push_back(extension_c->id());
68 blacklist_.SetFromUpdater(blacklist, "2");
69 }
70 EXPECT_FALSE(IsBlacklisted(extension_a));
71 EXPECT_TRUE(IsBlacklisted(extension_b));
72 EXPECT_TRUE(IsBlacklisted(extension_c));
73 EXPECT_FALSE(IsBlacklisted(extension_d));
74
75 // Strictly increase the blacklist.
76 {
77 std::vector<std::string> blacklist;
78 blacklist.push_back(extension_a->id());
79 blacklist.push_back(extension_b->id());
80 blacklist.push_back(extension_c->id());
81 blacklist.push_back(extension_d->id());
82 blacklist_.SetFromUpdater(blacklist, "3");
83 }
84 EXPECT_TRUE(IsBlacklisted(extension_a));
85 EXPECT_TRUE(IsBlacklisted(extension_b));
86 EXPECT_TRUE(IsBlacklisted(extension_c));
87 EXPECT_TRUE(IsBlacklisted(extension_d));
88
89 // Strictly decrease the blacklist.
90 {
91 std::vector<std::string> blacklist;
92 blacklist.push_back(extension_a->id());
93 blacklist.push_back(extension_b->id());
94 blacklist_.SetFromUpdater(blacklist, "4");
95 }
96 EXPECT_TRUE(IsBlacklisted(extension_a));
97 EXPECT_TRUE(IsBlacklisted(extension_b));
98 EXPECT_FALSE(IsBlacklisted(extension_c));
99 EXPECT_FALSE(IsBlacklisted(extension_d));
100
101 // Clear the blacklist.
102 {
103 std::vector<std::string> blacklist;
104 blacklist_.SetFromUpdater(blacklist, "5");
105 }
106 EXPECT_FALSE(IsBlacklisted(extension_a));
107 EXPECT_FALSE(IsBlacklisted(extension_b));
108 EXPECT_FALSE(IsBlacklisted(extension_c));
109 EXPECT_FALSE(IsBlacklisted(extension_d));
110 }
111
112 void Assign(std::set<std::string> *to, const std::set<std::string>& from) {
113 *to = from;
114 }
115
116 TEST_F(BlacklistTest, OnlyIncludesRequestedIDs) {
117 scoped_refptr<const Extension> extension_a = prefs_.AddExtension("a");
118 scoped_refptr<const Extension> extension_b = prefs_.AddExtension("b");
119 scoped_refptr<const Extension> extension_c = prefs_.AddExtension("c");
120
121 {
122 std::vector<std::string> blacklist;
123 blacklist.push_back(extension_a->id());
124 blacklist.push_back(extension_b->id());
125 blacklist_.SetFromUpdater(blacklist, "1");
126 base::RunLoop().RunUntilIdle();
127 }
128
129 std::set<std::string> blacklist_actual;
130 {
131 std::set<std::string> blacklist_query;
132 blacklist_query.insert(extension_a->id());
133 blacklist_query.insert(extension_c->id());
134 blacklist_.GetBlacklistedIDs(blacklist_query,
135 base::Bind(&Assign, &blacklist_actual));
136 base::RunLoop().RunUntilIdle();
137 }
138
139 std::set<std::string> blacklist_expected;
140 blacklist_expected.insert(extension_a->id());
141 EXPECT_EQ(blacklist_expected, blacklist_actual);
142 }
143
144 } // namespace extensions
145 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/extensions/blacklist.cc ('k') | chrome/browser/extensions/extension_blacklist_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698