| Index: chrome/browser/background/background_application_list_model_unittest.cc
|
| diff --git a/chrome/browser/background/background_application_list_model_unittest.cc b/chrome/browser/background/background_application_list_model_unittest.cc
|
| index cac265f836ad7f9f3f6a0a550adfb3ce8fd301c3..b4bc0ccbade4a645c25875e21b41872d99da0df7 100644
|
| --- a/chrome/browser/background/background_application_list_model_unittest.cc
|
| +++ b/chrome/browser/background/background_application_list_model_unittest.cc
|
| @@ -69,15 +69,11 @@ enum PushMessagingOption {
|
| };
|
|
|
| // Returns a barebones test Extension object with the specified |name|. The
|
| -// returned extension will include background permission iff
|
| -// |background_permission| is true and pushMessaging permission if requested
|
| -// by |push_messaging| value. Also the extension may have a specific id set
|
| -// to test the case when it has a pushMessaging permission but is not
|
| -// considered a background app based on a whitelist.
|
| -static scoped_refptr<Extension> CreateExtensionBase(
|
| +// returned extension will include background permission if
|
| +// |background_permission| is true.
|
| +static scoped_refptr<Extension> CreateExtension(
|
| const std::string& name,
|
| - bool background_permission,
|
| - PushMessagingOption push_messaging) {
|
| + bool background_permission) {
|
| base::DictionaryValue manifest;
|
| manifest.SetString(extensions::manifest_keys::kVersion, "1.0.0.0");
|
| manifest.SetString(extensions::manifest_keys::kName, name);
|
| @@ -86,33 +82,16 @@ static scoped_refptr<Extension> CreateExtensionBase(
|
| if (background_permission) {
|
| permissions->Append(new base::StringValue("background"));
|
| }
|
| - if (push_messaging == PUSH_MESSAGING_PERMISSION ||
|
| - push_messaging == PUSH_MESSAGING_BUT_NOT_BACKGROUND) {
|
| - permissions->Append(new base::StringValue("pushMessaging"));
|
| - }
|
|
|
| std::string error;
|
| scoped_refptr<Extension> extension;
|
|
|
| - // There is a whitelist for extensions that have pushMessaging permission but
|
| - // are not considered a background app. Create a test extension with a known
|
| - // test id if needed.
|
| - if (push_messaging == PUSH_MESSAGING_BUT_NOT_BACKGROUND) {
|
| - extension = Extension::Create(
|
| - bogus_file_pathname(name),
|
| - extensions::Manifest::INVALID_LOCATION,
|
| - manifest,
|
| - Extension::NO_FLAGS,
|
| - "aaaabbbbccccddddeeeeffffgggghhhh",
|
| - &error);
|
| - } else {
|
| - extension = Extension::Create(
|
| - bogus_file_pathname(name),
|
| - extensions::Manifest::INVALID_LOCATION,
|
| - manifest,
|
| - Extension::NO_FLAGS,
|
| - &error);
|
| - }
|
| + extension = Extension::Create(
|
| + bogus_file_pathname(name),
|
| + extensions::Manifest::INVALID_LOCATION,
|
| + manifest,
|
| + Extension::NO_FLAGS,
|
| + &error);
|
|
|
| // Cannot ASSERT_* here because that attempts an illegitimate return.
|
| // Cannot EXPECT_NE here because that assumes non-pointers unlike EXPECT_EQ
|
| @@ -120,11 +99,6 @@ static scoped_refptr<Extension> CreateExtensionBase(
|
| return extension;
|
| }
|
|
|
| -static scoped_refptr<Extension> CreateExtension(const std::string& name,
|
| - bool background_permission) {
|
| - return CreateExtensionBase(name, background_permission, NO_PUSH_MESSAGING);
|
| -}
|
| -
|
| namespace {
|
| std::string GenerateUniqueExtensionName() {
|
| static int uniqueness = 0;
|
| @@ -254,84 +228,6 @@ TEST_F(BackgroundApplicationListModelTest, MAYBE_ExplicitTest) {
|
| ASSERT_EQ(0U, model->size());
|
| }
|
|
|
| -// Verifies that pushMessaging also triggers background detection, except
|
| -// when extension is in a whitelist.
|
| -TEST_F(BackgroundApplicationListModelTest, PushMessagingTest) {
|
| - InitializeAndLoadEmptyExtensionService();
|
| - ASSERT_TRUE(service()->is_ready());
|
| - ASSERT_TRUE(registry()->enabled_extensions().is_empty());
|
| - scoped_ptr<BackgroundApplicationListModel> model(
|
| - new BackgroundApplicationListModel(profile_.get()));
|
| - ASSERT_EQ(0U, model->size());
|
| -
|
| - scoped_refptr<Extension> ext1 = CreateExtension("alpha", false);
|
| - scoped_refptr<Extension> ext2 =
|
| - CreateExtensionBase("charlie", false, PUSH_MESSAGING_BUT_NOT_BACKGROUND);
|
| - scoped_refptr<Extension> bgapp1 =
|
| - CreateExtensionBase("bravo", false, PUSH_MESSAGING_PERMISSION);
|
| - scoped_refptr<Extension> bgapp2 =
|
| - CreateExtensionBase("delta", true, PUSH_MESSAGING_PERMISSION);
|
| - scoped_refptr<Extension> bgapp3 =
|
| - CreateExtensionBase("echo", true, PUSH_MESSAGING_BUT_NOT_BACKGROUND);
|
| - ASSERT_EQ(0U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(0U, model->size());
|
| -
|
| - // Add alternating Extensions and Background Apps
|
| - ASSERT_FALSE(IsBackgroundApp(*ext1.get()));
|
| - service()->AddExtension(ext1.get());
|
| - ASSERT_EQ(1U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(0U, model->size());
|
| - ASSERT_TRUE(IsBackgroundApp(*bgapp1.get()));
|
| - service()->AddExtension(bgapp1.get());
|
| - ASSERT_EQ(2U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(1U, model->size());
|
| - ASSERT_FALSE(IsBackgroundApp(*ext2.get()));
|
| - service()->AddExtension(ext2.get());
|
| - ASSERT_EQ(3U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(1U, model->size());
|
| - ASSERT_TRUE(IsBackgroundApp(*bgapp2.get()));
|
| - service()->AddExtension(bgapp2.get());
|
| - ASSERT_EQ(4U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(2U, model->size());
|
| - // Need to remove ext2 because it uses same id as bgapp3.
|
| - ASSERT_FALSE(IsBackgroundApp(*ext2.get()));
|
| - service()->UninstallExtension(ext2->id(),
|
| - extensions::UNINSTALL_REASON_FOR_TESTING,
|
| - base::Bind(&base::DoNothing), NULL);
|
| - ASSERT_EQ(3U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(2U, model->size());
|
| - ASSERT_TRUE(IsBackgroundApp(*bgapp3.get()));
|
| - service()->AddExtension(bgapp3.get());
|
| - ASSERT_EQ(4U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(3U, model->size());
|
| -
|
| - // Remove in FIFO order.
|
| - ASSERT_FALSE(IsBackgroundApp(*ext1.get()));
|
| - service()->UninstallExtension(ext1->id(),
|
| - extensions::UNINSTALL_REASON_FOR_TESTING,
|
| - base::Bind(&base::DoNothing), NULL);
|
| - ASSERT_EQ(3U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(3U, model->size());
|
| - ASSERT_TRUE(IsBackgroundApp(*bgapp1.get()));
|
| - service()->UninstallExtension(bgapp1->id(),
|
| - extensions::UNINSTALL_REASON_FOR_TESTING,
|
| - base::Bind(&base::DoNothing), NULL);
|
| - ASSERT_EQ(2U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(2U, model->size());
|
| - ASSERT_TRUE(IsBackgroundApp(*bgapp2.get()));
|
| - service()->UninstallExtension(bgapp2->id(),
|
| - extensions::UNINSTALL_REASON_FOR_TESTING,
|
| - base::Bind(&base::DoNothing), NULL);
|
| - ASSERT_EQ(1U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(1U, model->size());
|
| - ASSERT_TRUE(IsBackgroundApp(*bgapp3.get()));
|
| - service()->UninstallExtension(bgapp3->id(),
|
| - extensions::UNINSTALL_REASON_FOR_TESTING,
|
| - base::Bind(&base::DoNothing), NULL);
|
| - ASSERT_EQ(0U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(0U, model->size());
|
| -}
|
| -
|
| // Verifies that an ephemeral app cannot trigger background mode.
|
| TEST_F(BackgroundApplicationListModelTest, EphemeralAppTest) {
|
| InitializeAndLoadEmptyExtensionService();
|
| @@ -341,36 +237,21 @@ TEST_F(BackgroundApplicationListModelTest, EphemeralAppTest) {
|
| new BackgroundApplicationListModel(profile_.get()));
|
| ASSERT_EQ(0U, model->size());
|
|
|
| - scoped_refptr<Extension> installed =
|
| - CreateExtensionBase("installed", false, PUSH_MESSAGING_PERMISSION);
|
| - scoped_refptr<Extension> ephemeral =
|
| - CreateExtensionBase("ephemeral", false, PUSH_MESSAGING_PERMISSION);
|
| scoped_refptr<Extension> background = CreateExtension("background", true);
|
|
|
| - // Installed app with push messaging permissions can trigger background mode.
|
| - ASSERT_TRUE(IsBackgroundApp(*installed.get()));
|
| - service()->AddExtension(installed.get());
|
| - ASSERT_EQ(1U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(1U, model->size());
|
| - // An ephemeral app with push messaging permissions should not trigger
|
| - // background mode.
|
| - AddEphemeralApp(ephemeral.get(), service());
|
| - ASSERT_FALSE(IsBackgroundApp(*ephemeral.get()));
|
| - ASSERT_EQ(2U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(1U, model->size());
|
| // An ephemeral app with the background permission should not trigger
|
| // background mode.
|
| AddEphemeralApp(background.get(), service());
|
| ASSERT_FALSE(IsBackgroundApp(*background.get()));
|
| - ASSERT_EQ(3U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(1U, model->size());
|
| + ASSERT_EQ(1U, registry()->enabled_extensions().size());
|
| + ASSERT_EQ(0U, model->size());
|
|
|
| // If the ephemeral app becomes promoted to an installed app, it can now
|
| // trigger background mode.
|
| - service()->PromoteEphemeralApp(ephemeral.get(), false /*from sync*/);
|
| - ASSERT_TRUE(IsBackgroundApp(*ephemeral.get()));
|
| - ASSERT_EQ(3U, registry()->enabled_extensions().size());
|
| - ASSERT_EQ(2U, model->size());
|
| + service()->PromoteEphemeralApp(background.get(), false /*from sync*/);
|
| + ASSERT_TRUE(IsBackgroundApp(*background.get()));
|
| + ASSERT_EQ(1U, registry()->enabled_extensions().size());
|
| + ASSERT_EQ(1U, model->size());
|
| }
|
|
|
| // With minimal test logic, verifies behavior with dynamic permissions.
|
|
|