OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/extension_service_unittest.h" | 5 #include "chrome/browser/extensions/extension_service_unittest.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 | 241 |
242 void RemoveExtension(const std::string& id) { | 242 void RemoveExtension(const std::string& id) { |
243 extension_map_.erase(id); | 243 extension_map_.erase(id); |
244 } | 244 } |
245 | 245 |
246 // ExternalProvider implementation: | 246 // ExternalProvider implementation: |
247 virtual void VisitRegisteredExtension() OVERRIDE { | 247 virtual void VisitRegisteredExtension() OVERRIDE { |
248 visit_count_++; | 248 visit_count_++; |
249 for (DataMap::const_iterator i = extension_map_.begin(); | 249 for (DataMap::const_iterator i = extension_map_.begin(); |
250 i != extension_map_.end(); ++i) { | 250 i != extension_map_.end(); ++i) { |
251 Version version(i->second.first); | 251 base::Version version(i->second.first); |
252 | 252 |
253 visitor_->OnExternalExtensionFileFound( | 253 visitor_->OnExternalExtensionFileFound( |
254 i->first, &version, i->second.second, location_, | 254 i->first, &version, i->second.second, location_, |
255 Extension::NO_FLAGS, false); | 255 Extension::NO_FLAGS, false); |
256 } | 256 } |
257 visitor_->OnExternalProviderReady(this); | 257 visitor_->OnExternalProviderReady(this); |
258 } | 258 } |
259 | 259 |
260 virtual bool HasExtension(const std::string& id) const OVERRIDE { | 260 virtual bool HasExtension(const std::string& id) const OVERRIDE { |
261 return extension_map_.find(id) != extension_map_.end(); | 261 return extension_map_.find(id) != extension_map_.end(); |
262 } | 262 } |
263 | 263 |
264 virtual bool GetExtensionDetails( | 264 virtual bool GetExtensionDetails( |
265 const std::string& id, | 265 const std::string& id, |
266 Manifest::Location* location, | 266 Manifest::Location* location, |
267 scoped_ptr<Version>* version) const OVERRIDE { | 267 scoped_ptr<base::Version>* version) const OVERRIDE { |
268 DataMap::const_iterator it = extension_map_.find(id); | 268 DataMap::const_iterator it = extension_map_.find(id); |
269 if (it == extension_map_.end()) | 269 if (it == extension_map_.end()) |
270 return false; | 270 return false; |
271 | 271 |
272 if (version) | 272 if (version) |
273 version->reset(new Version(it->second.first)); | 273 version->reset(new base::Version(it->second.first)); |
274 | 274 |
275 if (location) | 275 if (location) |
276 *location = location_; | 276 *location = location_; |
277 | 277 |
278 return true; | 278 return true; |
279 } | 279 } |
280 | 280 |
281 virtual bool IsReady() const OVERRIDE { | 281 virtual bool IsReady() const OVERRIDE { |
282 return true; | 282 return true; |
283 } | 283 } |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 | 352 |
353 // Reset our counter. | 353 // Reset our counter. |
354 ids_found_ = 0; | 354 ids_found_ = 0; |
355 // Ask the provider to look up all extensions and return them. | 355 // Ask the provider to look up all extensions and return them. |
356 provider_->VisitRegisteredExtension(); | 356 provider_->VisitRegisteredExtension(); |
357 | 357 |
358 return ids_found_; | 358 return ids_found_; |
359 } | 359 } |
360 | 360 |
361 virtual bool OnExternalExtensionFileFound(const std::string& id, | 361 virtual bool OnExternalExtensionFileFound(const std::string& id, |
362 const Version* version, | 362 const base::Version* version, |
363 const base::FilePath& path, | 363 const base::FilePath& path, |
364 Manifest::Location unused, | 364 Manifest::Location unused, |
365 int creation_flags, | 365 int creation_flags, |
366 bool mark_acknowledged) OVERRIDE { | 366 bool mark_acknowledged) OVERRIDE { |
367 EXPECT_EQ(expected_creation_flags_, creation_flags); | 367 EXPECT_EQ(expected_creation_flags_, creation_flags); |
368 | 368 |
369 ++ids_found_; | 369 ++ids_found_; |
370 base::DictionaryValue* pref; | 370 base::DictionaryValue* pref; |
371 // This tests is to make sure that the provider only notifies us of the | 371 // This tests is to make sure that the provider only notifies us of the |
372 // values we gave it. So if the id we doesn't exist in our internal | 372 // values we gave it. So if the id we doesn't exist in our internal |
373 // dictionary then something is wrong. | 373 // dictionary then something is wrong. |
374 EXPECT_TRUE(prefs_->GetDictionary(id, &pref)) | 374 EXPECT_TRUE(prefs_->GetDictionary(id, &pref)) |
375 << "Got back ID (" << id.c_str() << ") we weren't expecting"; | 375 << "Got back ID (" << id.c_str() << ") we weren't expecting"; |
376 | 376 |
377 EXPECT_TRUE(path.IsAbsolute()); | 377 EXPECT_TRUE(path.IsAbsolute()); |
378 if (!fake_base_path_.empty()) | 378 if (!fake_base_path_.empty()) |
379 EXPECT_TRUE(fake_base_path_.IsParent(path)); | 379 EXPECT_TRUE(fake_base_path_.IsParent(path)); |
380 | 380 |
381 if (pref) { | 381 if (pref) { |
382 EXPECT_TRUE(provider_->HasExtension(id)); | 382 EXPECT_TRUE(provider_->HasExtension(id)); |
383 | 383 |
384 // Ask provider if the extension we got back is registered. | 384 // Ask provider if the extension we got back is registered. |
385 Manifest::Location location = Manifest::INVALID_LOCATION; | 385 Manifest::Location location = Manifest::INVALID_LOCATION; |
386 scoped_ptr<Version> v1; | 386 scoped_ptr<base::Version> v1; |
387 base::FilePath crx_path; | 387 base::FilePath crx_path; |
388 | 388 |
389 EXPECT_TRUE(provider_->GetExtensionDetails(id, NULL, &v1)); | 389 EXPECT_TRUE(provider_->GetExtensionDetails(id, NULL, &v1)); |
390 EXPECT_STREQ(version->GetString().c_str(), v1->GetString().c_str()); | 390 EXPECT_STREQ(version->GetString().c_str(), v1->GetString().c_str()); |
391 | 391 |
392 scoped_ptr<Version> v2; | 392 scoped_ptr<base::Version> v2; |
393 EXPECT_TRUE(provider_->GetExtensionDetails(id, &location, &v2)); | 393 EXPECT_TRUE(provider_->GetExtensionDetails(id, &location, &v2)); |
394 EXPECT_STREQ(version->GetString().c_str(), v1->GetString().c_str()); | 394 EXPECT_STREQ(version->GetString().c_str(), v1->GetString().c_str()); |
395 EXPECT_STREQ(version->GetString().c_str(), v2->GetString().c_str()); | 395 EXPECT_STREQ(version->GetString().c_str(), v2->GetString().c_str()); |
396 EXPECT_EQ(Manifest::EXTERNAL_PREF, location); | 396 EXPECT_EQ(Manifest::EXTERNAL_PREF, location); |
397 | 397 |
398 // Remove it so we won't count it ever again. | 398 // Remove it so we won't count it ever again. |
399 prefs_->Remove(id, NULL); | 399 prefs_->Remove(id, NULL); |
400 } | 400 } |
401 return true; | 401 return true; |
402 } | 402 } |
403 | 403 |
404 virtual bool OnExternalExtensionUpdateUrlFound( | 404 virtual bool OnExternalExtensionUpdateUrlFound( |
405 const std::string& id, const GURL& update_url, | 405 const std::string& id, const GURL& update_url, |
406 Manifest::Location location, | 406 Manifest::Location location, |
407 int creation_flags, | 407 int creation_flags, |
408 bool mark_acknowledged) OVERRIDE { | 408 bool mark_acknowledged) OVERRIDE { |
409 ++ids_found_; | 409 ++ids_found_; |
410 base::DictionaryValue* pref; | 410 base::DictionaryValue* pref; |
411 // This tests is to make sure that the provider only notifies us of the | 411 // This tests is to make sure that the provider only notifies us of the |
412 // values we gave it. So if the id we doesn't exist in our internal | 412 // values we gave it. So if the id we doesn't exist in our internal |
413 // dictionary then something is wrong. | 413 // dictionary then something is wrong. |
414 EXPECT_TRUE(prefs_->GetDictionary(id, &pref)) | 414 EXPECT_TRUE(prefs_->GetDictionary(id, &pref)) |
415 << L"Got back ID (" << id.c_str() << ") we weren't expecting"; | 415 << L"Got back ID (" << id.c_str() << ") we weren't expecting"; |
416 EXPECT_EQ(Manifest::EXTERNAL_PREF_DOWNLOAD, location); | 416 EXPECT_EQ(Manifest::EXTERNAL_PREF_DOWNLOAD, location); |
417 | 417 |
418 if (pref) { | 418 if (pref) { |
419 EXPECT_TRUE(provider_->HasExtension(id)); | 419 EXPECT_TRUE(provider_->HasExtension(id)); |
420 | 420 |
421 // External extensions with update URLs do not have versions. | 421 // External extensions with update URLs do not have versions. |
422 scoped_ptr<Version> v1; | 422 scoped_ptr<base::Version> v1; |
423 Manifest::Location location1 = Manifest::INVALID_LOCATION; | 423 Manifest::Location location1 = Manifest::INVALID_LOCATION; |
424 EXPECT_TRUE(provider_->GetExtensionDetails(id, &location1, &v1)); | 424 EXPECT_TRUE(provider_->GetExtensionDetails(id, &location1, &v1)); |
425 EXPECT_FALSE(v1.get()); | 425 EXPECT_FALSE(v1.get()); |
426 EXPECT_EQ(Manifest::EXTERNAL_PREF_DOWNLOAD, location1); | 426 EXPECT_EQ(Manifest::EXTERNAL_PREF_DOWNLOAD, location1); |
427 | 427 |
428 // Remove it so we won't count it again. | 428 // Remove it so we won't count it again. |
429 prefs_->Remove(id, NULL); | 429 prefs_->Remove(id, NULL); |
430 } | 430 } |
431 return true; | 431 return true; |
432 } | 432 } |
(...skipping 1335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1768 // extension object. | 1768 // extension object. |
1769 TEST_F(ExtensionServiceTest, InstallingExternalExtensionWithFlags) { | 1769 TEST_F(ExtensionServiceTest, InstallingExternalExtensionWithFlags) { |
1770 const char kPrefFromBookmark[] = "from_bookmark"; | 1770 const char kPrefFromBookmark[] = "from_bookmark"; |
1771 | 1771 |
1772 InitializeEmptyExtensionService(); | 1772 InitializeEmptyExtensionService(); |
1773 | 1773 |
1774 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 1774 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
1775 set_extensions_enabled(true); | 1775 set_extensions_enabled(true); |
1776 | 1776 |
1777 // Register and install an external extension. | 1777 // Register and install an external extension. |
1778 Version version("1.0.0.0"); | 1778 base::Version version("1.0.0.0"); |
1779 content::WindowedNotificationObserver observer( | 1779 content::WindowedNotificationObserver observer( |
1780 chrome::NOTIFICATION_CRX_INSTALLER_DONE, | 1780 chrome::NOTIFICATION_CRX_INSTALLER_DONE, |
1781 content::NotificationService::AllSources()); | 1781 content::NotificationService::AllSources()); |
1782 if (service_->OnExternalExtensionFileFound( | 1782 if (service_->OnExternalExtensionFileFound( |
1783 good_crx, | 1783 good_crx, |
1784 &version, | 1784 &version, |
1785 path, | 1785 path, |
1786 Manifest::EXTERNAL_PREF, | 1786 Manifest::EXTERNAL_PREF, |
1787 Extension::FROM_BOOKMARK, | 1787 Extension::FROM_BOOKMARK, |
1788 false /* mark_acknowledged */)) { | 1788 false /* mark_acknowledged */)) { |
(...skipping 15 matching lines...) Expand all Loading... |
1804 } | 1804 } |
1805 | 1805 |
1806 // Test the handling of Extension::EXTERNAL_EXTENSION_UNINSTALLED | 1806 // Test the handling of Extension::EXTERNAL_EXTENSION_UNINSTALLED |
1807 TEST_F(ExtensionServiceTest, UninstallingExternalExtensions) { | 1807 TEST_F(ExtensionServiceTest, UninstallingExternalExtensions) { |
1808 InitializeEmptyExtensionService(); | 1808 InitializeEmptyExtensionService(); |
1809 | 1809 |
1810 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 1810 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
1811 set_extensions_enabled(true); | 1811 set_extensions_enabled(true); |
1812 | 1812 |
1813 // Install an external extension. | 1813 // Install an external extension. |
1814 Version version("1.0.0.0"); | 1814 base::Version version("1.0.0.0"); |
1815 content::WindowedNotificationObserver observer( | 1815 content::WindowedNotificationObserver observer( |
1816 chrome::NOTIFICATION_CRX_INSTALLER_DONE, | 1816 chrome::NOTIFICATION_CRX_INSTALLER_DONE, |
1817 content::NotificationService::AllSources()); | 1817 content::NotificationService::AllSources()); |
1818 if (service_->OnExternalExtensionFileFound(good_crx, &version, | 1818 if (service_->OnExternalExtensionFileFound(good_crx, &version, |
1819 path, Manifest::EXTERNAL_PREF, | 1819 path, Manifest::EXTERNAL_PREF, |
1820 Extension::NO_FLAGS, false)) { | 1820 Extension::NO_FLAGS, false)) { |
1821 observer.Wait(); | 1821 observer.Wait(); |
1822 } | 1822 } |
1823 | 1823 |
1824 ASSERT_TRUE(service_->GetExtensionById(good_crx, false)); | 1824 ASSERT_TRUE(service_->GetExtensionById(good_crx, false)); |
1825 | 1825 |
1826 // Uninstall it and check that its killbit gets set. | 1826 // Uninstall it and check that its killbit gets set. |
1827 UninstallExtension(good_crx, false); | 1827 UninstallExtension(good_crx, false); |
1828 ValidateIntegerPref(good_crx, "location", | 1828 ValidateIntegerPref(good_crx, "location", |
1829 Extension::EXTERNAL_EXTENSION_UNINSTALLED); | 1829 Extension::EXTERNAL_EXTENSION_UNINSTALLED); |
1830 | 1830 |
1831 // Try to re-install it externally. This should fail because of the killbit. | 1831 // Try to re-install it externally. This should fail because of the killbit. |
1832 service_->OnExternalExtensionFileFound(good_crx, &version, | 1832 service_->OnExternalExtensionFileFound(good_crx, &version, |
1833 path, Manifest::EXTERNAL_PREF, | 1833 path, Manifest::EXTERNAL_PREF, |
1834 Extension::NO_FLAGS, false); | 1834 Extension::NO_FLAGS, false); |
1835 base::RunLoop().RunUntilIdle(); | 1835 base::RunLoop().RunUntilIdle(); |
1836 ASSERT_TRUE(NULL == service_->GetExtensionById(good_crx, false)); | 1836 ASSERT_TRUE(NULL == service_->GetExtensionById(good_crx, false)); |
1837 ValidateIntegerPref(good_crx, "location", | 1837 ValidateIntegerPref(good_crx, "location", |
1838 Extension::EXTERNAL_EXTENSION_UNINSTALLED); | 1838 Extension::EXTERNAL_EXTENSION_UNINSTALLED); |
1839 | 1839 |
1840 version = Version("1.0.0.1"); | 1840 version = base::Version("1.0.0.1"); |
1841 // Repeat the same thing with a newer version of the extension. | 1841 // Repeat the same thing with a newer version of the extension. |
1842 path = data_dir_.AppendASCII("good2.crx"); | 1842 path = data_dir_.AppendASCII("good2.crx"); |
1843 service_->OnExternalExtensionFileFound(good_crx, &version, | 1843 service_->OnExternalExtensionFileFound(good_crx, &version, |
1844 path, Manifest::EXTERNAL_PREF, | 1844 path, Manifest::EXTERNAL_PREF, |
1845 Extension::NO_FLAGS, false); | 1845 Extension::NO_FLAGS, false); |
1846 base::RunLoop().RunUntilIdle(); | 1846 base::RunLoop().RunUntilIdle(); |
1847 ASSERT_TRUE(NULL == service_->GetExtensionById(good_crx, false)); | 1847 ASSERT_TRUE(NULL == service_->GetExtensionById(good_crx, false)); |
1848 ValidateIntegerPref(good_crx, "location", | 1848 ValidateIntegerPref(good_crx, "location", |
1849 Extension::EXTERNAL_EXTENSION_UNINSTALLED); | 1849 Extension::EXTERNAL_EXTENSION_UNINSTALLED); |
1850 | 1850 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1886 MockExtensionProvider provider(NULL, Manifest::EXTERNAL_REGISTRY); | 1886 MockExtensionProvider provider(NULL, Manifest::EXTERNAL_REGISTRY); |
1887 service_->OnExternalProviderReady(&provider); | 1887 service_->OnExternalProviderReady(&provider); |
1888 } | 1888 } |
1889 | 1889 |
1890 // Test that external extensions with incorrect IDs are not installed. | 1890 // Test that external extensions with incorrect IDs are not installed. |
1891 TEST_F(ExtensionServiceTest, FailOnWrongId) { | 1891 TEST_F(ExtensionServiceTest, FailOnWrongId) { |
1892 InitializeEmptyExtensionService(); | 1892 InitializeEmptyExtensionService(); |
1893 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 1893 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
1894 set_extensions_enabled(true); | 1894 set_extensions_enabled(true); |
1895 | 1895 |
1896 Version version("1.0.0.0"); | 1896 base::Version version("1.0.0.0"); |
1897 | 1897 |
1898 const std::string wrong_id = all_zero; | 1898 const std::string wrong_id = all_zero; |
1899 const std::string correct_id = good_crx; | 1899 const std::string correct_id = good_crx; |
1900 ASSERT_NE(correct_id, wrong_id); | 1900 ASSERT_NE(correct_id, wrong_id); |
1901 | 1901 |
1902 // Install an external extension with an ID from the external | 1902 // Install an external extension with an ID from the external |
1903 // source that is not equal to the ID in the extension manifest. | 1903 // source that is not equal to the ID in the extension manifest. |
1904 content::WindowedNotificationObserver observer( | 1904 content::WindowedNotificationObserver observer( |
1905 chrome::NOTIFICATION_CRX_INSTALLER_DONE, | 1905 chrome::NOTIFICATION_CRX_INSTALLER_DONE, |
1906 content::NotificationService::AllSources()); | 1906 content::NotificationService::AllSources()); |
(...skipping 17 matching lines...) Expand all Loading... |
1924 } | 1924 } |
1925 | 1925 |
1926 // Test that external extensions with incorrect versions are not installed. | 1926 // Test that external extensions with incorrect versions are not installed. |
1927 TEST_F(ExtensionServiceTest, FailOnWrongVersion) { | 1927 TEST_F(ExtensionServiceTest, FailOnWrongVersion) { |
1928 InitializeEmptyExtensionService(); | 1928 InitializeEmptyExtensionService(); |
1929 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 1929 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
1930 set_extensions_enabled(true); | 1930 set_extensions_enabled(true); |
1931 | 1931 |
1932 // Install an external extension with a version from the external | 1932 // Install an external extension with a version from the external |
1933 // source that is not equal to the version in the extension manifest. | 1933 // source that is not equal to the version in the extension manifest. |
1934 Version wrong_version("1.2.3.4"); | 1934 base::Version wrong_version("1.2.3.4"); |
1935 content::WindowedNotificationObserver observer( | 1935 content::WindowedNotificationObserver observer( |
1936 chrome::NOTIFICATION_CRX_INSTALLER_DONE, | 1936 chrome::NOTIFICATION_CRX_INSTALLER_DONE, |
1937 content::NotificationService::AllSources()); | 1937 content::NotificationService::AllSources()); |
1938 service_->OnExternalExtensionFileFound( | 1938 service_->OnExternalExtensionFileFound( |
1939 good_crx, &wrong_version, path, Manifest::EXTERNAL_PREF, | 1939 good_crx, &wrong_version, path, Manifest::EXTERNAL_PREF, |
1940 Extension::NO_FLAGS, false); | 1940 Extension::NO_FLAGS, false); |
1941 | 1941 |
1942 observer.Wait(); | 1942 observer.Wait(); |
1943 ASSERT_FALSE(service_->GetExtensionById(good_crx, false)); | 1943 ASSERT_FALSE(service_->GetExtensionById(good_crx, false)); |
1944 | 1944 |
1945 // Try again with the right version. Expect success. | 1945 // Try again with the right version. Expect success. |
1946 service_->pending_extension_manager()->Remove(good_crx); | 1946 service_->pending_extension_manager()->Remove(good_crx); |
1947 Version correct_version("1.0.0.0"); | 1947 base::Version correct_version("1.0.0.0"); |
1948 content::WindowedNotificationObserver observer2( | 1948 content::WindowedNotificationObserver observer2( |
1949 chrome::NOTIFICATION_CRX_INSTALLER_DONE, | 1949 chrome::NOTIFICATION_CRX_INSTALLER_DONE, |
1950 content::NotificationService::AllSources()); | 1950 content::NotificationService::AllSources()); |
1951 if (service_->OnExternalExtensionFileFound( | 1951 if (service_->OnExternalExtensionFileFound( |
1952 good_crx, &correct_version, path, Manifest::EXTERNAL_PREF, | 1952 good_crx, &correct_version, path, Manifest::EXTERNAL_PREF, |
1953 Extension::NO_FLAGS, false)) { | 1953 Extension::NO_FLAGS, false)) { |
1954 observer2.Wait(); | 1954 observer2.Wait(); |
1955 } | 1955 } |
1956 ASSERT_TRUE(service_->GetExtensionById(good_crx, false)); | 1956 ASSERT_TRUE(service_->GetExtensionById(good_crx, false)); |
1957 } | 1957 } |
(...skipping 1384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3342 | 3342 |
3343 base::FilePath path = data_dir_.AppendASCII("good.crx"); | 3343 base::FilePath path = data_dir_.AppendASCII("good.crx"); |
3344 const Extension* good = InstallCRX(path, INSTALL_NEW); | 3344 const Extension* good = InstallCRX(path, INSTALL_NEW); |
3345 ASSERT_EQ(1u, service_->extensions()->size()); | 3345 ASSERT_EQ(1u, service_->extensions()->size()); |
3346 | 3346 |
3347 EXPECT_FALSE(good->is_theme()); | 3347 EXPECT_FALSE(good->is_theme()); |
3348 | 3348 |
3349 // Use AddExtensionImpl() as AddFrom*() would balk. | 3349 // Use AddExtensionImpl() as AddFrom*() would balk. |
3350 service_->pending_extension_manager()->AddExtensionImpl( | 3350 service_->pending_extension_manager()->AddExtensionImpl( |
3351 good->id(), extensions::ManifestURL::GetUpdateURL(good), | 3351 good->id(), extensions::ManifestURL::GetUpdateURL(good), |
3352 Version(), &IsExtension, kGoodIsFromSync, | 3352 base::Version(), &IsExtension, kGoodIsFromSync, |
3353 kGoodInstallSilently, Manifest::INTERNAL, | 3353 kGoodInstallSilently, Manifest::INTERNAL, |
3354 Extension::NO_FLAGS, false); | 3354 Extension::NO_FLAGS, false); |
3355 UpdateExtension(good->id(), path, ENABLED); | 3355 UpdateExtension(good->id(), path, ENABLED); |
3356 | 3356 |
3357 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(kGoodId)); | 3357 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(kGoodId)); |
3358 } | 3358 } |
3359 | 3359 |
3360 #if defined(ENABLE_BLACKLIST_TESTS) | 3360 #if defined(ENABLE_BLACKLIST_TESTS) |
3361 // Tests blacklisting then unblacklisting extensions after the service has been | 3361 // Tests blacklisting then unblacklisting extensions after the service has been |
3362 // initialized. | 3362 // initialized. |
(...skipping 2694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6057 // Skip install when the location has the same priority as the installed | 6057 // Skip install when the location has the same priority as the installed |
6058 // location. | 6058 // location. |
6059 EXPECT_FALSE(service_->OnExternalExtensionUpdateUrlFound( | 6059 EXPECT_FALSE(service_->OnExternalExtensionUpdateUrlFound( |
6060 kGoodId, GURL(kGoodUpdateURL), Manifest::INTERNAL, | 6060 kGoodId, GURL(kGoodUpdateURL), Manifest::INTERNAL, |
6061 Extension::NO_FLAGS, false)); | 6061 Extension::NO_FLAGS, false)); |
6062 | 6062 |
6063 EXPECT_FALSE(pending->IsIdPending(kGoodId)); | 6063 EXPECT_FALSE(pending->IsIdPending(kGoodId)); |
6064 } | 6064 } |
6065 | 6065 |
6066 TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { | 6066 TEST_F(ExtensionServiceTest, InstallPriorityExternalLocalFile) { |
6067 Version older_version("0.1.0.0"); | 6067 base::Version older_version("0.1.0.0"); |
6068 Version newer_version("2.0.0.0"); | 6068 base::Version newer_version("2.0.0.0"); |
6069 | 6069 |
6070 // We don't want the extension to be installed. A path that doesn't | 6070 // We don't want the extension to be installed. A path that doesn't |
6071 // point to a valid CRX ensures this. | 6071 // point to a valid CRX ensures this. |
6072 const base::FilePath kInvalidPathToCrx = base::FilePath(); | 6072 const base::FilePath kInvalidPathToCrx = base::FilePath(); |
6073 | 6073 |
6074 const int kCreationFlags = 0; | 6074 const int kCreationFlags = 0; |
6075 const bool kDontMarkAcknowledged = false; | 6075 const bool kDontMarkAcknowledged = false; |
6076 | 6076 |
6077 InitializeEmptyExtensionService(); | 6077 InitializeEmptyExtensionService(); |
6078 | 6078 |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6236 // Because EXTERNAL_PREF is a lower priority source than EXTERNAL_REGISTRY, | 6236 // Because EXTERNAL_PREF is a lower priority source than EXTERNAL_REGISTRY, |
6237 // adding from external pref will now fail. | 6237 // adding from external pref will now fail. |
6238 EXPECT_FALSE( | 6238 EXPECT_FALSE( |
6239 service_->OnExternalExtensionFileFound( | 6239 service_->OnExternalExtensionFileFound( |
6240 kGoodId, &newer_version, kInvalidPathToCrx, | 6240 kGoodId, &newer_version, kInvalidPathToCrx, |
6241 Manifest::EXTERNAL_PREF, kCreationFlags, kDontMarkAcknowledged)); | 6241 Manifest::EXTERNAL_PREF, kCreationFlags, kDontMarkAcknowledged)); |
6242 EXPECT_TRUE(pending->IsIdPending(kGoodId)); | 6242 EXPECT_TRUE(pending->IsIdPending(kGoodId)); |
6243 } | 6243 } |
6244 | 6244 |
6245 TEST_F(ExtensionServiceTest, ConcurrentExternalLocalFile) { | 6245 TEST_F(ExtensionServiceTest, ConcurrentExternalLocalFile) { |
6246 Version kVersion123("1.2.3"); | 6246 base::Version kVersion123("1.2.3"); |
6247 Version kVersion124("1.2.4"); | 6247 base::Version kVersion124("1.2.4"); |
6248 Version kVersion125("1.2.5"); | 6248 base::Version kVersion125("1.2.5"); |
6249 const base::FilePath kInvalidPathToCrx = base::FilePath(); | 6249 const base::FilePath kInvalidPathToCrx = base::FilePath(); |
6250 const int kCreationFlags = 0; | 6250 const int kCreationFlags = 0; |
6251 const bool kDontMarkAcknowledged = false; | 6251 const bool kDontMarkAcknowledged = false; |
6252 | 6252 |
6253 InitializeEmptyExtensionService(); | 6253 InitializeEmptyExtensionService(); |
6254 | 6254 |
6255 extensions::PendingExtensionManager* pending = | 6255 extensions::PendingExtensionManager* pending = |
6256 service_->pending_extension_manager(); | 6256 service_->pending_extension_manager(); |
6257 EXPECT_FALSE(pending->IsIdPending(kGoodId)); | 6257 EXPECT_FALSE(pending->IsIdPending(kGoodId)); |
6258 | 6258 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6342 | 6342 |
6343 // Fake an external source adding a URL to fetch an extension from. | 6343 // Fake an external source adding a URL to fetch an extension from. |
6344 bool AddPendingExternalPrefUrl() { | 6344 bool AddPendingExternalPrefUrl() { |
6345 return service_->pending_extension_manager()->AddFromExternalUpdateUrl( | 6345 return service_->pending_extension_manager()->AddFromExternalUpdateUrl( |
6346 crx_id_, GURL(), Manifest::EXTERNAL_PREF_DOWNLOAD, | 6346 crx_id_, GURL(), Manifest::EXTERNAL_PREF_DOWNLOAD, |
6347 Extension::NO_FLAGS, false); | 6347 Extension::NO_FLAGS, false); |
6348 } | 6348 } |
6349 | 6349 |
6350 // Fake an external file from external_extensions.json. | 6350 // Fake an external file from external_extensions.json. |
6351 bool AddPendingExternalPrefFileInstall() { | 6351 bool AddPendingExternalPrefFileInstall() { |
6352 Version version("1.0.0.0"); | 6352 base::Version version("1.0.0.0"); |
6353 | 6353 |
6354 return service_->OnExternalExtensionFileFound( | 6354 return service_->OnExternalExtensionFileFound( |
6355 crx_id_, &version, crx_path_, Manifest::EXTERNAL_PREF, | 6355 crx_id_, &version, crx_path_, Manifest::EXTERNAL_PREF, |
6356 Extension::NO_FLAGS, false); | 6356 Extension::NO_FLAGS, false); |
6357 } | 6357 } |
6358 | 6358 |
6359 // Fake a request from sync to install an extension. | 6359 // Fake a request from sync to install an extension. |
6360 bool AddPendingSyncInstall() { | 6360 bool AddPendingSyncInstall() { |
6361 return service_->pending_extension_manager()->AddFromSync( | 6361 return service_->pending_extension_manager()->AddFromSync( |
6362 crx_id_, GURL(kGoodUpdateURL), &IsExtension, kGoodInstallSilently); | 6362 crx_id_, GURL(kGoodUpdateURL), &IsExtension, kGoodInstallSilently); |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6766 // ReconcileKnownDisabled(). | 6766 // ReconcileKnownDisabled(). |
6767 service_->EnableExtension(good2); | 6767 service_->EnableExtension(good2); |
6768 service_->ReconcileKnownDisabled(); | 6768 service_->ReconcileKnownDisabled(); |
6769 expected_extensions.insert(good2); | 6769 expected_extensions.insert(good2); |
6770 expected_disabled_extensions.erase(good2); | 6770 expected_disabled_extensions.erase(good2); |
6771 | 6771 |
6772 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6772 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
6773 EXPECT_EQ(expected_disabled_extensions, | 6773 EXPECT_EQ(expected_disabled_extensions, |
6774 service_->disabled_extensions()->GetIDs()); | 6774 service_->disabled_extensions()->GetIDs()); |
6775 } | 6775 } |
OLD | NEW |