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

Side by Side Diff: chrome/browser/extensions/bookmark_app_helper_unittest.cc

Issue 266353006: Add generateAppForLink function in chrome.management (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 6 years, 6 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/browser/extensions/bookmark_app_helper.h" 5 #include "chrome/browser/extensions/bookmark_app_helper.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/extensions/extension_service_unittest.h" 8 #include "chrome/browser/extensions/extension_service_unittest.h"
9 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" 9 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
10 #include "chrome/test/base/testing_profile.h" 10 #include "chrome/test/base/testing_profile.h"
11 #include "content/public/browser/render_process_host.h"
12 #include "content/public/browser/web_contents.h"
13 #include "content/public/test/web_contents_tester.h"
11 #include "extensions/browser/extension_registry.h" 14 #include "extensions/browser/extension_registry.h"
12 #include "extensions/common/constants.h" 15 #include "extensions/common/constants.h"
13 #include "extensions/common/extension_icon_set.h" 16 #include "extensions/common/extension_icon_set.h"
14 #include "extensions/common/manifest_handlers/icons_handler.h" 17 #include "extensions/common/manifest_handlers/icons_handler.h"
15 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
16 #include "third_party/skia/include/core/SkBitmap.h" 19 #include "third_party/skia/include/core/SkBitmap.h"
17 #include "ui/gfx/skia_util.h" 20 #include "ui/gfx/skia_util.h"
18 21
19 namespace { 22 namespace {
20 23
21 #if !defined(OS_ANDROID) 24 #if !defined(OS_ANDROID)
22 const char kAppUrl[] = "http://www.chromium.org"; 25 const char kAppUrl[] = "http://www.chromium.org";
23 const char kAppTitle[] = "Test title"; 26 const char kAppTitle[] = "Test title";
24 const char kAlternativeAppTitle[] = "Different test title"; 27 const char kAlternativeAppTitle[] = "Different test title";
25 const char kAppDescription[] = "Test description"; 28 const char kAppDescription[] = "Test description";
26 29
30 const int kIconSizeTiny = extension_misc::EXTENSION_ICON_BITTY;
27 const int kIconSizeSmall = extension_misc::EXTENSION_ICON_SMALL; 31 const int kIconSizeSmall = extension_misc::EXTENSION_ICON_SMALL;
32 const int kIconSizeMedium = extension_misc::EXTENSION_ICON_MEDIUM;
28 const int kIconSizeLarge = extension_misc::EXTENSION_ICON_LARGE; 33 const int kIconSizeLarge = extension_misc::EXTENSION_ICON_LARGE;
29 #endif 34 #endif
30 35
31 class BookmarkAppHelperTest : public testing::Test { 36 class BookmarkAppHelperTest : public testing::Test {
32 public: 37 public:
33 BookmarkAppHelperTest() {} 38 BookmarkAppHelperTest() {}
34 virtual ~BookmarkAppHelperTest() {} 39 virtual ~BookmarkAppHelperTest() {}
35 40
36 private: 41 private:
37 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest); 42 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest);
38 }; 43 };
39 44
40 class BookmarkAppHelperExtensionServiceTest : public ExtensionServiceTestBase { 45 class BookmarkAppHelperExtensionServiceTest : public ExtensionServiceTestBase {
41 public: 46 public:
42 BookmarkAppHelperExtensionServiceTest() {} 47 BookmarkAppHelperExtensionServiceTest() {}
43 virtual ~BookmarkAppHelperExtensionServiceTest() {} 48 virtual ~BookmarkAppHelperExtensionServiceTest() {}
44 49
45 virtual void SetUp() OVERRIDE { 50 virtual void SetUp() OVERRIDE {
46 ExtensionServiceTestBase::SetUp(); 51 ExtensionServiceTestBase::SetUp();
47 InitializeEmptyExtensionService(); 52 InitializeEmptyExtensionService();
48 service_->Init(); 53 service_->Init();
49 EXPECT_EQ(0u, service_->extensions()->size()); 54 EXPECT_EQ(0u, service_->extensions()->size());
50 } 55 }
51 56
57 virtual void TearDown() OVERRIDE {
58 ExtensionServiceTestBase::TearDown();
59 for (content::RenderProcessHost::iterator i(
60 content::RenderProcessHost::AllHostsIterator());
61 !i.IsAtEnd();
62 i.Advance()) {
63 content::RenderProcessHost* host = i.GetCurrentValue();
64 if (Profile::FromBrowserContext(host->GetBrowserContext()) ==
65 profile_.get())
66 host->Cleanup();
wjywbs 2014/06/03 23:01:04 This commit was reverted because the "delete host"
67 }
68 }
69
52 private: 70 private:
53 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperExtensionServiceTest); 71 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperExtensionServiceTest);
54 }; 72 };
55 73
56 SkBitmap CreateSquareBitmapWithColor(int size, SkColor color) { 74 SkBitmap CreateSquareBitmapWithColor(int size, SkColor color) {
57 SkBitmap bitmap; 75 SkBitmap bitmap;
58 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size, size); 76 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size, size);
59 bitmap.allocPixels(); 77 bitmap.allocPixels();
60 bitmap.eraseColor(color); 78 bitmap.eraseColor(color);
61 return bitmap; 79 return bitmap;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 }; 147 };
130 148
131 // Android doesn't support extensions. 149 // Android doesn't support extensions.
132 #if !defined(OS_ANDROID) 150 #if !defined(OS_ANDROID)
133 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkApp) { 151 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkApp) {
134 WebApplicationInfo web_app_info; 152 WebApplicationInfo web_app_info;
135 web_app_info.app_url = GURL(kAppUrl); 153 web_app_info.app_url = GURL(kAppUrl);
136 web_app_info.title = base::UTF8ToUTF16(kAppTitle); 154 web_app_info.title = base::UTF8ToUTF16(kAppTitle);
137 web_app_info.description = base::UTF8ToUTF16(kAppDescription); 155 web_app_info.description = base::UTF8ToUTF16(kAppDescription);
138 156
139 TestBookmarkAppHelper helper(service_, web_app_info, NULL); 157 scoped_ptr<content::WebContents> contents(
158 content::WebContentsTester::CreateTestWebContents(profile_.get(), NULL));
159 TestBookmarkAppHelper helper(service_, web_app_info, contents.get());
140 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete, 160 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete,
141 base::Unretained(&helper))); 161 base::Unretained(&helper)));
142 162
143 std::map<GURL, std::vector<SkBitmap> > icon_map; 163 std::map<GURL, std::vector<SkBitmap> > icon_map;
144 icon_map[GURL(kAppUrl)].push_back( 164 icon_map[GURL(kAppUrl)].push_back(
145 CreateSquareBitmapWithColor(kIconSizeSmall, SK_ColorRED)); 165 CreateSquareBitmapWithColor(kIconSizeSmall, SK_ColorRED));
146 helper.CompleteIconDownload(true, icon_map); 166 helper.CompleteIconDownload(true, icon_map);
147 167
148 base::RunLoop().RunUntilIdle(); 168 base::RunLoop().RunUntilIdle();
149 EXPECT_TRUE(helper.extension()); 169 EXPECT_TRUE(helper.extension());
150 const Extension* extension = 170 const Extension* extension =
151 service_->GetInstalledExtension(helper.extension()->id()); 171 service_->GetInstalledExtension(helper.extension()->id());
152 EXPECT_TRUE(extension); 172 EXPECT_TRUE(extension);
153 EXPECT_EQ(1u, service_->extensions()->size()); 173 EXPECT_EQ(1u, service_->extensions()->size());
154 EXPECT_TRUE(extension->from_bookmark()); 174 EXPECT_TRUE(extension->from_bookmark());
155 EXPECT_EQ(kAppTitle, extension->name()); 175 EXPECT_EQ(kAppTitle, extension->name());
156 EXPECT_EQ(kAppDescription, extension->description()); 176 EXPECT_EQ(kAppDescription, extension->description());
157 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); 177 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension));
158 EXPECT_FALSE( 178 EXPECT_FALSE(
159 IconsInfo::GetIconResource( 179 IconsInfo::GetIconResource(
160 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); 180 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty());
161 } 181 }
162 182
183 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppNoContents) {
184 WebApplicationInfo web_app_info;
185 web_app_info.app_url = GURL(kAppUrl);
186 web_app_info.title = base::UTF8ToUTF16(kAppTitle);
187 web_app_info.description = base::UTF8ToUTF16(kAppDescription);
188 web_app_info.icons.push_back(
189 CreateIconInfoWithBitmap(kIconSizeTiny, SK_ColorRED));
190
191 TestBookmarkAppHelper helper(service_, web_app_info, NULL);
192 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete,
193 base::Unretained(&helper)));
194
195 base::RunLoop().RunUntilIdle();
196 EXPECT_TRUE(helper.extension());
197 const Extension* extension =
198 service_->GetInstalledExtension(helper.extension()->id());
199 EXPECT_TRUE(extension);
200 EXPECT_EQ(1u, service_->extensions()->size());
201 EXPECT_TRUE(extension->from_bookmark());
202 EXPECT_EQ(kAppTitle, extension->name());
203 EXPECT_EQ(kAppDescription, extension->description());
204 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension));
205 EXPECT_FALSE(
206 IconsInfo::GetIconResource(
207 extension, kIconSizeTiny, ExtensionIconSet::MATCH_EXACTLY).empty());
208 EXPECT_FALSE(
209 IconsInfo::GetIconResource(
210 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty());
211 EXPECT_FALSE(
212 IconsInfo::GetIconResource(extension,
213 kIconSizeSmall * 2,
214 ExtensionIconSet::MATCH_EXACTLY).empty());
215 EXPECT_FALSE(
216 IconsInfo::GetIconResource(
217 extension, kIconSizeMedium, ExtensionIconSet::MATCH_EXACTLY).empty());
218 EXPECT_FALSE(
219 IconsInfo::GetIconResource(extension,
220 kIconSizeMedium * 2,
221 ExtensionIconSet::MATCH_EXACTLY).empty());
222 }
223
163 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) { 224 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) {
164 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 225 EXPECT_EQ(0u, registry_->enabled_extensions().size());
165 WebApplicationInfo web_app_info; 226 WebApplicationInfo web_app_info;
166 web_app_info.app_url = GURL(kAppUrl); 227 web_app_info.app_url = GURL(kAppUrl);
167 web_app_info.title = base::UTF8ToUTF16(kAppTitle); 228 web_app_info.title = base::UTF8ToUTF16(kAppTitle);
168 web_app_info.description = base::UTF8ToUTF16(kAppDescription); 229 web_app_info.description = base::UTF8ToUTF16(kAppDescription);
169 web_app_info.icons.push_back( 230 web_app_info.icons.push_back(
170 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); 231 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED));
171 232
172 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); 233 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 } 332 }
272 333
273 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { 334 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) {
274 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); 335 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org")));
275 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); 336 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path")));
276 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); 337 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org")));
277 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); 338 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags")));
278 } 339 }
279 340
280 } // namespace extensions 341 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/bookmark_app_helper.cc ('k') | chrome/common/extensions/api/_api_features.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698