| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 21 matching lines...) Expand all Loading... |
| 32 #include "chrome/browser/extensions/extension_updater.h" | 32 #include "chrome/browser/extensions/extension_updater.h" |
| 33 #include "chrome/browser/extensions/external_extension_provider_impl.h" | 33 #include "chrome/browser/extensions/external_extension_provider_impl.h" |
| 34 #include "chrome/browser/extensions/external_extension_provider_interface.h" | 34 #include "chrome/browser/extensions/external_extension_provider_interface.h" |
| 35 #include "chrome/browser/extensions/external_pref_extension_loader.h" | 35 #include "chrome/browser/extensions/external_pref_extension_loader.h" |
| 36 #include "chrome/browser/extensions/pack_extension_job.cc" | 36 #include "chrome/browser/extensions/pack_extension_job.cc" |
| 37 #include "chrome/browser/extensions/pending_extension_info.h" | 37 #include "chrome/browser/extensions/pending_extension_info.h" |
| 38 #include "chrome/browser/extensions/pending_extension_manager.h" | 38 #include "chrome/browser/extensions/pending_extension_manager.h" |
| 39 #include "chrome/browser/prefs/browser_prefs.h" | 39 #include "chrome/browser/prefs/browser_prefs.h" |
| 40 #include "chrome/browser/prefs/pref_service_mock_builder.h" | 40 #include "chrome/browser/prefs/pref_service_mock_builder.h" |
| 41 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 41 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
| 42 #include "chrome/common/chrome_notification_types.h" |
| 42 #include "chrome/common/chrome_paths.h" | 43 #include "chrome/common/chrome_paths.h" |
| 43 #include "chrome/common/chrome_switches.h" | 44 #include "chrome/common/chrome_switches.h" |
| 44 #include "chrome/common/extensions/extension.h" | 45 #include "chrome/common/extensions/extension.h" |
| 45 #include "chrome/common/extensions/extension_constants.h" | 46 #include "chrome/common/extensions/extension_constants.h" |
| 46 #include "chrome/common/extensions/extension_resource.h" | 47 #include "chrome/common/extensions/extension_resource.h" |
| 47 #include "chrome/common/extensions/url_pattern.h" | 48 #include "chrome/common/extensions/url_pattern.h" |
| 48 #include "chrome/common/pref_names.h" | 49 #include "chrome/common/pref_names.h" |
| 49 #include "chrome/common/url_constants.h" | 50 #include "chrome/common/url_constants.h" |
| 50 #include "chrome/test/testing_profile.h" | 51 #include "chrome/test/testing_profile.h" |
| 51 #include "content/browser/appcache/chrome_appcache_service.h" | 52 #include "content/browser/appcache/chrome_appcache_service.h" |
| 52 #include "content/browser/browser_thread.h" | 53 #include "content/browser/browser_thread.h" |
| 53 #include "content/browser/file_system/browser_file_system_helper.h" | 54 #include "content/browser/file_system/browser_file_system_helper.h" |
| 54 #include "content/browser/in_process_webkit/dom_storage_context.h" | 55 #include "content/browser/in_process_webkit/dom_storage_context.h" |
| 55 #include "content/browser/in_process_webkit/webkit_context.h" | 56 #include "content/browser/in_process_webkit/webkit_context.h" |
| 56 #include "content/common/json_value_serializer.h" | 57 #include "content/common/json_value_serializer.h" |
| 57 #include "content/common/notification_registrar.h" | 58 #include "content/common/notification_registrar.h" |
| 58 #include "content/common/notification_service.h" | 59 #include "content/common/notification_service.h" |
| 59 #include "content/common/notification_type.h" | |
| 60 #include "googleurl/src/gurl.h" | 60 #include "googleurl/src/gurl.h" |
| 61 #include "net/base/cookie_monster.h" | 61 #include "net/base/cookie_monster.h" |
| 62 #include "net/base/cookie_options.h" | 62 #include "net/base/cookie_options.h" |
| 63 #include "net/url_request/url_request_context.h" | 63 #include "net/url_request/url_request_context.h" |
| 64 #include "net/url_request/url_request_context_getter.h" | 64 #include "net/url_request/url_request_context_getter.h" |
| 65 #include "testing/gtest/include/gtest/gtest.h" | 65 #include "testing/gtest/include/gtest/gtest.h" |
| 66 #include "testing/platform_test.h" | 66 #include "testing/platform_test.h" |
| 67 #include "webkit/database/database_tracker.h" | 67 #include "webkit/database/database_tracker.h" |
| 68 #include "webkit/database/database_util.h" | 68 #include "webkit/database/database_util.h" |
| 69 #include "webkit/quota/quota_manager.h" | 69 #include "webkit/quota/quota_manager.h" |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 } | 485 } |
| 486 | 486 |
| 487 void ExtensionServiceTestBase::SetUp() { | 487 void ExtensionServiceTestBase::SetUp() { |
| 488 ExtensionErrorReporter::GetInstance()->ClearErrors(); | 488 ExtensionErrorReporter::GetInstance()->ClearErrors(); |
| 489 } | 489 } |
| 490 | 490 |
| 491 class ExtensionServiceTest | 491 class ExtensionServiceTest |
| 492 : public ExtensionServiceTestBase, public NotificationObserver { | 492 : public ExtensionServiceTestBase, public NotificationObserver { |
| 493 public: | 493 public: |
| 494 ExtensionServiceTest() : installed_(NULL) { | 494 ExtensionServiceTest() : installed_(NULL) { |
| 495 registrar_.Add(this, NotificationType::EXTENSION_LOADED, | 495 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, |
| 496 NotificationService::AllSources()); | 496 NotificationService::AllSources()); |
| 497 registrar_.Add(this, NotificationType::EXTENSION_UNLOADED, | 497 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, |
| 498 NotificationService::AllSources()); | 498 NotificationService::AllSources()); |
| 499 registrar_.Add(this, NotificationType::EXTENSION_INSTALLED, | 499 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALLED, |
| 500 NotificationService::AllSources()); | 500 NotificationService::AllSources()); |
| 501 } | 501 } |
| 502 | 502 |
| 503 virtual void Observe(NotificationType type, | 503 virtual void Observe(int type, |
| 504 const NotificationSource& source, | 504 const NotificationSource& source, |
| 505 const NotificationDetails& details) { | 505 const NotificationDetails& details) { |
| 506 switch (type.value) { | 506 switch (type) { |
| 507 case NotificationType::EXTENSION_LOADED: { | 507 case chrome::NOTIFICATION_EXTENSION_LOADED: { |
| 508 const Extension* extension = Details<const Extension>(details).ptr(); | 508 const Extension* extension = Details<const Extension>(details).ptr(); |
| 509 loaded_.push_back(make_scoped_refptr(extension)); | 509 loaded_.push_back(make_scoped_refptr(extension)); |
| 510 // The tests rely on the errors being in a certain order, which can vary | 510 // The tests rely on the errors being in a certain order, which can vary |
| 511 // depending on how filesystem iteration works. | 511 // depending on how filesystem iteration works. |
| 512 std::stable_sort(loaded_.begin(), loaded_.end(), ExtensionsOrder()); | 512 std::stable_sort(loaded_.begin(), loaded_.end(), ExtensionsOrder()); |
| 513 break; | 513 break; |
| 514 } | 514 } |
| 515 | 515 |
| 516 case NotificationType::EXTENSION_UNLOADED: { | 516 case chrome::NOTIFICATION_EXTENSION_UNLOADED: { |
| 517 const Extension* e = | 517 const Extension* e = |
| 518 Details<UnloadedExtensionInfo>(details)->extension; | 518 Details<UnloadedExtensionInfo>(details)->extension; |
| 519 unloaded_id_ = e->id(); | 519 unloaded_id_ = e->id(); |
| 520 ExtensionList::iterator i = | 520 ExtensionList::iterator i = |
| 521 std::find(loaded_.begin(), loaded_.end(), e); | 521 std::find(loaded_.begin(), loaded_.end(), e); |
| 522 // TODO(erikkay) fix so this can be an assert. Right now the tests | 522 // TODO(erikkay) fix so this can be an assert. Right now the tests |
| 523 // are manually calling clear() on loaded_, so this isn't doable. | 523 // are manually calling clear() on loaded_, so this isn't doable. |
| 524 if (i == loaded_.end()) | 524 if (i == loaded_.end()) |
| 525 return; | 525 return; |
| 526 loaded_.erase(i); | 526 loaded_.erase(i); |
| 527 break; | 527 break; |
| 528 } | 528 } |
| 529 case NotificationType::EXTENSION_INSTALLED: | 529 case chrome::NOTIFICATION_EXTENSION_INSTALLED: |
| 530 installed_ = Details<const Extension>(details).ptr(); | 530 installed_ = Details<const Extension>(details).ptr(); |
| 531 break; | 531 break; |
| 532 | 532 |
| 533 default: | 533 default: |
| 534 DCHECK(false); | 534 DCHECK(false); |
| 535 } | 535 } |
| 536 } | 536 } |
| 537 | 537 |
| 538 void AddMockExternalProvider(ExternalExtensionProviderInterface* provider) { | 538 void AddMockExternalProvider(ExternalExtensionProviderInterface* provider) { |
| 539 service_->AddProviderForTesting(provider); | 539 service_->AddProviderForTesting(provider); |
| (...skipping 2647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3187 EXPECT_EQ("My name is simple.", loaded_[0]->name()); | 3187 EXPECT_EQ("My name is simple.", loaded_[0]->name()); |
| 3188 | 3188 |
| 3189 // These are untouched by re-localization. | 3189 // These are untouched by re-localization. |
| 3190 EXPECT_EQ("My name is simple.", loaded_[1]->name()); | 3190 EXPECT_EQ("My name is simple.", loaded_[1]->name()); |
| 3191 EXPECT_EQ("no l10n", loaded_[2]->name()); | 3191 EXPECT_EQ("no l10n", loaded_[2]->name()); |
| 3192 } | 3192 } |
| 3193 | 3193 |
| 3194 class ExtensionsReadyRecorder : public NotificationObserver { | 3194 class ExtensionsReadyRecorder : public NotificationObserver { |
| 3195 public: | 3195 public: |
| 3196 ExtensionsReadyRecorder() : ready_(false) { | 3196 ExtensionsReadyRecorder() : ready_(false) { |
| 3197 registrar_.Add(this, NotificationType::EXTENSIONS_READY, | 3197 registrar_.Add(this, chrome::NOTIFICATION_EXTENSIONS_READY, |
| 3198 NotificationService::AllSources()); | 3198 NotificationService::AllSources()); |
| 3199 } | 3199 } |
| 3200 | 3200 |
| 3201 void set_ready(bool value) { ready_ = value; } | 3201 void set_ready(bool value) { ready_ = value; } |
| 3202 bool ready() { return ready_; } | 3202 bool ready() { return ready_; } |
| 3203 | 3203 |
| 3204 private: | 3204 private: |
| 3205 virtual void Observe(NotificationType type, | 3205 virtual void Observe(int type, |
| 3206 const NotificationSource& source, | 3206 const NotificationSource& source, |
| 3207 const NotificationDetails& details) { | 3207 const NotificationDetails& details) { |
| 3208 switch (type.value) { | 3208 switch (type) { |
| 3209 case NotificationType::EXTENSIONS_READY: | 3209 case chrome::NOTIFICATION_EXTENSIONS_READY: |
| 3210 ready_ = true; | 3210 ready_ = true; |
| 3211 break; | 3211 break; |
| 3212 default: | 3212 default: |
| 3213 NOTREACHED(); | 3213 NOTREACHED(); |
| 3214 } | 3214 } |
| 3215 } | 3215 } |
| 3216 | 3216 |
| 3217 NotificationRegistrar registrar_; | 3217 NotificationRegistrar registrar_; |
| 3218 bool ready_; | 3218 bool ready_; |
| 3219 }; | 3219 }; |
| (...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3765 ASSERT_FALSE(AddPendingSyncInstall()); | 3765 ASSERT_FALSE(AddPendingSyncInstall()); |
| 3766 | 3766 |
| 3767 // Wait for the external source to install. | 3767 // Wait for the external source to install. |
| 3768 WaitForCrxInstall(crx_path_, true); | 3768 WaitForCrxInstall(crx_path_, true); |
| 3769 ASSERT_TRUE(IsCrxInstalled()); | 3769 ASSERT_TRUE(IsCrxInstalled()); |
| 3770 | 3770 |
| 3771 // Now that the extension is installed, sync request should fail | 3771 // Now that the extension is installed, sync request should fail |
| 3772 // because the extension is already installed. | 3772 // because the extension is already installed. |
| 3773 ASSERT_FALSE(AddPendingSyncInstall()); | 3773 ASSERT_FALSE(AddPendingSyncInstall()); |
| 3774 } | 3774 } |
| OLD | NEW |