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

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: 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/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 {
Yoyo Zhou 2012/12/21 23:50:59 This should call the superclass SetUp also (even i
Devlin 2012/12/27 20:36:46 Done.
24 ManifestHandler::Register(extension_manifest_keys::kBrowserAction,
25 new BrowserActionHandler);
26 }
27 };
28
29 TEST_F(BrowserActionManifestTest,
30 BrowserActionManifestIcons_NoDefaultIcons) {
19 scoped_refptr<const Extension> extension = 31 scoped_refptr<const Extension> extension =
20 ExtensionBuilder() 32 ExtensionBuilder()
21 .SetManifest(DictionaryBuilder() 33 .SetManifest(DictionaryBuilder()
22 .Set("name", "No default properties") 34 .Set("name", "No default properties")
23 .Set("version", "1.0.0") 35 .Set("version", "1.0.0")
24 .Set("manifest_version", 2) 36 .Set("manifest_version", 2)
25 .Set("browser_action", DictionaryBuilder() 37 .Set("browser_action", DictionaryBuilder()
26 .Set("default_title", "Title"))) 38 .Set("default_title", "Title")))
27 .Build(); 39 .Build();
28 40
29 ASSERT_TRUE(extension.get()); 41 ASSERT_TRUE(extension.get());
30 ASSERT_TRUE(extension->browser_action_info()); 42 const ActionInfo* browser_action_info =
31 EXPECT_TRUE(extension->browser_action_info()->default_icon.empty()); 43 BrowserActionInfo::GetBrowserAction(extension);
44 ASSERT_TRUE(browser_action_info);
45 EXPECT_TRUE(browser_action_info->default_icon.empty());
32 } 46 }
33 47
34 48 TEST_F(BrowserActionManifestTest,
35 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_StringDefaultIcon) { 49 BrowserActionManifestIcons_StringDefaultIcon) {
36 scoped_refptr<const Extension> extension = 50 scoped_refptr<const Extension> extension =
37 ExtensionBuilder() 51 ExtensionBuilder()
38 .SetManifest(DictionaryBuilder() 52 .SetManifest(DictionaryBuilder()
39 .Set("name", "String default icon") 53 .Set("name", "String default icon")
40 .Set("version", "1.0.0") 54 .Set("version", "1.0.0")
41 .Set("manifest_version", 2) 55 .Set("manifest_version", 2)
42 .Set("browser_action", DictionaryBuilder() 56 .Set("browser_action", DictionaryBuilder()
43 .Set("default_icon", "icon.png"))) 57 .Set("default_icon", "icon.png")))
44 .Build(); 58 .Build();
45 59
46 ASSERT_TRUE(extension.get()); 60 ASSERT_TRUE(extension.get());
47 ASSERT_TRUE(extension->browser_action_info()); 61 const ActionInfo* browser_action_info =
48 ASSERT_FALSE(extension->browser_action_info()->default_icon.empty()); 62 BrowserActionInfo::GetBrowserAction(extension);
63 ASSERT_TRUE(browser_action_info);
64 ASSERT_FALSE(browser_action_info->default_icon.empty());
49 65
50 const ExtensionIconSet& icons = 66 const ExtensionIconSet& icons = browser_action_info->default_icon;
51 extension->browser_action_info()->default_icon;
52 67
53 EXPECT_EQ(1u, icons.map().size()); 68 EXPECT_EQ(1u, icons.map().size());
54 EXPECT_EQ("icon.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY)); 69 EXPECT_EQ("icon.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY));
55 } 70 }
56 71
57 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_DictDefaultIcon) { 72 TEST_F(BrowserActionManifestTest,
73 BrowserActionManifestIcons_DictDefaultIcon) {
58 scoped_refptr<const Extension> extension = 74 scoped_refptr<const Extension> extension =
59 ExtensionBuilder() 75 ExtensionBuilder()
60 .SetManifest(DictionaryBuilder() 76 .SetManifest(DictionaryBuilder()
61 .Set("name", "Dictionary default icon") 77 .Set("name", "Dictionary default icon")
62 .Set("version", "1.0.0") 78 .Set("version", "1.0.0")
63 .Set("manifest_version", 2) 79 .Set("manifest_version", 2)
64 .Set("browser_action", DictionaryBuilder() 80 .Set("browser_action", DictionaryBuilder()
65 .Set("default_icon", DictionaryBuilder() 81 .Set("default_icon", DictionaryBuilder()
66 .Set("19", "icon19.png") 82 .Set("19", "icon19.png")
67 .Set("24", "icon24.png") // Should be ignored. 83 .Set("24", "icon24.png") // Should be ignored.
68 .Set("38", "icon38.png")))) 84 .Set("38", "icon38.png"))))
69 .Build(); 85 .Build();
70 86
71 ASSERT_TRUE(extension.get()); 87 ASSERT_TRUE(extension.get());
72 ASSERT_TRUE(extension->browser_action_info()); 88 const ActionInfo* browser_action_info =
73 ASSERT_FALSE(extension->browser_action_info()->default_icon.empty()); 89 BrowserActionInfo::GetBrowserAction(extension);
90 ASSERT_TRUE(browser_action_info);
91 ASSERT_FALSE(browser_action_info->default_icon.empty());
74 92
75 const ExtensionIconSet& icons = 93 const ExtensionIconSet& icons = browser_action_info->default_icon;
76 extension->browser_action_info()->default_icon;
77 94
78 // 24px icon should be ignored. 95 // 24px icon should be ignored.
79 EXPECT_EQ(2u, icons.map().size()); 96 EXPECT_EQ(2u, icons.map().size());
80 EXPECT_EQ("icon19.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY)); 97 EXPECT_EQ("icon19.png", icons.Get(19, ExtensionIconSet::MATCH_EXACTLY));
81 EXPECT_EQ("icon38.png", icons.Get(38, ExtensionIconSet::MATCH_EXACTLY)); 98 EXPECT_EQ("icon38.png", icons.Get(38, ExtensionIconSet::MATCH_EXACTLY));
82 } 99 }
83 100
84 TEST_F(ExtensionManifestTest, BrowserActionManifestIcons_InvalidDefaultIcon) { 101 TEST_F(BrowserActionManifestTest,
102 BrowserActionManifestIcons_InvalidDefaultIcon) {
85 scoped_ptr<DictionaryValue> manifest_value = DictionaryBuilder() 103 scoped_ptr<DictionaryValue> manifest_value = DictionaryBuilder()
86 .Set("name", "Invalid default icon") 104 .Set("name", "Invalid default icon")
87 .Set("version", "1.0.0") 105 .Set("version", "1.0.0")
88 .Set("manifest_version", 2) 106 .Set("manifest_version", 2)
89 .Set("browser_action", DictionaryBuilder() 107 .Set("browser_action", DictionaryBuilder()
90 .Set("default_icon", DictionaryBuilder() 108 .Set("default_icon", DictionaryBuilder()
91 .Set("19", "") // Invalid value. 109 .Set("19", "") // Invalid value.
92 .Set("24", "icon24.png") 110 .Set("24", "icon24.png")
93 .Set("38", "icon38.png"))) 111 .Set("38", "icon38.png")))
94 .Build(); 112 .Build();
95 113
96 string16 error = ErrorUtils::FormatErrorMessageUTF16( 114 string16 error = ErrorUtils::FormatErrorMessageUTF16(
97 errors::kInvalidIconPath, "19"); 115 errors::kInvalidIconPath, "19");
98 LoadAndExpectError(Manifest(manifest_value.get(), "Invalid default icon"), 116 LoadAndExpectError(Manifest(manifest_value.get(), "Invalid default icon"),
99 errors::kInvalidIconPath); 117 errors::kInvalidIconPath);
100 } 118 }
101 119
102 } // namespace 120 } // namespace
103 } // namespace extensions 121 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698