Chromium Code Reviews| Index: chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc |
| diff --git a/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc b/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc |
| index 736be658e57672309088f4767abbd57548abc22a..5e375ddfcc6b7dde106dbc6b3115d531277b0679 100644 |
| --- a/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc |
| +++ b/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc |
| @@ -2,20 +2,20 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include "chrome/common/extensions/api/extension_action/action_info.h" |
| +#include "chrome/common/extensions/api/extension_action/script_badge_handler.h" |
| #include "chrome/common/extensions/extension_builder.h" |
| #include "chrome/common/extensions/extension_constants.h" |
| #include "chrome/common/extensions/extension_icon_set.h" |
| #include "chrome/common/extensions/extension_manifest_constants.h" |
| #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
| +#include "chrome/test/base/testing_profile.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace errors = extension_manifest_errors; |
| -using extensions::DictionaryBuilder; |
| -using extensions::Extension; |
| -using extensions::ExtensionBuilder; |
| -namespace { |
| +namespace extensions { |
| std::vector<Extension::InstallWarning> StripMissingFlagWarning( |
| const std::vector<Extension::InstallWarning>& install_warnings) { |
| @@ -28,6 +28,10 @@ std::vector<Extension::InstallWarning> StripMissingFlagWarning( |
| } |
| TEST_F(ExtensionManifestTest, ScriptBadgeBasic) { |
| + // We need to make a profile so that the ProfileKeyedServices (some of which |
| + // are used in manifest-parsing) are initialized. |
|
Yoyo Zhou
2012/12/18 02:01:41
It would be preferable to just register the manife
Devlin
2012/12/18 20:42:07
File has been moved and ScriptBadgeManifestTest::S
Yoyo Zhou
2012/12/19 01:38:50
I think it's okay to make unit tests explicitly re
|
| + scoped_ptr<TestingProfile> profile(new TestingProfile()); |
| + |
| scoped_refptr<Extension> extension( |
| ExtensionBuilder() |
| .SetManifest(DictionaryBuilder() |
| @@ -45,12 +49,14 @@ TEST_F(ExtensionManifestTest, ScriptBadgeBasic) { |
| .Set("default_popup", "popup.html"))) |
| .Build()); |
| ASSERT_TRUE(extension.get()); |
| - ASSERT_TRUE(extension->script_badge_info()); |
| + const ActionInfo* script_badge_info = |
| + ScriptBadgeInfo::GetScriptBadge(extension); |
| + ASSERT_TRUE(script_badge_info); |
| EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()), |
| testing::ElementsAre(/*empty*/)); |
| const ExtensionIconSet& default_icon = |
| - extension->script_badge_info()->default_icon; |
| + script_badge_info->default_icon; |
| // Should have a default icon set. |
| ASSERT_FALSE(default_icon.empty()); |
| @@ -63,11 +69,15 @@ TEST_F(ExtensionManifestTest, ScriptBadgeBasic) { |
| default_icon.Get(2 * extension_misc::EXTENSION_ICON_BITTY, |
| ExtensionIconSet::MATCH_EXACTLY)); |
| - EXPECT_EQ("my extension", extension->script_badge_info()->default_title); |
| - EXPECT_FALSE(extension->script_badge_info()->default_popup_url.is_empty()); |
| + EXPECT_EQ("my extension", script_badge_info->default_title); |
| + EXPECT_FALSE(script_badge_info->default_popup_url.is_empty()); |
| } |
| TEST_F(ExtensionManifestTest, ScriptBadgeExplicitTitleAndIconsIgnored) { |
| + // We need to make a profile so that the ProfileKeyedServices (some of which |
| + // are used in manifest-parsing) are initialized. |
| + scoped_ptr<TestingProfile> profile(new TestingProfile()); |
| + |
| scoped_refptr<Extension> extension( |
| ExtensionBuilder() |
| .SetManifest(DictionaryBuilder() |
| @@ -83,7 +93,9 @@ TEST_F(ExtensionManifestTest, ScriptBadgeExplicitTitleAndIconsIgnored) { |
| .Set("default_icon", "malicious.png"))) |
| .Build()); |
| ASSERT_TRUE(extension.get()); |
| - ASSERT_TRUE(extension->script_badge_info()); |
| + const ActionInfo* script_badge_info = |
| + ScriptBadgeInfo::GetScriptBadge(extension); |
| + ASSERT_TRUE(script_badge_info); |
| EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()), |
| testing::ElementsAre( |
| @@ -95,7 +107,7 @@ TEST_F(ExtensionManifestTest, ScriptBadgeExplicitTitleAndIconsIgnored) { |
| errors::kScriptBadgeIconIgnored))); |
| const ExtensionIconSet& default_icon = |
| - extension->script_badge_info()->default_icon; |
| + script_badge_info->default_icon; |
| ASSERT_FALSE(default_icon.empty()); |
| EXPECT_EQ(1u, default_icon.map().size()); |
| @@ -103,10 +115,14 @@ TEST_F(ExtensionManifestTest, ScriptBadgeExplicitTitleAndIconsIgnored) { |
| default_icon.Get(extension_misc::EXTENSION_ICON_BITTY, |
| ExtensionIconSet::MATCH_EXACTLY)); |
| - EXPECT_EQ("my extension", extension->script_badge_info()->default_title); |
| + EXPECT_EQ("my extension", script_badge_info->default_title); |
| } |
| TEST_F(ExtensionManifestTest, ScriptBadgeIconFallsBackToPuzzlePiece) { |
| + // We need to make a profile so that the ProfileKeyedServices (some of which |
| + // are used in manifest-parsing) are initialized. |
| + scoped_ptr<TestingProfile> profile(new TestingProfile()); |
| + |
| scoped_refptr<Extension> extension( |
| ExtensionBuilder() |
| .SetManifest(DictionaryBuilder() |
| @@ -119,12 +135,14 @@ TEST_F(ExtensionManifestTest, ScriptBadgeIconFallsBackToPuzzlePiece) { |
| .Set("128", "icon128.png"))) |
| .Build()); |
| ASSERT_TRUE(extension.get()); |
| - ASSERT_TRUE(extension->script_badge_info()); |
| + const ActionInfo* script_badge_info = |
| + ScriptBadgeInfo::GetScriptBadge(extension); |
| + ASSERT_TRUE(script_badge_info); |
| EXPECT_THAT(extension->install_warnings(), |
| testing::ElementsAre(/*empty*/)); |
| const ExtensionIconSet& default_icon = |
| - extension->script_badge_info()->default_icon; |
| + script_badge_info->default_icon; |
| ASSERT_FALSE(default_icon.empty()) << "Should fall back to the 128px icon."; |
| EXPECT_EQ(2u, default_icon.map().size()); |
| EXPECT_EQ("icon128.png", |
| @@ -135,4 +153,4 @@ TEST_F(ExtensionManifestTest, ScriptBadgeIconFallsBackToPuzzlePiece) { |
| ExtensionIconSet::MATCH_EXACTLY)); |
| } |
| -} // namespace |
| +} // namespace extensions |