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

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

Issue 10905005: Change browser/page action default icon defined in manifest to support hidpi. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: disable unittest on android Created 8 years, 3 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 | Annotate | Revision Log
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_action.h"
6 #include "chrome/common/extensions/extension_builder.h"
7 #include "chrome/common/extensions/extension_error_utils.h"
8 #include "chrome/common/extensions/extension_icon_set.h"
9 #include "chrome/common/extensions/extension_manifest_constants.h"
10 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
11 #include "chrome/common/extensions/value_builder.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace errors = extension_manifest_errors;
15
16 namespace extensions {
17 namespace {
18
19 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_NoDefaultIcons) {
20 scoped_refptr<const Extension> extension =
21 ExtensionBuilder()
22 .SetManifest(DictionaryBuilder()
23 .Set("name", "No default properties")
24 .Set("version", "1.0.0")
25 .Set("manifest_version", 2)
26 .Set("browser_action", DictionaryBuilder()
27 .Set("default_title", "Title")))
28 .Build();
29
30 ASSERT_TRUE(extension.get());
31 ASSERT_TRUE(extension->browser_action());
32 EXPECT_FALSE(extension->browser_action()->default_icon());
33 }
34
35
36 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_StringDefaultIcon) {
37 scoped_refptr<const Extension> extension =
38 ExtensionBuilder()
39 .SetManifest(DictionaryBuilder()
40 .Set("name", "String default icon")
41 .Set("version", "1.0.0")
42 .Set("manifest_version", 2)
43 .Set("browser_action", DictionaryBuilder()
44 .Set("default_icon", "icon.png")))
45 .Build();
46
47 ASSERT_TRUE(extension.get());
48 ASSERT_TRUE(extension->browser_action());
49 ASSERT_TRUE(extension->browser_action()->default_icon());
50
51 const ExtensionIconSet* icons = extension->browser_action()->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());
73 ASSERT_TRUE(extension->browser_action()->default_icon());
74
75 const ExtensionIconSet* icons = extension->browser_action()->default_icon();
76
77 // 24px icon should be ignored.
78 EXPECT_EQ(2u, icons->map().size());
79 EXPECT_EQ("icon19.png", icons->Get(19, ExtensionIconSet::MATCH_EXACTLY));
80 EXPECT_EQ("icon38.png", icons->Get(38, ExtensionIconSet::MATCH_EXACTLY));
81 }
82
83 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_InvalidDefaultIcon) {
84 scoped_ptr<DictionaryValue> manifest_value = DictionaryBuilder()
85 .Set("name", "Invalid default icon")
86 .Set("version", "1.0.0")
87 .Set("manifest_version", 2)
88 .Set("browser_action", DictionaryBuilder()
89 .Set("default_icon", DictionaryBuilder()
90 .Set("19", "") // Invalid value.
91 .Set("24", "icon24.png")
92 .Set("38", "icon38.png")))
93 .Build();
94
95 string16 error = ExtensionErrorUtils::FormatErrorMessageUTF16(
96 errors::kInvalidIconPath, "19");
97 LoadAndExpectError(Manifest(manifest_value.get(), "Invalid default icon"),
98 errors::kInvalidIconPath);
99 }
100
101 } // namespace
102 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698