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

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

Powered by Google App Engine
This is Rietveld 408576698