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

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

Issue 1495403002: Observe adding external extensions via windows registry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync @tott Created 4 years, 10 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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 7
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "base/version.h" 12 #include "base/version.h"
13 #include "chrome/browser/extensions/extension_management.h" 13 #include "chrome/browser/extensions/extension_management.h"
14 #include "chrome/browser/extensions/external_policy_loader.h" 14 #include "chrome/browser/extensions/external_policy_loader.h"
15 #include "chrome/browser/extensions/external_provider_impl.h" 15 #include "chrome/browser/extensions/external_provider_impl.h"
16 #include "chrome/test/base/testing_profile.h" 16 #include "chrome/test/base/testing_profile.h"
17 #include "components/syncable_prefs/testing_pref_service_syncable.h" 17 #include "components/syncable_prefs/testing_pref_service_syncable.h"
18 #include "content/public/test/test_browser_thread.h" 18 #include "content/public/test/test_browser_thread.h"
19 #include "extensions/browser/external_install_info.h"
19 #include "extensions/browser/external_provider_interface.h" 20 #include "extensions/browser/external_provider_interface.h"
20 #include "extensions/browser/pref_names.h" 21 #include "extensions/browser/pref_names.h"
21 #include "extensions/common/extension.h" 22 #include "extensions/common/extension.h"
22 #include "extensions/common/manifest.h" 23 #include "extensions/common/manifest.h"
23 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
24 25
25 using content::BrowserThread; 26 using content::BrowserThread;
26 27
27 namespace extensions { 28 namespace extensions {
28 29
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 Manifest::EXTERNAL_POLICY_DOWNLOAD, 64 Manifest::EXTERNAL_POLICY_DOWNLOAD,
64 Extension::NO_FLAGS)); 65 Extension::NO_FLAGS));
65 66
66 // Extensions will be removed from this list as they visited, 67 // Extensions will be removed from this list as they visited,
67 // so it should be emptied by the end. 68 // so it should be emptied by the end.
68 expected_extensions_ = expected_extensions; 69 expected_extensions_ = expected_extensions;
69 provider_->VisitRegisteredExtension(); 70 provider_->VisitRegisteredExtension();
70 EXPECT_TRUE(expected_extensions_.empty()); 71 EXPECT_TRUE(expected_extensions_.empty());
71 } 72 }
72 73
73 bool OnExternalExtensionFileFound(const std::string& id, 74 bool OnExternalExtensionFileFound(
74 const Version* version, 75 const extensions::ExternalInstallInfoFile& info) override {
75 const base::FilePath& path,
76 Manifest::Location unused,
77 int unused2,
78 bool unused3,
79 bool unused4) override {
80 ADD_FAILURE() << "There should be no external extensions from files."; 76 ADD_FAILURE() << "There should be no external extensions from files.";
81 return false; 77 return false;
82 } 78 }
83 79
84 bool OnExternalExtensionUpdateUrlFound(const std::string& id, 80 bool OnExternalExtensionUpdateUrlFound(
85 const std::string& install_parameter, 81 const extensions::ExternalInstallInfoUpdateUrl& info,
86 const GURL& update_url, 82 bool is_initial_load) override {
87 Manifest::Location location,
88 int unused1,
89 bool unused2) override {
90 // Extension has the correct location. 83 // Extension has the correct location.
91 EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, location); 84 EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, info.download_location);
92 85
93 // Provider returns the correct location when asked. 86 // Provider returns the correct location when asked.
94 Manifest::Location location1; 87 Manifest::Location location1;
95 scoped_ptr<Version> version1; 88 scoped_ptr<Version> version1;
96 provider_->GetExtensionDetails(id, &location1, &version1); 89 provider_->GetExtensionDetails(info.extension_id, &location1, &version1);
97 EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, location1); 90 EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, location1);
98 EXPECT_FALSE(version1.get()); 91 EXPECT_FALSE(version1.get());
99 92
100 // Remove the extension from our list. 93 // Remove the extension from our list.
101 EXPECT_EQ(1U, expected_extensions_.erase(id)); 94 EXPECT_EQ(1U, expected_extensions_.erase(info.extension_id));
102 return true; 95 return true;
103 } 96 }
104 97
105 void OnExternalProviderReady( 98 void OnExternalProviderReady(
106 const ExternalProviderInterface* provider) override { 99 const ExternalProviderInterface* provider) override {
107 EXPECT_EQ(provider, provider_.get()); 100 EXPECT_EQ(provider, provider_.get());
108 EXPECT_TRUE(provider->IsReady()); 101 EXPECT_TRUE(provider->IsReady());
109 } 102 }
110 103
104 void OnExternalProviderUpdateComplete(
105 const ExternalProviderInterface* provider,
106 const ScopedVector<ExternalInstallInfoUpdateUrl>& update_url_extensions,
107 const ScopedVector<ExternalInstallInfoFile>& file_extensions,
108 const std::set<std::string>& removed_extensions) override {
109 ADD_FAILURE() << "Only win registry provider is expected to call this.";
110 }
111
111 private: 112 private:
112 std::set<std::string> expected_extensions_; 113 std::set<std::string> expected_extensions_;
113 114
114 scoped_ptr<TestingProfile> profile_; 115 scoped_ptr<TestingProfile> profile_;
115 116
116 scoped_ptr<ExternalProviderImpl> provider_; 117 scoped_ptr<ExternalProviderImpl> provider_;
117 118
118 DISALLOW_COPY_AND_ASSIGN(MockExternalPolicyProviderVisitor); 119 DISALLOW_COPY_AND_ASSIGN(MockExternalPolicyProviderVisitor);
119 }; 120 };
120 121
(...skipping 26 matching lines...) Expand all
147 forced_extensions.SetString("invalid", "http://www.example.com/crx"); 148 forced_extensions.SetString("invalid", "http://www.example.com/crx");
148 forced_extensions.SetString("dddddddddddddddddddddddddddddddd", 149 forced_extensions.SetString("dddddddddddddddddddddddddddddddd",
149 std::string()); 150 std::string());
150 forced_extensions.SetString("invalid", "bad"); 151 forced_extensions.SetString("invalid", "bad");
151 152
152 MockExternalPolicyProviderVisitor mv; 153 MockExternalPolicyProviderVisitor mv;
153 mv.Visit(forced_extensions, expected_extensions); 154 mv.Visit(forced_extensions, expected_extensions);
154 } 155 }
155 156
156 } // namespace extensions 157 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/external_loader.cc ('k') | chrome/browser/extensions/external_provider_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698