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

Side by Side Diff: chrome/browser/extensions/standard_management_policy_provider_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
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/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/string_number_conversions.h" 6 #include "base/string_number_conversions.h"
7 #include "base/values.h" 7 #include "base/values.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/standard_management_policy_provider.h" 10 #include "chrome/browser/extensions/standard_management_policy_provider.h"
11 #include "chrome/browser/extensions/test_extension_prefs.h" 11 #include "chrome/browser/extensions/test_extension_prefs.h"
12 #include "chrome/common/extensions/extension_manifest_constants.h" 12 #include "chrome/common/extensions/extension_manifest_constants.h"
13 #include "content/public/test/test_browser_thread.h" 13 #include "content/public/test/test_browser_thread.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 17
18 class StandardManagementPolicyProviderTest : public testing::Test { 18 class StandardManagementPolicyProviderTest : public testing::Test {
19 public: 19 public:
20 StandardManagementPolicyProviderTest() 20 StandardManagementPolicyProviderTest()
21 : ui_thread_(content::BrowserThread::UI, &message_loop_), 21 : ui_thread_(content::BrowserThread::UI, &message_loop_),
22 file_thread_(content::BrowserThread::FILE, &message_loop_), 22 file_thread_(content::BrowserThread::FILE, &message_loop_),
23 prefs_(message_loop_.message_loop_proxy()), 23 prefs_(message_loop_.message_loop_proxy()),
24 blacklist_(prefs()), 24 provider_(prefs()) {
25 provider_(prefs(), &blacklist_) {
26 } 25 }
27 26
28
29 protected: 27 protected:
30 ExtensionPrefs* prefs() { 28 ExtensionPrefs* prefs() {
31 return prefs_.prefs(); 29 return prefs_.prefs();
32 } 30 }
33 31
34 scoped_refptr<const Extension> CreateExtension(Extension::Location location, 32 scoped_refptr<const Extension> CreateExtension(Extension::Location location,
35 bool required) { 33 bool required) {
36 base::DictionaryValue values; 34 base::DictionaryValue values;
37 values.SetString(extension_manifest_keys::kName, "test"); 35 values.SetString(extension_manifest_keys::kName, "test");
38 values.SetString(extension_manifest_keys::kVersion, "0.1"); 36 values.SetString(extension_manifest_keys::kVersion, "0.1");
39 std::string error; 37 std::string error;
40 scoped_refptr<const Extension> extension = Extension::Create( 38 scoped_refptr<const Extension> extension = Extension::Create(
41 FilePath(), location, values, Extension::NO_FLAGS, &error); 39 FilePath(), location, values, Extension::NO_FLAGS, &error);
42 CHECK(extension.get()) << error; 40 CHECK(extension.get()) << error;
43 return extension; 41 return extension;
44 } 42 }
45 43
46 MessageLoop message_loop_; 44 MessageLoop message_loop_;
47 content::TestBrowserThread ui_thread_; 45 content::TestBrowserThread ui_thread_;
48 content::TestBrowserThread file_thread_; 46 content::TestBrowserThread file_thread_;
49 47
50 TestExtensionPrefs prefs_; 48 TestExtensionPrefs prefs_;
51 49
52 Blacklist blacklist_;
53
54 StandardManagementPolicyProvider provider_; 50 StandardManagementPolicyProvider provider_;
55 }; 51 };
56 52
57 // Tests various areas of blacklist functionality.
58 TEST_F(StandardManagementPolicyProviderTest, Blacklist) {
59 std::string not_installed_id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
60
61 // Install 5 extensions.
62 ExtensionList extensions;
63 for (int i = 0; i < 5; i++) {
64 std::string name = "test" + base::IntToString(i);
65 extensions.push_back(prefs_.AddExtension(name));
66 }
67 EXPECT_EQ(NULL,
68 prefs()->GetInstalledExtensionInfo(not_installed_id).get());
69
70 ExtensionList::const_iterator iter;
71 for (iter = extensions.begin(); iter != extensions.end(); ++iter) {
72 EXPECT_TRUE(provider_.UserMayLoad(*iter, NULL));
73 }
74 // Blacklist one installed and one not-installed extension id.
75 std::vector<std::string> blacklisted_ids;
76 blacklisted_ids.push_back(extensions[0]->id());
77 blacklisted_ids.push_back(not_installed_id);
78 blacklist_.SetFromUpdater(blacklisted_ids, "version0");
79
80 // Make sure the id we expect to be blacklisted is.
81 EXPECT_FALSE(provider_.UserMayLoad(extensions[0], NULL));
82
83 // Make sure the other id's are not blacklisted.
84 for (iter = extensions.begin() + 1; iter != extensions.end(); ++iter)
85 EXPECT_TRUE(provider_.UserMayLoad(*iter, NULL));
86
87 // Make sure GetInstalledExtensionsInfo returns only the non-blacklisted
88 // extensions data.
89 scoped_ptr<ExtensionPrefs::ExtensionsInfo> info(
90 prefs()->GetInstalledExtensionsInfo());
91 EXPECT_EQ(4u, info->size());
92 ExtensionPrefs::ExtensionsInfo::iterator info_iter;
93 for (info_iter = info->begin(); info_iter != info->end(); ++info_iter) {
94 ExtensionInfo* extension_info = info_iter->get();
95 EXPECT_NE(extensions[0]->id(), extension_info->extension_id);
96 }
97 }
98
99 // Tests the behavior of the ManagementPolicy provider methods for an 53 // Tests the behavior of the ManagementPolicy provider methods for an
100 // extension required by policy. 54 // extension required by policy.
101 TEST_F(StandardManagementPolicyProviderTest, RequiredExtension) { 55 TEST_F(StandardManagementPolicyProviderTest, RequiredExtension) {
102 scoped_refptr<const Extension> extension = 56 scoped_refptr<const Extension> extension =
103 CreateExtension(Extension::EXTERNAL_POLICY_DOWNLOAD, true); 57 CreateExtension(Extension::EXTERNAL_POLICY_DOWNLOAD, true);
104 58
105 string16 error16; 59 string16 error16;
106 EXPECT_TRUE(provider_.UserMayLoad(extension.get(), &error16)); 60 EXPECT_TRUE(provider_.UserMayLoad(extension.get(), &error16));
107 EXPECT_EQ(string16(), error16); 61 EXPECT_EQ(string16(), error16);
108 62
(...skipping 14 matching lines...) Expand all
123 string16 error16; 77 string16 error16;
124 EXPECT_TRUE(provider_.UserMayLoad(extension.get(), &error16)); 78 EXPECT_TRUE(provider_.UserMayLoad(extension.get(), &error16));
125 EXPECT_EQ(string16(), error16); 79 EXPECT_EQ(string16(), error16);
126 EXPECT_TRUE(provider_.UserMayModifySettings(extension.get(), &error16)); 80 EXPECT_TRUE(provider_.UserMayModifySettings(extension.get(), &error16));
127 EXPECT_EQ(string16(), error16); 81 EXPECT_EQ(string16(), error16);
128 EXPECT_FALSE(provider_.MustRemainEnabled(extension.get(), &error16)); 82 EXPECT_FALSE(provider_.MustRemainEnabled(extension.get(), &error16));
129 EXPECT_EQ(string16(), error16); 83 EXPECT_EQ(string16(), error16);
130 } 84 }
131 85
132 } // namespace extensions 86 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/standard_management_policy_provider.cc ('k') | chrome/browser/extensions/test_blacklist.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698