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 |