| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |