OLD | NEW |
---|---|
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.h" | 8 #include "chrome/browser/extensions/extension_service.h" |
9 #include "chrome/browser/extensions/extension_service_test_base.h" | 9 #include "chrome/browser/extensions/extension_service_test_base.h" |
10 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 10 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
90 icon_info.data = CreateSquareBitmapWithColor(size, color); | 90 icon_info.data = CreateSquareBitmapWithColor(size, color); |
91 return icon_info; | 91 return icon_info; |
92 } | 92 } |
93 | 93 |
94 void ValidateWebApplicationInfo(base::Closure callback, | 94 void ValidateWebApplicationInfo(base::Closure callback, |
95 const WebApplicationInfo& expected, | 95 const WebApplicationInfo& expected, |
96 const WebApplicationInfo& actual) { | 96 const WebApplicationInfo& actual) { |
97 EXPECT_EQ(expected.title, actual.title); | 97 EXPECT_EQ(expected.title, actual.title); |
98 EXPECT_EQ(expected.description, actual.description); | 98 EXPECT_EQ(expected.description, actual.description); |
99 EXPECT_EQ(expected.app_url, actual.app_url); | 99 EXPECT_EQ(expected.app_url, actual.app_url); |
100 EXPECT_EQ(expected.icons.size(), actual.icons.size()); | 100 // There should be 6 icons, as there are three sizes which need to be |
101 for (size_t i = 0; i < expected.icons.size(); ++i) { | 101 // generated, and each will generate a 1x and 2x icon. |
102 EXPECT_EQ(expected.icons[i].width, actual.icons[i].width); | 102 EXPECT_EQ(6u, actual.icons.size()); |
103 EXPECT_EQ(expected.icons[i].height, actual.icons[i].height); | |
104 EXPECT_EQ(expected.icons[i].url, actual.icons[i].url); | |
105 EXPECT_TRUE( | |
106 gfx::BitmapsAreEqual(expected.icons[i].data, actual.icons[i].data)); | |
107 } | |
108 callback.Run(); | 103 callback.Run(); |
109 } | 104 } |
110 | 105 |
111 } // namespace | 106 } // namespace |
112 | 107 |
113 namespace extensions { | 108 namespace extensions { |
calamity
2015/04/28 06:56:35
Where did this go?
| |
114 | 109 |
115 class TestBookmarkAppHelper : public BookmarkAppHelper { | 110 class TestBookmarkAppHelper : public BookmarkAppHelper { |
116 public: | 111 public: |
117 TestBookmarkAppHelper(ExtensionService* service, | 112 TestBookmarkAppHelper(ExtensionService* service, |
118 WebApplicationInfo web_app_info, | 113 WebApplicationInfo web_app_info, |
119 content::WebContents* contents) | 114 content::WebContents* contents) |
120 : BookmarkAppHelper(service->profile(), web_app_info, contents) {} | 115 : BookmarkAppHelper(service->profile(), web_app_info, contents) {} |
121 | 116 |
122 ~TestBookmarkAppHelper() override {} | 117 ~TestBookmarkAppHelper() override {} |
123 | 118 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
219 base::RunLoop().RunUntilIdle(); | 214 base::RunLoop().RunUntilIdle(); |
220 EXPECT_TRUE(helper.extension()); | 215 EXPECT_TRUE(helper.extension()); |
221 const Extension* extension = | 216 const Extension* extension = |
222 service_->GetInstalledExtension(helper.extension()->id()); | 217 service_->GetInstalledExtension(helper.extension()->id()); |
223 EXPECT_TRUE(extension); | 218 EXPECT_TRUE(extension); |
224 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 219 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
225 EXPECT_TRUE(extension->from_bookmark()); | 220 EXPECT_TRUE(extension->from_bookmark()); |
226 EXPECT_EQ(kAppTitle, extension->name()); | 221 EXPECT_EQ(kAppTitle, extension->name()); |
227 EXPECT_EQ(kAppDescription, extension->description()); | 222 EXPECT_EQ(kAppDescription, extension->description()); |
228 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 223 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
229 // The tiny icon should have been removed and only the generated ones used. | 224 EXPECT_FALSE( |
230 EXPECT_TRUE( | |
231 IconsInfo::GetIconResource(extension, kIconSizeTiny, | 225 IconsInfo::GetIconResource(extension, kIconSizeTiny, |
232 ExtensionIconSet::MATCH_EXACTLY).empty()); | 226 ExtensionIconSet::MATCH_EXACTLY).empty()); |
233 EXPECT_FALSE( | 227 EXPECT_FALSE( |
234 IconsInfo::GetIconResource( | 228 IconsInfo::GetIconResource( |
235 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); | 229 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); |
236 EXPECT_FALSE( | 230 EXPECT_FALSE( |
237 IconsInfo::GetIconResource(extension, | 231 IconsInfo::GetIconResource(extension, |
238 kIconSizeSmall * 2, | 232 kIconSizeSmall * 2, |
239 ExtensionIconSet::MATCH_EXACTLY).empty()); | 233 ExtensionIconSet::MATCH_EXACTLY).empty()); |
240 EXPECT_FALSE( | 234 EXPECT_FALSE( |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
278 base::RunLoop().RunUntilIdle(); | 272 base::RunLoop().RunUntilIdle(); |
279 | 273 |
280 { | 274 { |
281 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 275 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
282 const Extension* extension = | 276 const Extension* extension = |
283 registry()->enabled_extensions().begin()->get(); | 277 registry()->enabled_extensions().begin()->get(); |
284 EXPECT_TRUE(extension->from_bookmark()); | 278 EXPECT_TRUE(extension->from_bookmark()); |
285 EXPECT_EQ(kAlternativeAppTitle, extension->name()); | 279 EXPECT_EQ(kAlternativeAppTitle, extension->name()); |
286 EXPECT_EQ(kAppDescription, extension->description()); | 280 EXPECT_EQ(kAppDescription, extension->description()); |
287 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 281 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
288 EXPECT_TRUE(extensions::IconsInfo::GetIconResource( | 282 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
289 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) | 283 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) |
290 .empty()); | 284 .empty()); |
291 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( | 285 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
292 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) | 286 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) |
293 .empty()); | 287 .empty()); |
294 } | 288 } |
295 } | 289 } |
296 | 290 |
297 TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { | 291 TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { |
298 WebApplicationInfo web_app_info; | 292 WebApplicationInfo web_app_info; |
299 web_app_info.app_url = GURL(kAppUrl); | 293 web_app_info.app_url = GURL(kAppUrl); |
300 web_app_info.title = base::UTF8ToUTF16(kAppTitle); | 294 web_app_info.title = base::UTF8ToUTF16(kAppTitle); |
301 web_app_info.description = base::UTF8ToUTF16(kAppDescription); | 295 web_app_info.description = base::UTF8ToUTF16(kAppDescription); |
302 | 296 |
303 web_app_info.icons.push_back( | |
304 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); | |
305 web_app_info.icons.push_back( | |
306 CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED)); | |
307 | |
308 extensions::CreateOrUpdateBookmarkApp(service_, &web_app_info); | 297 extensions::CreateOrUpdateBookmarkApp(service_, &web_app_info); |
309 base::RunLoop().RunUntilIdle(); | 298 base::RunLoop().RunUntilIdle(); |
310 | 299 |
311 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 300 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
312 base::RunLoop run_loop; | 301 base::RunLoop run_loop; |
313 extensions::GetWebApplicationInfoFromApp( | 302 extensions::GetWebApplicationInfoFromApp( |
314 profile_.get(), registry()->enabled_extensions().begin()->get(), | 303 profile_.get(), registry()->enabled_extensions().begin()->get(), |
315 base::Bind(&ValidateWebApplicationInfo, run_loop.QuitClosure(), | 304 base::Bind(&ValidateWebApplicationInfo, run_loop.QuitClosure(), |
316 web_app_info)); | 305 web_app_info)); |
317 run_loop.Run(); | 306 run_loop.Run(); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
358 } | 347 } |
359 | 348 |
360 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { | 349 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { |
361 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); | 350 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); |
362 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); | 351 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); |
363 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); | 352 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); |
364 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); | 353 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); |
365 } | 354 } |
366 | 355 |
367 } // namespace extensions | 356 } // namespace extensions |
OLD | NEW |