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

Side by Side Diff: chrome/common/extensions/api/extension_action/browser_action_manifest_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: Latest master for CQ Created 7 years, 10 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/browser_action_handler.h "
5 #include "chrome/common/extensions/extension_builder.h" 7 #include "chrome/common/extensions/extension_builder.h"
6 #include "chrome/common/extensions/extension_icon_set.h" 8 #include "chrome/common/extensions/extension_icon_set.h"
7 #include "chrome/common/extensions/extension_manifest_constants.h" 9 #include "chrome/common/extensions/extension_manifest_constants.h"
10 #include "chrome/common/extensions/manifest_handler.h"
8 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" 11 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
9 #include "chrome/common/extensions/value_builder.h" 12 #include "chrome/common/extensions/value_builder.h"
10 #include "extensions/common/error_utils.h" 13 #include "extensions/common/error_utils.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 17
15 namespace extensions { 18 namespace extensions {
16 namespace { 19 namespace {
17 20
18 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_NoDefaultIcons) { 21 class BrowserActionManifestTest : public ExtensionManifestTest {
22 protected:
23 virtual void SetUp() OVERRIDE {
24 ExtensionManifestTest::SetUp();
25 ManifestHandler::Register(extension_manifest_keys::kBrowserAction,
26 new BrowserActionHandler);
27 }
28 };
29
30 TEST_F(BrowserActionManifestTest,
31 BrowserActionManifestIcons_NoDefaultIcons) {
19 scoped_refptr<const Extension> extension = 32 scoped_refptr<const Extension> extension =
20 ExtensionBuilder() 33 ExtensionBuilder()
21 .SetManifest(DictionaryBuilder() 34 .SetManifest(DictionaryBuilder()
22 .Set("name", "No default properties") 35 .Set("name", "No default properties")
23 .Set("version", "1.0.0") 36 .Set("version", "1.0.0")
24 .Set("manifest_version", 2) 37 .Set("manifest_version", 2)
25 .Set("browser_action", DictionaryBuilder() 38 .Set("browser_action", DictionaryBuilder()
26 .Set("default_title", "Title"))) 39 .Set("default_title", "Title")))
27 .Build(); 40 .Build();
28 41
29 ASSERT_TRUE(extension.get()); 42 ASSERT_TRUE(extension.get());
30 ASSERT_TRUE(extension->browser_action_info()); 43 const ActionInfo* browser_action_info =
31 EXPECT_TRUE(extension->browser_action_info()->default_icon.empty()); 44 ActionInfo::GetBrowserActionInfo(extension);
45 ASSERT_TRUE(browser_action_info);
46 EXPECT_TRUE(browser_action_info->default_icon.empty());
32 } 47 }
33 48
34 49 TEST_F(BrowserActionManifestTest,
35 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_StringDefaultIcon) { 50 BrowserActionManifestIcons_StringDefaultIcon) {
36 scoped_refptr<const Extension> extension = 51 scoped_refptr<const Extension> extension =
37 ExtensionBuilder() 52 ExtensionBuilder()
38 .SetManifest(DictionaryBuilder() 53 .SetManifest(DictionaryBuilder()
39 .Set("name", "String default icon") 54 .Set("name", "String default icon")
40 .Set("version", "1.0.0") 55 .Set("version", "1.0.0")
41 .Set("manifest_version", 2) 56 .Set("manifest_version", 2)
42 .Set("browser_action", DictionaryBuilder() 57 .Set("browser_action", DictionaryBuilder()
43 .Set("default_icon", "icon.png"))) 58 .Set("default_icon", "icon.png")))
44 .Build(); 59 .Build();
45 60
46 ASSERT_TRUE(extension.get()); 61 ASSERT_TRUE(extension.get());
47 ASSERT_TRUE(extension->browser_action_info()); 62 const ActionInfo* browser_action_info =
48 ASSERT_FALSE(extension->browser_action_info()->default_icon.empty()); 63 ActionInfo::GetBrowserActionInfo(extension);
64 ASSERT_TRUE(browser_action_info);
65 ASSERT_FALSE(browser_action_info->default_icon.empty());
49 66
50 const ExtensionIconSet& icons = 67 const ExtensionIconSet& icons = browser_action_info->default_icon;
51 extension->browser_action_info()->default_icon;
52 68
53 EXPECT_EQ(1u, icons.map().size()); 69 EXPECT_EQ(1u, icons.map().size());
54 EXPECT_EQ("icon.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY)); 70 EXPECT_EQ("icon.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY));
55 } 71 }
56 72
57 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_DictDefaultIcon) { 73 TEST_F(BrowserActionManifestTest,
74 BrowserActionManifestIcons_DictDefaultIcon) {
58 scoped_refptr<const Extension> extension = 75 scoped_refptr<const Extension> extension =
59 ExtensionBuilder() 76 ExtensionBuilder()
60 .SetManifest(DictionaryBuilder() 77 .SetManifest(DictionaryBuilder()
61 .Set("name", "Dictionary default icon") 78 .Set("name", "Dictionary default icon")
62 .Set("version", "1.0.0") 79 .Set("version", "1.0.0")
63 .Set("manifest_version", 2) 80 .Set("manifest_version", 2)
64 .Set("browser_action", DictionaryBuilder() 81 .Set("browser_action", DictionaryBuilder()
65 .Set("default_icon", DictionaryBuilder() 82 .Set("default_icon", DictionaryBuilder()
66 .Set("19", "icon19.png") 83 .Set("19", "icon19.png")
67 .Set("24", "icon24.png") // Should be ignored. 84 .Set("24", "icon24.png") // Should be ignored.
68 .Set("38", "icon38.png")))) 85 .Set("38", "icon38.png"))))
69 .Build(); 86 .Build();
70 87
71 ASSERT_TRUE(extension.get()); 88 ASSERT_TRUE(extension.get());
72 ASSERT_TRUE(extension->browser_action_info()); 89 const ActionInfo* browser_action_info =
73 ASSERT_FALSE(extension->browser_action_info()->default_icon.empty()); 90 ActionInfo::GetBrowserActionInfo(extension);
91 ASSERT_TRUE(browser_action_info);
92 ASSERT_FALSE(browser_action_info->default_icon.empty());
74 93
75 const ExtensionIconSet& icons = 94 const ExtensionIconSet& icons = browser_action_info->default_icon;
76 extension->browser_action_info()->default_icon;
77 95
78 // 24px icon should be ignored. 96 // 24px icon should be ignored.
79 EXPECT_EQ(2u, icons.map().size()); 97 EXPECT_EQ(2u, icons.map().size());
80 EXPECT_EQ("icon19.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY)); 98 EXPECT_EQ("icon19.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY));
81 EXPECT_EQ("icon38.png", icons.Get(38, ExtensionIconSet::MATCH_EXACTLY)); 99 EXPECT_EQ("icon38.png", icons.Get(38, ExtensionIconSet::MATCH_EXACTLY));
82 } 100 }
83 101
84 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_InvalidDefaultIcon) { 102 TEST_F(BrowserActionManifestTest,
103 BrowserActionManifestIcons_InvalidDefaultIcon) {
85 scoped_ptr<DictionaryValue> manifest_value = DictionaryBuilder() 104 scoped_ptr<DictionaryValue> manifest_value = DictionaryBuilder()
86 .Set("name", "Invalid default icon") 105 .Set("name", "Invalid default icon")
87 .Set("version", "1.0.0") 106 .Set("version", "1.0.0")
88 .Set("manifest_version", 2) 107 .Set("manifest_version", 2)
89 .Set("browser_action", DictionaryBuilder() 108 .Set("browser_action", DictionaryBuilder()
90 .Set("default_icon", DictionaryBuilder() 109 .Set("default_icon", DictionaryBuilder()
91 .Set("19", "") // Invalid value. 110 .Set("19", "") // Invalid value.
92 .Set("24", "icon24.png") 111 .Set("24", "icon24.png")
93 .Set("38", "icon38.png"))) 112 .Set("38", "icon38.png")))
94 .Build(); 113 .Build();
95 114
96 string16 error = ErrorUtils::FormatErrorMessageUTF16( 115 string16 error = ErrorUtils::FormatErrorMessageUTF16(
97 errors::kInvalidIconPath, "19"); 116 errors::kInvalidIconPath, "19");
98 LoadAndExpectError(Manifest(manifest_value.get(), "Invalid default icon"), 117 LoadAndExpectError(Manifest(manifest_value.get(), "Invalid default icon"),
99 errors::kInvalidIconPath); 118 errors::kInvalidIconPath);
100 } 119 }
101 120
102 } // namespace 121 } // namespace
103 } // namespace extensions 122 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698