| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "chrome/browser/extensions/active_install_data.h" | 6 #include "chrome/browser/extensions/active_install_data.h" |
| 7 #include "chrome/browser/extensions/install_tracker.h" | 7 #include "chrome/browser/extensions/install_tracker.h" |
| 8 #include "chrome/test/base/testing_profile.h" | 8 #include "chrome/test/base/testing_profile.h" |
| 9 #include "content/public/test/test_browser_thread_bundle.h" | 9 #include "content/public/test/test_browser_thread_bundle.h" |
| 10 #include "extensions/browser/extension_registry.h" | 10 #include "extensions/browser/extension_registry.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 | 54 |
| 55 ~InstallTrackerTest() override {} | 55 ~InstallTrackerTest() override {} |
| 56 | 56 |
| 57 protected: | 57 protected: |
| 58 Profile* profile() { return profile_.get(); } | 58 Profile* profile() { return profile_.get(); } |
| 59 InstallTracker* tracker() { return tracker_.get(); } | 59 InstallTracker* tracker() { return tracker_.get(); } |
| 60 | 60 |
| 61 void VerifyInstallData(const ActiveInstallData& original, | 61 void VerifyInstallData(const ActiveInstallData& original, |
| 62 const ActiveInstallData& retrieved) { | 62 const ActiveInstallData& retrieved) { |
| 63 EXPECT_EQ(original.extension_id, retrieved.extension_id); | 63 EXPECT_EQ(original.extension_id, retrieved.extension_id); |
| 64 EXPECT_EQ(original.is_ephemeral, retrieved.is_ephemeral); | |
| 65 EXPECT_EQ(original.percent_downloaded, retrieved.percent_downloaded); | 64 EXPECT_EQ(original.percent_downloaded, retrieved.percent_downloaded); |
| 66 } | 65 } |
| 67 | 66 |
| 68 content::TestBrowserThreadBundle thread_bundle_; | 67 content::TestBrowserThreadBundle thread_bundle_; |
| 69 scoped_ptr<TestingProfile> profile_; | 68 scoped_ptr<TestingProfile> profile_; |
| 70 scoped_ptr<InstallTracker> tracker_; | 69 scoped_ptr<InstallTracker> tracker_; |
| 71 }; | 70 }; |
| 72 | 71 |
| 73 // Verifies that active installs are registered and deregistered correctly. | 72 // Verifies that active installs are registered and deregistered correctly. |
| 74 TEST_F(InstallTrackerTest, AddAndRemoveActiveInstalls) { | 73 TEST_F(InstallTrackerTest, AddAndRemoveActiveInstalls) { |
| 75 ActiveInstallData install_data1(kExtensionId1); | 74 ActiveInstallData install_data1(kExtensionId1); |
| 76 install_data1.percent_downloaded = 76; | 75 install_data1.percent_downloaded = 76; |
| 77 ActiveInstallData install_data2(kExtensionId2); | 76 ActiveInstallData install_data2(kExtensionId2); |
| 78 install_data2.is_ephemeral = true; | |
| 79 | 77 |
| 80 tracker_->AddActiveInstall(install_data1); | 78 tracker_->AddActiveInstall(install_data1); |
| 81 tracker_->AddActiveInstall(install_data2); | 79 tracker_->AddActiveInstall(install_data2); |
| 82 | 80 |
| 83 const ActiveInstallData* retrieved_data1 = | 81 const ActiveInstallData* retrieved_data1 = |
| 84 tracker_->GetActiveInstall(kExtensionId1); | 82 tracker_->GetActiveInstall(kExtensionId1); |
| 85 const ActiveInstallData* retrieved_data2 = | 83 const ActiveInstallData* retrieved_data2 = |
| 86 tracker_->GetActiveInstall(kExtensionId2); | 84 tracker_->GetActiveInstall(kExtensionId2); |
| 87 const ActiveInstallData* retrieved_data3 = | 85 const ActiveInstallData* retrieved_data3 = |
| 88 tracker_->GetActiveInstall(kExtensionId3); | 86 tracker_->GetActiveInstall(kExtensionId3); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 retrieved_data = tracker_->GetActiveInstall(kExtensionId1); | 165 retrieved_data = tracker_->GetActiveInstall(kExtensionId1); |
| 168 ASSERT_TRUE(retrieved_data); | 166 ASSERT_TRUE(retrieved_data); |
| 169 EXPECT_EQ(kUpdatedDownloadProgress, retrieved_data->percent_downloaded); | 167 EXPECT_EQ(kUpdatedDownloadProgress, retrieved_data->percent_downloaded); |
| 170 } | 168 } |
| 171 | 169 |
| 172 // Verifies that OnBeginExtensionInstall() registers an active install and | 170 // Verifies that OnBeginExtensionInstall() registers an active install and |
| 173 // OnInstallFailure() removes an active install. | 171 // OnInstallFailure() removes an active install. |
| 174 TEST_F(InstallTrackerTest, ExtensionInstallFailure) { | 172 TEST_F(InstallTrackerTest, ExtensionInstallFailure) { |
| 175 InstallObserver::ExtensionInstallParams install_params( | 173 InstallObserver::ExtensionInstallParams install_params( |
| 176 kExtensionId1, std::string(), gfx::ImageSkia(), false, false); | 174 kExtensionId1, std::string(), gfx::ImageSkia(), false, false); |
| 177 install_params.is_ephemeral = true; | |
| 178 tracker_->OnBeginExtensionInstall(install_params); | 175 tracker_->OnBeginExtensionInstall(install_params); |
| 179 | 176 |
| 180 const ActiveInstallData* retrieved_data = | 177 const ActiveInstallData* retrieved_data = |
| 181 tracker_->GetActiveInstall(kExtensionId1); | 178 tracker_->GetActiveInstall(kExtensionId1); |
| 182 ASSERT_TRUE(retrieved_data); | 179 ASSERT_TRUE(retrieved_data); |
| 183 EXPECT_EQ(0, retrieved_data->percent_downloaded); | 180 EXPECT_EQ(0, retrieved_data->percent_downloaded); |
| 184 EXPECT_EQ(install_params.extension_id, retrieved_data->extension_id); | 181 EXPECT_EQ(install_params.extension_id, retrieved_data->extension_id); |
| 185 EXPECT_EQ(install_params.is_ephemeral, retrieved_data->is_ephemeral); | |
| 186 retrieved_data = NULL; | 182 retrieved_data = NULL; |
| 187 | 183 |
| 188 tracker_->OnInstallFailure(kExtensionId1); | 184 tracker_->OnInstallFailure(kExtensionId1); |
| 189 EXPECT_FALSE(tracker_->GetActiveInstall(kExtensionId1)); | 185 EXPECT_FALSE(tracker_->GetActiveInstall(kExtensionId1)); |
| 190 } | 186 } |
| 191 | 187 |
| 192 // Verifies that OnExtensionInstalled() notification removes an active install. | 188 // Verifies that OnExtensionInstalled() notification removes an active install. |
| 193 TEST_F(InstallTrackerTest, ExtensionInstalledEvent) { | 189 TEST_F(InstallTrackerTest, ExtensionInstalledEvent) { |
| 194 InstallObserver::ExtensionInstallParams install_params( | 190 InstallObserver::ExtensionInstallParams install_params( |
| 195 kExtensionId1, std::string(), gfx::ImageSkia(), false, false); | 191 kExtensionId1, std::string(), gfx::ImageSkia(), false, false); |
| 196 tracker_->OnBeginExtensionInstall(install_params); | 192 tracker_->OnBeginExtensionInstall(install_params); |
| 197 | 193 |
| 198 const ActiveInstallData* retrieved_data = | 194 const ActiveInstallData* retrieved_data = |
| 199 tracker_->GetActiveInstall(kExtensionId1); | 195 tracker_->GetActiveInstall(kExtensionId1); |
| 200 ASSERT_TRUE(retrieved_data); | 196 ASSERT_TRUE(retrieved_data); |
| 201 EXPECT_EQ(0, retrieved_data->percent_downloaded); | 197 EXPECT_EQ(0, retrieved_data->percent_downloaded); |
| 202 EXPECT_EQ(install_params.extension_id, retrieved_data->extension_id); | 198 EXPECT_EQ(install_params.extension_id, retrieved_data->extension_id); |
| 203 EXPECT_EQ(install_params.is_ephemeral, retrieved_data->is_ephemeral); | |
| 204 retrieved_data = NULL; | 199 retrieved_data = NULL; |
| 205 | 200 |
| 206 // Simulate an extension install. | 201 // Simulate an extension install. |
| 207 scoped_refptr<Extension> extension = CreateDummyExtension(kExtensionId1); | 202 scoped_refptr<Extension> extension = CreateDummyExtension(kExtensionId1); |
| 208 ASSERT_TRUE(extension.get()); | 203 ASSERT_TRUE(extension.get()); |
| 209 ExtensionRegistry* registry = ExtensionRegistry::Get(profile()); | 204 ExtensionRegistry* registry = ExtensionRegistry::Get(profile()); |
| 210 ASSERT_TRUE(registry); | 205 ASSERT_TRUE(registry); |
| 211 registry->AddEnabled(extension); | 206 registry->AddEnabled(extension); |
| 212 registry->TriggerOnInstalled(extension.get(), false); | 207 registry->TriggerOnInstalled(extension.get(), false); |
| 213 | 208 |
| 214 EXPECT_FALSE(tracker_->GetActiveInstall(kExtensionId1)); | 209 EXPECT_FALSE(tracker_->GetActiveInstall(kExtensionId1)); |
| 215 } | 210 } |
| OLD | NEW |