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

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

Issue 10692168: Moved ExternalExtensionLoaders/Providers into extensions namespace (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Even later master Created 8 years, 5 months 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 <string> 5 #include <string>
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "base/version.h" 10 #include "base/version.h"
11 #include "chrome/browser/extensions/external_extension_provider_impl.h" 11 #include "chrome/browser/extensions/external_policy_loader.h"
12 #include "chrome/browser/extensions/external_extension_provider_interface.h" 12 #include "chrome/browser/extensions/external_provider_impl.h"
13 #include "chrome/browser/extensions/external_policy_extension_loader.h" 13 #include "chrome/browser/extensions/external_provider_interface.h"
14 #include "chrome/common/extensions/extension.h" 14 #include "chrome/common/extensions/extension.h"
15 #include "chrome/common/pref_names.h" 15 #include "chrome/common/pref_names.h"
16 #include "chrome/test/base/testing_pref_service.h" 16 #include "chrome/test/base/testing_pref_service.h"
17 #include "chrome/test/base/testing_profile.h" 17 #include "chrome/test/base/testing_profile.h"
18 #include "content/public/test/test_browser_thread.h" 18 #include "content/public/test/test_browser_thread.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 20
21 using content::BrowserThread; 21 using content::BrowserThread;
22 using extensions::Extension;
23 22
24 class ExternalPolicyExtensionProviderTest : public testing::Test { 23 namespace extensions {
24
25 class ExternalPolicyProviderTest : public testing::Test {
25 public: 26 public:
26 ExternalPolicyExtensionProviderTest() 27 ExternalPolicyProviderTest()
27 : loop_(MessageLoop::TYPE_IO), 28 : loop_(MessageLoop::TYPE_IO),
28 ui_thread_(BrowserThread::UI, &loop_) { 29 ui_thread_(BrowserThread::UI, &loop_) {
29 } 30 }
30 31
31 virtual ~ExternalPolicyExtensionProviderTest() {} 32 virtual ~ExternalPolicyProviderTest() {}
32 33
33 private: 34 private:
34 // We need these to satisfy BrowserThread::CurrentlyOn(BrowserThread::UI) 35 // We need these to satisfy BrowserThread::CurrentlyOn(BrowserThread::UI)
35 // checks in ExternalExtensionProviderImpl. 36 // checks in ExternalProviderImpl.
36 MessageLoop loop_; 37 MessageLoop loop_;
37 content::TestBrowserThread ui_thread_; 38 content::TestBrowserThread ui_thread_;
38 }; 39 };
39 40
40 class MockExternalPolicyExtensionProviderVisitor 41 class MockExternalPolicyProviderVisitor
41 : public ExternalExtensionProviderInterface::VisitorInterface { 42 : public ExternalProviderInterface::VisitorInterface {
42 public: 43 public:
43 MockExternalPolicyExtensionProviderVisitor() { 44 MockExternalPolicyProviderVisitor() {
44 } 45 }
45 46
46 // Initialize a provider with |policy_forcelist|, and check that it parses 47 // Initialize a provider with |policy_forcelist|, and check that it parses
47 // exactly those extensions, that are specified in |policy_validlist|. 48 // exactly those extensions, that are specified in |policy_validlist|.
48 void Visit(ListValue* policy_forcelist, 49 void Visit(ListValue* policy_forcelist,
49 ListValue* policy_validlist, 50 ListValue* policy_validlist,
50 const std::set<std::string>& ignore_list) { 51 const std::set<std::string>& ignore_list) {
51 profile_.reset(new TestingProfile); 52 profile_.reset(new TestingProfile);
52 profile_->GetTestingPrefService()->SetManagedPref( 53 profile_->GetTestingPrefService()->SetManagedPref(
53 prefs::kExtensionInstallForceList, 54 prefs::kExtensionInstallForceList,
54 policy_forcelist->DeepCopy()); 55 policy_forcelist->DeepCopy());
55 provider_.reset(new ExternalExtensionProviderImpl( 56 provider_.reset(new ExternalProviderImpl(
56 this, 57 this,
57 new ExternalPolicyExtensionLoader(profile_.get()), 58 new ExternalPolicyLoader(profile_.get()),
58 Extension::INVALID, 59 Extension::INVALID,
59 Extension::EXTERNAL_POLICY_DOWNLOAD, 60 Extension::EXTERNAL_POLICY_DOWNLOAD,
60 Extension::NO_FLAGS)); 61 Extension::NO_FLAGS));
61 62
62 // Extensions will be removed from this list as they visited, 63 // Extensions will be removed from this list as they visited,
63 // so it should be emptied by the end. 64 // so it should be emptied by the end.
64 remaining_extensions = policy_validlist; 65 remaining_extensions = policy_validlist;
65 provider_->VisitRegisteredExtension(); 66 provider_->VisitRegisteredExtension();
66 EXPECT_EQ(0u, remaining_extensions->GetSize()); 67 EXPECT_EQ(0u, remaining_extensions->GetSize());
67 } 68 }
(...skipping 21 matching lines...) Expand all
89 EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD, location1); 90 EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD, location1);
90 EXPECT_FALSE(version1.get()); 91 EXPECT_FALSE(version1.get());
91 92
92 // Remove the extension from our list. 93 // Remove the extension from our list.
93 StringValue ext_str(id + ";" + update_url.spec()); 94 StringValue ext_str(id + ";" + update_url.spec());
94 EXPECT_NE(false, remaining_extensions->Remove(ext_str, NULL)); 95 EXPECT_NE(false, remaining_extensions->Remove(ext_str, NULL));
95 return true; 96 return true;
96 } 97 }
97 98
98 virtual void OnExternalProviderReady( 99 virtual void OnExternalProviderReady(
99 const ExternalExtensionProviderInterface* provider) { 100 const ExternalProviderInterface* provider) {
100 EXPECT_EQ(provider, provider_.get()); 101 EXPECT_EQ(provider, provider_.get());
101 EXPECT_TRUE(provider->IsReady()); 102 EXPECT_TRUE(provider->IsReady());
102 } 103 }
103 104
104 private: 105 private:
105 ListValue* remaining_extensions; 106 ListValue* remaining_extensions;
106 107
107 scoped_ptr<TestingProfile> profile_; 108 scoped_ptr<TestingProfile> profile_;
108 109
109 scoped_ptr<ExternalExtensionProviderImpl> provider_; 110 scoped_ptr<ExternalProviderImpl> provider_;
110 111
111 DISALLOW_COPY_AND_ASSIGN(MockExternalPolicyExtensionProviderVisitor); 112 DISALLOW_COPY_AND_ASSIGN(MockExternalPolicyProviderVisitor);
112 }; 113 };
113 114
114 TEST_F(ExternalPolicyExtensionProviderTest, PolicyIsParsed) { 115 TEST_F(ExternalPolicyProviderTest, PolicyIsParsed) {
115 ListValue forced_extensions; 116 ListValue forced_extensions;
116 forced_extensions.Append(Value::CreateStringValue( 117 forced_extensions.Append(Value::CreateStringValue(
117 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;http://www.example.com/crx?a=5;b=6")); 118 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;http://www.example.com/crx?a=5;b=6"));
118 forced_extensions.Append(Value::CreateStringValue( 119 forced_extensions.Append(Value::CreateStringValue(
119 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;" 120 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;"
120 "https://clients2.google.com/service/update2/crx")); 121 "https://clients2.google.com/service/update2/crx"));
121 122
122 MockExternalPolicyExtensionProviderVisitor mv; 123 MockExternalPolicyProviderVisitor mv;
123 std::set<std::string> empty; 124 std::set<std::string> empty;
124 mv.Visit(&forced_extensions, &forced_extensions, empty); 125 mv.Visit(&forced_extensions, &forced_extensions, empty);
125 } 126 }
126 127
127 TEST_F(ExternalPolicyExtensionProviderTest, InvalidPolicyIsNotParsed) { 128 TEST_F(ExternalPolicyProviderTest, InvalidPolicyIsNotParsed) {
128 ListValue forced_extensions, valid_extensions; 129 ListValue forced_extensions, valid_extensions;
129 StringValue valid( 130 StringValue valid(
130 "cccccccccccccccccccccccccccccccc;http://www.example.com/crx"); 131 "cccccccccccccccccccccccccccccccc;http://www.example.com/crx");
131 valid_extensions.Append(valid.DeepCopy()); 132 valid_extensions.Append(valid.DeepCopy());
132 forced_extensions.Append(valid.DeepCopy()); 133 forced_extensions.Append(valid.DeepCopy());
133 // Add invalid strings: 134 // Add invalid strings:
134 forced_extensions.Append(Value::CreateStringValue("")); 135 forced_extensions.Append(Value::CreateStringValue(""));
135 forced_extensions.Append(Value::CreateStringValue(";")); 136 forced_extensions.Append(Value::CreateStringValue(";"));
136 forced_extensions.Append(Value::CreateStringValue(";;")); 137 forced_extensions.Append(Value::CreateStringValue(";;"));
137 forced_extensions.Append(Value::CreateStringValue( 138 forced_extensions.Append(Value::CreateStringValue(
138 ";http://www.example.com/crx")); 139 ";http://www.example.com/crx"));
139 forced_extensions.Append(Value::CreateStringValue( 140 forced_extensions.Append(Value::CreateStringValue(
140 ";aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 141 ";aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
141 forced_extensions.Append(Value::CreateStringValue( 142 forced_extensions.Append(Value::CreateStringValue(
142 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;")); 143 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;"));
143 forced_extensions.Append(Value::CreateStringValue( 144 forced_extensions.Append(Value::CreateStringValue(
144 "http://www.example.com/crx;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 145 "http://www.example.com/crx;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
145 forced_extensions.Append(Value::CreateStringValue( 146 forced_extensions.Append(Value::CreateStringValue(
146 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;http#//www.example.com/crx")); 147 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;http#//www.example.com/crx"));
147 forced_extensions.Append(Value::CreateStringValue( 148 forced_extensions.Append(Value::CreateStringValue(
148 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); 149 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
149 forced_extensions.Append(Value::CreateStringValue( 150 forced_extensions.Append(Value::CreateStringValue(
150 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahttp#//www.example.com/crx")); 151 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahttp#//www.example.com/crx"));
151 152
152 MockExternalPolicyExtensionProviderVisitor mv; 153 MockExternalPolicyProviderVisitor mv;
153 std::set<std::string> empty; 154 std::set<std::string> empty;
154 mv.Visit(&forced_extensions, &valid_extensions, empty); 155 mv.Visit(&forced_extensions, &valid_extensions, empty);
155 } 156 }
157
158 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/external_policy_loader.cc ('k') | chrome/browser/extensions/external_pref_extension_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698