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

Side by Side Diff: chrome/common/extensions/manifest_tests/extension_manifests_browseraction_unittest.cc

Issue 11644057: Move BrowserAction out of Extension (Closed) Base URL: http://git.chromium.org/chromium/src.git@dc_ungoop_extension_action
Patch Set: Combined ActionInfo wrappers Created 7 years, 12 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_icon_set.h"
7 #include "chrome/common/extensions/extension_manifest_constants.h"
8 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
9 #include "chrome/common/extensions/value_builder.h"
10 #include "extensions/common/error_utils.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace errors = extension_manifest_errors;
14
15 namespace extensions {
16 namespace {
17
18 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_NoDefaultIcons) {
19 scoped_refptr<const Extension> extension =
20 ExtensionBuilder()
21 .SetManifest(DictionaryBuilder()
22 .Set("name", "No default properties")
23 .Set("version", "1.0.0")
24 .Set("manifest_version", 2)
25 .Set("browser_action", DictionaryBuilder()
26 .Set("default_title", "Title")))
27 .Build();
28
29 ASSERT_TRUE(extension.get());
30 ASSERT_TRUE(extension->browser_action_info());
31 EXPECT_TRUE(extension->browser_action_info()->default_icon.empty());
32 }
33
34
35 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_StringDefaultIcon) {
36 scoped_refptr<const Extension> extension =
37 ExtensionBuilder()
38 .SetManifest(DictionaryBuilder()
39 .Set("name", "String default icon")
40 .Set("version", "1.0.0")
41 .Set("manifest_version", 2)
42 .Set("browser_action", DictionaryBuilder()
43 .Set("default_icon", "icon.png")))
44 .Build();
45
46 ASSERT_TRUE(extension.get());
47 ASSERT_TRUE(extension->browser_action_info());
48 ASSERT_FALSE(extension->browser_action_info()->default_icon.empty());
49
50 const ExtensionIconSet& icons =
51 extension->browser_action_info()->default_icon;
52
53 EXPECT_EQ(1u, icons.map().size());
54 EXPECT_EQ("icon.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY));
55 }
56
57 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_DictDefaultIcon) {
58 scoped_refptr<const Extension> extension =
59 ExtensionBuilder()
60 .SetManifest(DictionaryBuilder()
61 .Set("name", "Dictionary default icon")
62 .Set("version", "1.0.0")
63 .Set("manifest_version", 2)
64 .Set("browser_action", DictionaryBuilder()
65 .Set("default_icon", DictionaryBuilder()
66 .Set("19", "icon19.png")
67 .Set("24", "icon24.png") // Should be ignored.
68 .Set("38", "icon38.png"))))
69 .Build();
70
71 ASSERT_TRUE(extension.get());
72 ASSERT_TRUE(extension->browser_action_info());
73 ASSERT_FALSE(extension->browser_action_info()->default_icon.empty());
74
75 const ExtensionIconSet& icons =
76 extension->browser_action_info()->default_icon;
77
78 // 24px icon should be ignored.
79 EXPECT_EQ(2u, icons.map().size());
80 EXPECT_EQ("icon19.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY));
81 EXPECT_EQ("icon38.png", icons.Get(38, ExtensionIconSet::MATCH_EXACTLY));
82 }
83
84 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_InvalidDefaultIcon) {
85 scoped_ptr<DictionaryValue> manifest_value = DictionaryBuilder()
86 .Set("name", "Invalid default icon")
87 .Set("version", "1.0.0")
88 .Set("manifest_version", 2)
89 .Set("browser_action", DictionaryBuilder()
90 .Set("default_icon", DictionaryBuilder()
91 .Set("19", "") // Invalid value.
92 .Set("24", "icon24.png")
93 .Set("38", "icon38.png")))
94 .Build();
95
96 string16 error = ErrorUtils::FormatErrorMessageUTF16(
97 errors::kInvalidIconPath, "19");
98 LoadAndExpectError(Manifest(manifest_value.get(), "Invalid default icon"),
99 errors::kInvalidIconPath);
100 }
101
102 } // namespace
103 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698