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

Side by Side Diff: chrome/common/extensions/api/extension_action/script_badge_manifest_unittest.cc

Issue 11588004: Move ScriptBadge, ActionInfo out of Extension; preparation for BrowserAction (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Latest master for CQ Created 7 years, 11 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/common/extensions/api/extension_action/action_info.h"
6 #include "chrome/common/extensions/api/extension_action/script_badge_handler.h"
5 #include "chrome/common/extensions/extension_builder.h" 7 #include "chrome/common/extensions/extension_builder.h"
6 #include "chrome/common/extensions/extension_constants.h" 8 #include "chrome/common/extensions/extension_constants.h"
7 #include "chrome/common/extensions/extension_icon_set.h" 9 #include "chrome/common/extensions/extension_icon_set.h"
8 #include "chrome/common/extensions/extension_manifest_constants.h" 10 #include "chrome/common/extensions/extension_manifest_constants.h"
11 #include "chrome/common/extensions/manifest_handler.h"
9 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" 12 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
10 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
12 15
13 namespace errors = extension_manifest_errors; 16 namespace errors = extension_manifest_errors;
14 using extensions::DictionaryBuilder; 17
15 using extensions::Extension; 18 namespace extensions {
16 using extensions::ExtensionBuilder;
17 19
18 namespace { 20 namespace {
19 21
20 std::vector<Extension::InstallWarning> StripMissingFlagWarning( 22 std::vector<Extension::InstallWarning> StripMissingFlagWarning(
21 const std::vector<Extension::InstallWarning>& install_warnings) { 23 const std::vector<Extension::InstallWarning>& install_warnings) {
22 std::vector<Extension::InstallWarning> result; 24 std::vector<Extension::InstallWarning> result;
23 for (size_t i = 0; i < install_warnings.size(); ++i) { 25 for (size_t i = 0; i < install_warnings.size(); ++i) {
24 if (install_warnings[i].message != errors::kScriptBadgeRequiresFlag) 26 if (install_warnings[i].message != errors::kScriptBadgeRequiresFlag)
25 result.push_back(install_warnings[i]); 27 result.push_back(install_warnings[i]);
26 } 28 }
27 return result; 29 return result;
28 } 30 }
29 31
30 TEST_F(ExtensionManifestTest, ScriptBadgeBasic) { 32 class ScriptBadgeManifestTest : public ExtensionManifestTest {
33 protected:
34 virtual void SetUp() OVERRIDE {
35 ManifestHandler::Register(extension_manifest_keys::kScriptBadge,
36 new ScriptBadgeHandler);
37 }
38 };
39
40 } // namespace
41
42 TEST_F(ScriptBadgeManifestTest, ScriptBadgeBasic) {
31 scoped_refptr<Extension> extension( 43 scoped_refptr<Extension> extension(
32 ExtensionBuilder() 44 ExtensionBuilder()
33 .SetManifest(DictionaryBuilder() 45 .SetManifest(DictionaryBuilder()
34 .Set("manifest_version", 2) 46 .Set("manifest_version", 2)
35 .Set("name", "my extension") 47 .Set("name", "my extension")
36 .Set("version", "1.0.0.0") 48 .Set("version", "1.0.0.0")
37 .Set("description", 49 .Set("description",
38 "Check that a simple script_badge section parses") 50 "Check that a simple script_badge section parses")
39 .Set("icons", DictionaryBuilder() 51 .Set("icons", DictionaryBuilder()
40 .Set("16", "icon16.png") 52 .Set("16", "icon16.png")
41 .Set("32", "icon32.png") 53 .Set("32", "icon32.png")
42 .Set("19", "icon19.png") 54 .Set("19", "icon19.png")
43 .Set("48", "icon48.png")) 55 .Set("48", "icon48.png"))
44 .Set("script_badge", DictionaryBuilder() 56 .Set("script_badge", DictionaryBuilder()
45 .Set("default_popup", "popup.html"))) 57 .Set("default_popup", "popup.html")))
46 .Build()); 58 .Build());
47 ASSERT_TRUE(extension.get()); 59 ASSERT_TRUE(extension.get());
48 ASSERT_TRUE(extension->script_badge_info()); 60 const ActionInfo* script_badge_info =
61 ActionInfo::GetScriptBadgeInfo(extension);
62 ASSERT_TRUE(script_badge_info);
49 EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()), 63 EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()),
50 testing::ElementsAre(/*empty*/)); 64 testing::ElementsAre(/*empty*/));
51 65
52 const ExtensionIconSet& default_icon = 66 const ExtensionIconSet& default_icon =
53 extension->script_badge_info()->default_icon; 67 script_badge_info->default_icon;
54 // Should have a default icon set. 68 // Should have a default icon set.
55 ASSERT_FALSE(default_icon.empty()); 69 ASSERT_FALSE(default_icon.empty());
56 70
57 // Verify that correct icon paths are registered in default_icon. 71 // Verify that correct icon paths are registered in default_icon.
58 EXPECT_EQ(2u, default_icon.map().size()); 72 EXPECT_EQ(2u, default_icon.map().size());
59 EXPECT_EQ("icon16.png", 73 EXPECT_EQ("icon16.png",
60 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY, 74 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY,
61 ExtensionIconSet::MATCH_EXACTLY)); 75 ExtensionIconSet::MATCH_EXACTLY));
62 EXPECT_EQ("icon32.png", 76 EXPECT_EQ("icon32.png",
63 default_icon.Get(2 * extension_misc::EXTENSION_ICON_BITTY, 77 default_icon.Get(2 * extension_misc::EXTENSION_ICON_BITTY,
64 ExtensionIconSet::MATCH_EXACTLY)); 78 ExtensionIconSet::MATCH_EXACTLY));
65 79
66 EXPECT_EQ("my extension", extension->script_badge_info()->default_title); 80 EXPECT_EQ("my extension", script_badge_info->default_title);
67 EXPECT_FALSE(extension->script_badge_info()->default_popup_url.is_empty()); 81 EXPECT_FALSE(script_badge_info->default_popup_url.is_empty());
68 } 82 }
69 83
70 TEST_F(ExtensionManifestTest, ScriptBadgeExplicitTitleAndIconsIgnored) { 84 TEST_F(ScriptBadgeManifestTest, ScriptBadgeExplicitTitleAndIconsIgnored) {
71 scoped_refptr<Extension> extension( 85 scoped_refptr<Extension> extension(
72 ExtensionBuilder() 86 ExtensionBuilder()
73 .SetManifest(DictionaryBuilder() 87 .SetManifest(DictionaryBuilder()
74 .Set("manifest_version", 2) 88 .Set("manifest_version", 2)
75 .Set("name", "my extension") 89 .Set("name", "my extension")
76 .Set("version", "1.0.0.0") 90 .Set("version", "1.0.0.0")
77 .Set("description", 91 .Set("description",
78 "Check that a simple script_badge section parses") 92 "Check that a simple script_badge section parses")
79 .Set("icons", DictionaryBuilder() 93 .Set("icons", DictionaryBuilder()
80 .Set("16", "icon16.png")) 94 .Set("16", "icon16.png"))
81 .Set("script_badge", DictionaryBuilder() 95 .Set("script_badge", DictionaryBuilder()
82 .Set("default_title", "Other Extension") 96 .Set("default_title", "Other Extension")
83 .Set("default_icon", "malicious.png"))) 97 .Set("default_icon", "malicious.png")))
84 .Build()); 98 .Build());
85 ASSERT_TRUE(extension.get()); 99 ASSERT_TRUE(extension.get());
86 ASSERT_TRUE(extension->script_badge_info()); 100 const ActionInfo* script_badge_info =
101 ActionInfo::GetScriptBadgeInfo(extension);
102 ASSERT_TRUE(script_badge_info);
87 103
88 EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()), 104 EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()),
89 testing::ElementsAre( 105 testing::ElementsAre(
90 Extension::InstallWarning( 106 Extension::InstallWarning(
91 Extension::InstallWarning::FORMAT_TEXT, 107 Extension::InstallWarning::FORMAT_TEXT,
92 errors::kScriptBadgeTitleIgnored), 108 errors::kScriptBadgeTitleIgnored),
93 Extension::InstallWarning( 109 Extension::InstallWarning(
94 Extension::InstallWarning::FORMAT_TEXT, 110 Extension::InstallWarning::FORMAT_TEXT,
95 errors::kScriptBadgeIconIgnored))); 111 errors::kScriptBadgeIconIgnored)));
96 112
97 const ExtensionIconSet& default_icon = 113 const ExtensionIconSet& default_icon =
98 extension->script_badge_info()->default_icon; 114 script_badge_info->default_icon;
99 ASSERT_FALSE(default_icon.empty()); 115 ASSERT_FALSE(default_icon.empty());
100 116
101 EXPECT_EQ(1u, default_icon.map().size()); 117 EXPECT_EQ(1u, default_icon.map().size());
102 EXPECT_EQ("icon16.png", 118 EXPECT_EQ("icon16.png",
103 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY, 119 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY,
104 ExtensionIconSet::MATCH_EXACTLY)); 120 ExtensionIconSet::MATCH_EXACTLY));
105 121
106 EXPECT_EQ("my extension", extension->script_badge_info()->default_title); 122 EXPECT_EQ("my extension", script_badge_info->default_title);
107 } 123 }
108 124
109 TEST_F(ExtensionManifestTest, ScriptBadgeIconFallsBackToPuzzlePiece) { 125 TEST_F(ScriptBadgeManifestTest, ScriptBadgeIconFallsBackToPuzzlePiece) {
110 scoped_refptr<Extension> extension( 126 scoped_refptr<Extension> extension(
111 ExtensionBuilder() 127 ExtensionBuilder()
112 .SetManifest(DictionaryBuilder() 128 .SetManifest(DictionaryBuilder()
113 .Set("manifest_version", 2) 129 .Set("manifest_version", 2)
114 .Set("name", "my extension") 130 .Set("name", "my extension")
115 .Set("version", "1.0.0.0") 131 .Set("version", "1.0.0.0")
116 .Set("description", 132 .Set("description",
117 "Check that a simple script_badge section parses") 133 "Check that a simple script_badge section parses")
118 .Set("icons", DictionaryBuilder() 134 .Set("icons", DictionaryBuilder()
119 .Set("128", "icon128.png"))) 135 .Set("128", "icon128.png")))
120 .Build()); 136 .Build());
121 ASSERT_TRUE(extension.get()); 137 ASSERT_TRUE(extension.get());
122 ASSERT_TRUE(extension->script_badge_info()); 138 const ActionInfo* script_badge_info =
139 ActionInfo::GetScriptBadgeInfo(extension);
140 ASSERT_TRUE(script_badge_info);
123 EXPECT_THAT(extension->install_warnings(), 141 EXPECT_THAT(extension->install_warnings(),
124 testing::ElementsAre(/*empty*/)); 142 testing::ElementsAre(/*empty*/));
125 143
126 const ExtensionIconSet& default_icon = 144 const ExtensionIconSet& default_icon =
127 extension->script_badge_info()->default_icon; 145 script_badge_info->default_icon;
128 ASSERT_FALSE(default_icon.empty()) << "Should fall back to the 128px icon."; 146 ASSERT_FALSE(default_icon.empty()) << "Should fall back to the 128px icon.";
129 EXPECT_EQ(2u, default_icon.map().size()); 147 EXPECT_EQ(2u, default_icon.map().size());
130 EXPECT_EQ("icon128.png", 148 EXPECT_EQ("icon128.png",
131 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY, 149 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY,
132 ExtensionIconSet::MATCH_EXACTLY)); 150 ExtensionIconSet::MATCH_EXACTLY));
133 EXPECT_EQ("icon128.png", 151 EXPECT_EQ("icon128.png",
134 default_icon.Get(2 * extension_misc::EXTENSION_ICON_BITTY, 152 default_icon.Get(2 * extension_misc::EXTENSION_ICON_BITTY,
135 ExtensionIconSet::MATCH_EXACTLY)); 153 ExtensionIconSet::MATCH_EXACTLY));
136 } 154 }
137 155
138 } // namespace 156 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/extension_action/script_badge_handler.cc ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698