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

Side by Side Diff: chrome/browser/background/background_mode_manager_unittest.cc

Issue 383113002: Ephemeral apps should not trigger Chrome background mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Add extra test for the balloon Created 6 years, 5 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
« no previous file with comments | « chrome/browser/background/background_application_list_model_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/background/background_application_list_model_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698