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

Side by Side Diff: chrome/browser/extensions/updater/extension_updater_unittest.cc

Issue 2299203004: Attempt to repair corrupt enterprise policy force-installed extensions (Closed)
Patch Set: switched to using installsource, addressed review comments Created 4 years, 3 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 "chrome/browser/extensions/updater/extension_updater.h" 5 #include "chrome/browser/extensions/updater/extension_updater.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <list> 10 #include <list>
(...skipping 2113 matching lines...) Expand 10 before | Expand all | Expand 10 after
2124 MockService service(prefs_.get()); 2124 MockService service(prefs_.get());
2125 MockExtensionDownloaderDelegate delegate; 2125 MockExtensionDownloaderDelegate delegate;
2126 std::unique_ptr<ExtensionDownloader> downloader( 2126 std::unique_ptr<ExtensionDownloader> downloader(
2127 new ExtensionDownloader(&delegate, service.request_context())); 2127 new ExtensionDownloader(&delegate, service.request_context()));
2128 EXPECT_EQ(0u, ManifestFetchersCount(downloader.get())); 2128 EXPECT_EQ(0u, ManifestFetchersCount(downloader.get()));
2129 2129
2130 // First, verify that adding valid extensions does invoke the callbacks on 2130 // First, verify that adding valid extensions does invoke the callbacks on
2131 // the delegate. 2131 // the delegate.
2132 std::string id = crx_file::id_util::GenerateId("foo"); 2132 std::string id = crx_file::id_util::GenerateId("foo");
2133 EXPECT_CALL(delegate, GetPingDataForExtension(id, _)).WillOnce(Return(false)); 2133 EXPECT_CALL(delegate, GetPingDataForExtension(id, _)).WillOnce(Return(false));
2134 EXPECT_TRUE( 2134 EXPECT_TRUE(downloader->AddPendingExtension(
2135 downloader->AddPendingExtension(id, GURL("http://example.com/update"), 2135 id, GURL("http://example.com/update"), false, 0));
2136 0));
2137 downloader->StartAllPending(NULL); 2136 downloader->StartAllPending(NULL);
2138 Mock::VerifyAndClearExpectations(&delegate); 2137 Mock::VerifyAndClearExpectations(&delegate);
2139 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get())); 2138 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get()));
2140 2139
2141 // Extensions with invalid update URLs should be rejected. 2140 // Extensions with invalid update URLs should be rejected.
2142 id = crx_file::id_util::GenerateId("foo2"); 2141 id = crx_file::id_util::GenerateId("foo2");
2143 EXPECT_FALSE( 2142 EXPECT_FALSE(downloader->AddPendingExtension(id, GURL("http:google.com:foo"),
2144 downloader->AddPendingExtension(id, GURL("http:google.com:foo"), 0)); 2143 false, 0));
2145 downloader->StartAllPending(NULL); 2144 downloader->StartAllPending(NULL);
2146 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get())); 2145 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get()));
2147 2146
2148 // Extensions with empty IDs should be rejected. 2147 // Extensions with empty IDs should be rejected.
2149 EXPECT_FALSE(downloader->AddPendingExtension(std::string(), GURL(), 0)); 2148 EXPECT_FALSE(
2149 downloader->AddPendingExtension(std::string(), GURL(), false, 0));
2150 downloader->StartAllPending(NULL); 2150 downloader->StartAllPending(NULL);
2151 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get())); 2151 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get()));
2152 2152
2153 // TODO(akalin): Test that extensions with empty update URLs 2153 // TODO(akalin): Test that extensions with empty update URLs
2154 // converted from user scripts are rejected. 2154 // converted from user scripts are rejected.
2155 2155
2156 // Reset the ExtensionDownloader so that it drops the current fetcher. 2156 // Reset the ExtensionDownloader so that it drops the current fetcher.
2157 downloader.reset( 2157 downloader.reset(
2158 new ExtensionDownloader(&delegate, service.request_context())); 2158 new ExtensionDownloader(&delegate, service.request_context()));
2159 EXPECT_EQ(0u, ManifestFetchersCount(downloader.get())); 2159 EXPECT_EQ(0u, ManifestFetchersCount(downloader.get()));
2160 2160
2161 // Extensions with empty update URLs should have a default one 2161 // Extensions with empty update URLs should have a default one
2162 // filled in. 2162 // filled in.
2163 id = crx_file::id_util::GenerateId("foo3"); 2163 id = crx_file::id_util::GenerateId("foo3");
2164 EXPECT_CALL(delegate, GetPingDataForExtension(id, _)).WillOnce(Return(false)); 2164 EXPECT_CALL(delegate, GetPingDataForExtension(id, _)).WillOnce(Return(false));
2165 EXPECT_TRUE(downloader->AddPendingExtension(id, GURL(), 0)); 2165 EXPECT_TRUE(downloader->AddPendingExtension(id, GURL(), false, 0));
2166 downloader->StartAllPending(NULL); 2166 downloader->StartAllPending(NULL);
2167 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get())); 2167 EXPECT_EQ(1u, ManifestFetchersCount(downloader.get()));
2168 2168
2169 net::TestURLFetcher* fetcher = 2169 net::TestURLFetcher* fetcher =
2170 factory.GetFetcherByID(ExtensionDownloader::kManifestFetcherId); 2170 factory.GetFetcherByID(ExtensionDownloader::kManifestFetcherId);
2171 ASSERT_TRUE(fetcher); 2171 ASSERT_TRUE(fetcher);
2172 EXPECT_FALSE(fetcher->GetOriginalURL().is_empty()); 2172 EXPECT_FALSE(fetcher->GetOriginalURL().is_empty());
2173 } 2173 }
2174 2174
2175 TEST_F(ExtensionUpdaterTest, TestStartUpdateCheckMemory) { 2175 TEST_F(ExtensionUpdaterTest, TestStartUpdateCheckMemory) {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2263 // -prodversionmin (shouldn't update if browser version too old) 2263 // -prodversionmin (shouldn't update if browser version too old)
2264 // -manifests & updates arriving out of order / interleaved 2264 // -manifests & updates arriving out of order / interleaved
2265 // -malformed update url (empty, file://, has query, has a # fragment, etc.) 2265 // -malformed update url (empty, file://, has query, has a # fragment, etc.)
2266 // -An extension gets uninstalled while updates are in progress (so it doesn't 2266 // -An extension gets uninstalled while updates are in progress (so it doesn't
2267 // "come back from the dead") 2267 // "come back from the dead")
2268 // -An extension gets manually updated to v3 while we're downloading v2 (ie 2268 // -An extension gets manually updated to v3 while we're downloading v2 (ie
2269 // you don't get downgraded accidentally) 2269 // you don't get downgraded accidentally)
2270 // -An update manifest mentions multiple updates 2270 // -An update manifest mentions multiple updates
2271 2271
2272 } // namespace extensions 2272 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/updater/extension_updater.cc ('k') | extensions/browser/updater/extension_downloader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698