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

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

Issue 3522015: Implement new strategy for default apps (Closed)
Patch Set: all done Created 10 years, 2 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <map> 5 #include <map>
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/scoped_ptr.h" 8 #include "base/scoped_ptr.h"
9 #include "base/stl_util-inl.h" 9 #include "base/stl_util-inl.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 crx_type = ((i % 2) ? PendingExtensionInfo::EXTENSION 123 crx_type = ((i % 2) ? PendingExtensionInfo::EXTENSION
124 : PendingExtensionInfo::THEME); 124 : PendingExtensionInfo::THEME);
125 const bool kIsFromSync = true; 125 const bool kIsFromSync = true;
126 const bool kInstallSilently = true; 126 const bool kInstallSilently = true;
127 const Extension::State kInitialState = Extension::ENABLED; 127 const Extension::State kInitialState = Extension::ENABLED;
128 const bool kInitialIncognitoEnabled = false; 128 const bool kInitialIncognitoEnabled = false;
129 std::string id = GenerateId(base::StringPrintf("extension%i", i)); 129 std::string id = GenerateId(base::StringPrintf("extension%i", i));
130 (*pending_extensions)[id] = 130 (*pending_extensions)[id] =
131 PendingExtensionInfo(update_url, crx_type, kIsFromSync, 131 PendingExtensionInfo(update_url, crx_type, kIsFromSync,
132 kInstallSilently, kInitialState, 132 kInstallSilently, kInitialState,
133 kInitialIncognitoEnabled); 133 kInitialIncognitoEnabled, Extension::INTERNAL);
134 } 134 }
135 } 135 }
136 136
137 class ServiceForManifestTests : public MockService { 137 class ServiceForManifestTests : public MockService {
138 public: 138 public:
139 ServiceForManifestTests() : has_installed_extensions_(false) {} 139 ServiceForManifestTests() : has_installed_extensions_(false) {}
140 140
141 virtual ~ServiceForManifestTests() {} 141 virtual ~ServiceForManifestTests() {}
142 142
143 virtual Extension* GetExtensionById(const std::string& id, bool) { 143 virtual Extension* GetExtensionById(const std::string& id, bool) {
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 const PendingExtensionInfo::ExpectedCrxType kExpectedCrxType = 561 const PendingExtensionInfo::ExpectedCrxType kExpectedCrxType =
562 PendingExtensionInfo::EXTENSION; 562 PendingExtensionInfo::EXTENSION;
563 const bool kIsFromSync = true; 563 const bool kIsFromSync = true;
564 const bool kInstallSilently = true; 564 const bool kInstallSilently = true;
565 const Extension::State kInitialState = Extension::ENABLED; 565 const Extension::State kInitialState = Extension::ENABLED;
566 const bool kInitialIncognitoEnabled = false; 566 const bool kInitialIncognitoEnabled = false;
567 PendingExtensionMap pending_extensions; 567 PendingExtensionMap pending_extensions;
568 pending_extensions[id] = 568 pending_extensions[id] =
569 PendingExtensionInfo(test_url, kExpectedCrxType, kIsFromSync, 569 PendingExtensionInfo(test_url, kExpectedCrxType, kIsFromSync,
570 kInstallSilently, kInitialState, 570 kInstallSilently, kInitialState,
571 kInitialIncognitoEnabled); 571 kInitialIncognitoEnabled, Extension::INTERNAL);
572 service.set_pending_extensions(pending_extensions); 572 service.set_pending_extensions(pending_extensions);
573 } 573 }
574 574
575 // Call back the ExtensionUpdater with a 200 response and some test data 575 // Call back the ExtensionUpdater with a 200 response and some test data
576 std::string extension_data("whatever"); 576 std::string extension_data("whatever");
577 fetcher = factory.GetFetcherByID(ExtensionUpdater::kExtensionFetcherId); 577 fetcher = factory.GetFetcherByID(ExtensionUpdater::kExtensionFetcherId);
578 EXPECT_TRUE(fetcher != NULL && fetcher->delegate() != NULL); 578 EXPECT_TRUE(fetcher != NULL && fetcher->delegate() != NULL);
579 EXPECT_TRUE(fetcher->load_flags() == expected_load_flags); 579 EXPECT_TRUE(fetcher->load_flags() == expected_load_flags);
580 fetcher->delegate()->OnURLFetchComplete( 580 fetcher->delegate()->OnURLFetchComplete(
581 fetcher, test_url, URLRequestStatus(), 200, ResponseCookies(), 581 fetcher, test_url, URLRequestStatus(), 200, ResponseCookies(),
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 extensions[0]->set_location(Extension::INVALID); 890 extensions[0]->set_location(Extension::INVALID);
891 builder.AddExtension(*extensions[0]); 891 builder.AddExtension(*extensions[0]);
892 EXPECT_TRUE(builder.GetFetches().empty()); 892 EXPECT_TRUE(builder.GetFetches().empty());
893 STLDeleteElements(&extensions); 893 STLDeleteElements(&extensions);
894 } 894 }
895 895
896 // Extensions with invalid update URLs should be rejected. 896 // Extensions with invalid update URLs should be rejected.
897 builder.AddPendingExtension( 897 builder.AddPendingExtension(
898 GenerateId("foo"), PendingExtensionInfo(GURL("http:google.com:foo"), 898 GenerateId("foo"), PendingExtensionInfo(GURL("http:google.com:foo"),
899 PendingExtensionInfo::EXTENSION, 899 PendingExtensionInfo::EXTENSION,
900 false, false, true, false)); 900 false, false, true, false,
901 Extension::INTERNAL));
901 EXPECT_TRUE(builder.GetFetches().empty()); 902 EXPECT_TRUE(builder.GetFetches().empty());
902 903
903 // Extensions with empty IDs should be rejected. 904 // Extensions with empty IDs should be rejected.
904 builder.AddPendingExtension( 905 builder.AddPendingExtension(
905 "", PendingExtensionInfo(GURL(), PendingExtensionInfo::EXTENSION, 906 "", PendingExtensionInfo(GURL(), PendingExtensionInfo::EXTENSION,
906 false, false, true, false)); 907 false, false, true, false,
908 Extension::INTERNAL));
907 EXPECT_TRUE(builder.GetFetches().empty()); 909 EXPECT_TRUE(builder.GetFetches().empty());
908 910
909 // TODO(akalin): Test that extensions with empty update URLs 911 // TODO(akalin): Test that extensions with empty update URLs
910 // converted from user scripts are rejected. 912 // converted from user scripts are rejected.
911 913
912 // Extensions with empty update URLs should have a default one 914 // Extensions with empty update URLs should have a default one
913 // filled in. 915 // filled in.
914 builder.AddPendingExtension( 916 builder.AddPendingExtension(
915 GenerateId("foo"), PendingExtensionInfo(GURL(), 917 GenerateId("foo"), PendingExtensionInfo(GURL(),
916 PendingExtensionInfo::EXTENSION, 918 PendingExtensionInfo::EXTENSION,
917 false, false, true, false)); 919 false, false, true, false,
920 Extension::INTERNAL));
918 std::vector<ManifestFetchData*> fetches = builder.GetFetches(); 921 std::vector<ManifestFetchData*> fetches = builder.GetFetches();
919 ASSERT_EQ(1u, fetches.size()); 922 ASSERT_EQ(1u, fetches.size());
920 scoped_ptr<ManifestFetchData> fetch(fetches[0]); 923 scoped_ptr<ManifestFetchData> fetch(fetches[0]);
921 fetches.clear(); 924 fetches.clear();
922 EXPECT_FALSE(fetch->base_url().is_empty()); 925 EXPECT_FALSE(fetch->base_url().is_empty());
923 EXPECT_FALSE(fetch->full_url().is_empty()); 926 EXPECT_FALSE(fetch->full_url().is_empty());
924 } 927 }
925 928
926 // TODO(asargent) - (http://crbug.com/12780) add tests for: 929 // TODO(asargent) - (http://crbug.com/12780) add tests for:
927 // -prodversionmin (shouldn't update if browser version too old) 930 // -prodversionmin (shouldn't update if browser version too old)
928 // -manifests & updates arriving out of order / interleaved 931 // -manifests & updates arriving out of order / interleaved
929 // -Profile::GetDefaultRequestContext() returning null 932 // -Profile::GetDefaultRequestContext() returning null
930 // (should not crash, but just do check later) 933 // (should not crash, but just do check later)
931 // -malformed update url (empty, file://, has query, has a # fragment, etc.) 934 // -malformed update url (empty, file://, has query, has a # fragment, etc.)
932 // -An extension gets uninstalled while updates are in progress (so it doesn't 935 // -An extension gets uninstalled while updates are in progress (so it doesn't
933 // "come back from the dead") 936 // "come back from the dead")
934 // -An extension gets manually updated to v3 while we're downloading v2 (ie 937 // -An extension gets manually updated to v3 while we're downloading v2 (ie
935 // you don't get downgraded accidentally) 938 // you don't get downgraded accidentally)
936 // -An update manifest mentions multiple updates 939 // -An update manifest mentions multiple updates
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_updater.cc ('k') | chrome/browser/extensions/extensions_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698