| 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
| 7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/background/background_mode_manager.h" | 9 #include "chrome/browser/background/background_mode_manager.h" |
| 10 #include "chrome/browser/browser_shutdown.h" | 10 #include "chrome/browser/browser_shutdown.h" |
| 11 #include "chrome/browser/extensions/extension_function_test_utils.h" | 11 #include "chrome/browser/extensions/extension_function_test_utils.h" |
| 12 #include "chrome/browser/extensions/extension_service.h" | 12 #include "chrome/browser/extensions/extension_service.h" |
| 13 #include "chrome/browser/extensions/test_extension_system.h" | 13 #include "chrome/browser/extensions/test_extension_system.h" |
| 14 #include "chrome/browser/lifetime/application_lifetime.h" | 14 #include "chrome/browser/lifetime/application_lifetime.h" |
| 15 #include "chrome/browser/profiles/profile_info_cache.h" | 15 #include "chrome/browser/profiles/profile_info_cache.h" |
| 16 #include "chrome/browser/status_icons/status_icon_menu_model.h" | 16 #include "chrome/browser/status_icons/status_icon_menu_model.h" |
| 17 #include "chrome/common/chrome_switches.h" | 17 #include "chrome/common/chrome_switches.h" |
| 18 #include "chrome/test/base/testing_browser_process.h" | 18 #include "chrome/test/base/testing_browser_process.h" |
| 19 #include "chrome/test/base/testing_profile.h" | 19 #include "chrome/test/base/testing_profile.h" |
| 20 #include "chrome/test/base/testing_profile_manager.h" | 20 #include "chrome/test/base/testing_profile_manager.h" |
| 21 #include "content/public/test/test_browser_thread_bundle.h" | 21 #include "content/public/test/test_browser_thread_bundle.h" |
| 22 #include "extensions/browser/extension_prefs.h" |
| 22 #include "extensions/browser/extension_system.h" | 23 #include "extensions/browser/extension_system.h" |
| 23 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
| 24 #include "ui/gfx/image/image.h" | 25 #include "ui/gfx/image/image.h" |
| 25 #include "ui/gfx/image/image_unittest_util.h" | 26 #include "ui/gfx/image/image_unittest_util.h" |
| 26 #include "ui/message_center/message_center.h" | 27 #include "ui/message_center/message_center.h" |
| 27 | 28 |
| 28 #if defined(OS_CHROMEOS) | 29 #if defined(OS_CHROMEOS) |
| 29 #include "chrome/browser/chromeos/login/users/user_manager.h" | 30 #include "chrome/browser/chromeos/login/users/user_manager.h" |
| 30 #include "chrome/browser/chromeos/settings/cros_settings.h" | 31 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 31 #include "chrome/browser/chromeos/settings/device_settings_service.h" | 32 #include "chrome/browser/chromeos/settings/device_settings_service.h" |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 // center during cleanup. | 262 // center during cleanup. |
| 262 message_center::MessageCenter::Shutdown(); | 263 message_center::MessageCenter::Shutdown(); |
| 263 | 264 |
| 264 // Clear the shutdown flag to isolate the remaining effect of this test. | 265 // Clear the shutdown flag to isolate the remaining effect of this test. |
| 265 browser_shutdown::SetTryingToQuit(false); | 266 browser_shutdown::SetTryingToQuit(false); |
| 266 } | 267 } |
| 267 | 268 |
| 268 protected: | 269 protected: |
| 269 scoped_ptr<SimpleTestBackgroundModeManager> manager_; | 270 scoped_ptr<SimpleTestBackgroundModeManager> manager_; |
| 270 | 271 |
| 272 void AddEphemeralApp(const extensions::Extension* extension, |
| 273 ExtensionService* service) { |
| 274 extensions::ExtensionPrefs* prefs = |
| 275 extensions::ExtensionPrefs::Get(service->profile()); |
| 276 ASSERT_TRUE(prefs); |
| 277 prefs->OnExtensionInstalled(extension, |
| 278 extensions::Extension::ENABLED, |
| 279 syncer::StringOrdinal(), |
| 280 extensions::kInstallFlagIsEphemeral, |
| 281 std::string()); |
| 282 |
| 283 service->AddExtension(extension); |
| 284 } |
| 285 |
| 271 private: | 286 private: |
| 272 // Required for extension service. | 287 // Required for extension service. |
| 273 content::TestBrowserThreadBundle thread_bundle_; | 288 content::TestBrowserThreadBundle thread_bundle_; |
| 274 | 289 |
| 275 #if defined(OS_CHROMEOS) | 290 #if defined(OS_CHROMEOS) |
| 276 // ChromeOS needs extra services to run in the following order. | 291 // ChromeOS needs extra services to run in the following order. |
| 277 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; | 292 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; |
| 278 chromeos::ScopedTestCrosSettings test_cros_settings_; | 293 chromeos::ScopedTestCrosSettings test_cros_settings_; |
| 279 chromeos::ScopedTestUserManager test_user_manager_; | 294 chromeos::ScopedTestUserManager test_user_manager_; |
| 280 #endif | 295 #endif |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 811 | 826 |
| 812 scoped_refptr<extensions::Extension> upgraded_no_bg_ext_has_bg( | 827 scoped_refptr<extensions::Extension> upgraded_no_bg_ext_has_bg( |
| 813 CreateExtension( | 828 CreateExtension( |
| 814 extensions::Manifest::COMMAND_LINE, | 829 extensions::Manifest::COMMAND_LINE, |
| 815 "{\"name\": \"Regular Extension\", " | 830 "{\"name\": \"Regular Extension\", " |
| 816 "\"version\": \"2.0\"," | 831 "\"version\": \"2.0\"," |
| 817 "\"manifest_version\": 2," | 832 "\"manifest_version\": 2," |
| 818 "\"permissions\": [\"background\"]}", | 833 "\"permissions\": [\"background\"]}", |
| 819 "ID-2")); | 834 "ID-2")); |
| 820 | 835 |
| 836 scoped_refptr<extensions::Extension> ephemeral_app( |
| 837 CreateExtension( |
| 838 extensions::Manifest::COMMAND_LINE, |
| 839 "{\"name\": \"Ephemeral App\", " |
| 840 "\"version\": \"1.0\"," |
| 841 "\"manifest_version\": 2," |
| 842 "\"permissions\": [\"pushMessaging\"]}", |
| 843 "ID-3")); |
| 844 |
| 821 static_cast<extensions::TestExtensionSystem*>( | 845 static_cast<extensions::TestExtensionSystem*>( |
| 822 extensions::ExtensionSystem::Get(profile_))->CreateExtensionService( | 846 extensions::ExtensionSystem::Get(profile_))->CreateExtensionService( |
| 823 CommandLine::ForCurrentProcess(), | 847 CommandLine::ForCurrentProcess(), |
| 824 base::FilePath(), | 848 base::FilePath(), |
| 825 false); | 849 false); |
| 826 | 850 |
| 827 ExtensionService* service = | 851 ExtensionService* service = |
| 828 extensions::ExtensionSystem::Get(profile_)->extension_service(); | 852 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 829 DCHECK(!service->is_ready()); | 853 DCHECK(!service->is_ready()); |
| 830 service->Init(); | 854 service->Init(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 843 EXPECT_FALSE(manager_->HasShownBalloon()); | 867 EXPECT_FALSE(manager_->HasShownBalloon()); |
| 844 | 868 |
| 845 // Upgrading an extension that has background should not reshow the balloon. | 869 // Upgrading an extension that has background should not reshow the balloon. |
| 846 service->AddExtension(upgraded_bg_ext); | 870 service->AddExtension(upgraded_bg_ext); |
| 847 EXPECT_FALSE(manager_->HasShownBalloon()); | 871 EXPECT_FALSE(manager_->HasShownBalloon()); |
| 848 | 872 |
| 849 // Upgrading an extension that didn't have background to one that does should | 873 // Upgrading an extension that didn't have background to one that does should |
| 850 // show the balloon. | 874 // show the balloon. |
| 851 service->AddExtension(upgraded_no_bg_ext_has_bg); | 875 service->AddExtension(upgraded_no_bg_ext_has_bg); |
| 852 EXPECT_TRUE(manager_->HasShownBalloon()); | 876 EXPECT_TRUE(manager_->HasShownBalloon()); |
| 877 |
| 878 // Installing an ephemeral app should not show the balloon. |
| 879 manager_->SetHasShownBalloon(false); |
| 880 AddEphemeralApp(ephemeral_app.get(), service); |
| 881 EXPECT_FALSE(manager_->HasShownBalloon()); |
| 882 |
| 883 // Promoting the ephemeral app to a regular installed app should now show |
| 884 // the balloon. |
| 885 service->PromoteEphemeralApp(ephemeral_app.get(), false /*from sync*/); |
| 886 EXPECT_TRUE(manager_->HasShownBalloon()); |
| 853 } | 887 } |
| OLD | NEW |