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

Side by Side Diff: chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/common/extensions/extension_builder.h"
6 #include "chrome/common/extensions/extension_constants.h"
7 #include "chrome/common/extensions/extension_icon_set.h"
8 #include "chrome/common/extensions/extension_manifest_constants.h"
9 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace errors = extension_manifest_errors;
14 using extensions::DictionaryBuilder;
15 using extensions::Extension;
16 using extensions::ExtensionBuilder;
17
18 namespace {
19
20 std::vector<Extension::InstallWarning> StripMissingFlagWarning(
21 const std::vector<Extension::InstallWarning>& install_warnings) {
22 std::vector<Extension::InstallWarning> result;
23 for (size_t i = 0; i < install_warnings.size(); ++i) {
24 if (install_warnings[i].message != errors::kScriptBadgeRequiresFlag)
25 result.push_back(install_warnings[i]);
26 }
27 return result;
28 }
29
30 TEST_F(ExtensionManifestTest, ScriptBadgeBasic) {
31 scoped_refptr<Extension> extension(
32 ExtensionBuilder()
33 .SetManifest(DictionaryBuilder()
34 .Set("manifest_version", 2)
35 .Set("name", "my extension")
36 .Set("version", "1.0.0.0")
37 .Set("description",
38 "Check that a simple script_badge section parses")
39 .Set("icons", DictionaryBuilder()
40 .Set("16", "icon16.png")
41 .Set("32", "icon32.png")
42 .Set("19", "icon19.png")
43 .Set("48", "icon48.png"))
44 .Set("script_badge", DictionaryBuilder()
45 .Set("default_popup", "popup.html")))
46 .Build());
47 ASSERT_TRUE(extension.get());
48 ASSERT_TRUE(extension->script_badge_info());
49 EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()),
50 testing::ElementsAre(/*empty*/));
51
52 const ExtensionIconSet& default_icon =
53 extension->script_badge_info()->default_icon;
54 // Should have a default icon set.
55 ASSERT_FALSE(default_icon.empty());
56
57 // Verify that correct icon paths are registered in default_icon.
58 EXPECT_EQ(2u, default_icon.map().size());
59 EXPECT_EQ("icon16.png",
60 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY,
61 ExtensionIconSet::MATCH_EXACTLY));
62 EXPECT_EQ("icon32.png",
63 default_icon.Get(2 * extension_misc::EXTENSION_ICON_BITTY,
64 ExtensionIconSet::MATCH_EXACTLY));
65
66 EXPECT_EQ("my extension", extension->script_badge_info()->default_title);
67 EXPECT_FALSE(extension->script_badge_info()->default_popup_url.is_empty());
68 }
69
70 TEST_F(ExtensionManifestTest, ScriptBadgeExplicitTitleAndIconsIgnored) {
71 scoped_refptr<Extension> extension(
72 ExtensionBuilder()
73 .SetManifest(DictionaryBuilder()
74 .Set("manifest_version", 2)
75 .Set("name", "my extension")
76 .Set("version", "1.0.0.0")
77 .Set("description",
78 "Check that a simple script_badge section parses")
79 .Set("icons", DictionaryBuilder()
80 .Set("16", "icon16.png"))
81 .Set("script_badge", DictionaryBuilder()
82 .Set("default_title", "Other Extension")
83 .Set("default_icon", "malicious.png")))
84 .Build());
85 ASSERT_TRUE(extension.get());
86 ASSERT_TRUE(extension->script_badge_info());
87
88 EXPECT_THAT(StripMissingFlagWarning(extension->install_warnings()),
89 testing::ElementsAre(
90 Extension::InstallWarning(
91 Extension::InstallWarning::FORMAT_TEXT,
92 errors::kScriptBadgeTitleIgnored),
93 Extension::InstallWarning(
94 Extension::InstallWarning::FORMAT_TEXT,
95 errors::kScriptBadgeIconIgnored)));
96
97 const ExtensionIconSet& default_icon =
98 extension->script_badge_info()->default_icon;
99 ASSERT_FALSE(default_icon.empty());
100
101 EXPECT_EQ(1u, default_icon.map().size());
102 EXPECT_EQ("icon16.png",
103 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY,
104 ExtensionIconSet::MATCH_EXACTLY));
105
106 EXPECT_EQ("my extension", extension->script_badge_info()->default_title);
107 }
108
109 TEST_F(ExtensionManifestTest, ScriptBadgeIconFallsBackToPuzzlePiece) {
110 scoped_refptr<Extension> extension(
111 ExtensionBuilder()
112 .SetManifest(DictionaryBuilder()
113 .Set("manifest_version", 2)
114 .Set("name", "my extension")
115 .Set("version", "1.0.0.0")
116 .Set("description",
117 "Check that a simple script_badge section parses")
118 .Set("icons", DictionaryBuilder()
119 .Set("128", "icon128.png")))
120 .Build());
121 ASSERT_TRUE(extension.get());
122 ASSERT_TRUE(extension->script_badge_info());
123 EXPECT_THAT(extension->install_warnings(),
124 testing::ElementsAre(/*empty*/));
125
126 const ExtensionIconSet& default_icon =
127 extension->script_badge_info()->default_icon;
128 ASSERT_FALSE(default_icon.empty()) << "Should fall back to the 128px icon.";
129 EXPECT_EQ(2u, default_icon.map().size());
130 EXPECT_EQ("icon128.png",
131 default_icon.Get(extension_misc::EXTENSION_ICON_BITTY,
132 ExtensionIconSet::MATCH_EXACTLY));
133 EXPECT_EQ("icon128.png",
134 default_icon.Get(2 * extension_misc::EXTENSION_ICON_BITTY,
135 ExtensionIconSet::MATCH_EXACTLY));
136 }
137
138 } // namespace
OLDNEW
« no previous file with comments | « chrome/common/extensions/manifest_handler_helpers.cc ('k') | chrome/common/icon_with_badge_image_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698