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" |
11 #include "chrome/test/base/testing_profile.h" | 11 #include "chrome/test/base/testing_profile.h" |
12 #include "content/public/browser/render_process_host.h" | 12 #include "content/public/browser/render_process_host.h" |
13 #include "content/public/browser/web_contents.h" | 13 #include "content/public/browser/web_contents.h" |
14 #include "content/public/test/web_contents_tester.h" | 14 #include "content/public/test/web_contents_tester.h" |
15 #include "extensions/browser/extension_registry.h" | 15 #include "extensions/browser/extension_registry.h" |
16 #include "extensions/common/constants.h" | 16 #include "extensions/common/constants.h" |
17 #include "extensions/common/extension_icon_set.h" | 17 #include "extensions/common/extension_icon_set.h" |
18 #include "extensions/common/manifest_handlers/icons_handler.h" | 18 #include "extensions/common/manifest_handlers/icons_handler.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
20 #include "third_party/skia/include/core/SkBitmap.h" | 20 #include "third_party/skia/include/core/SkBitmap.h" |
21 #include "ui/gfx/skia_util.h" | 21 #include "ui/gfx/skia_util.h" |
22 | 22 |
23 namespace extensions { | |
24 | |
23 namespace { | 25 namespace { |
24 | 26 |
25 const char kAppUrl[] = "http://www.chromium.org"; | 27 const char kAppUrl[] = "http://www.chromium.org"; |
26 const char kAlternativeAppUrl[] = "http://www.notchromium.org"; | 28 const char kAlternativeAppUrl[] = "http://www.notchromium.org"; |
27 const char kAppTitle[] = "Test title"; | 29 const char kAppTitle[] = "Test title"; |
28 const char kAppShortName[] = "Test short name"; | 30 const char kAppShortName[] = "Test short name"; |
29 const char kAlternativeAppTitle[] = "Different test title"; | 31 const char kAlternativeAppTitle[] = "Different test title"; |
30 const char kAppDescription[] = "Test description"; | 32 const char kAppDescription[] = "Test description"; |
31 const char kAppIcon1[] = "fav1.png"; | 33 const char kAppIcon1[] = "fav1.png"; |
32 const char kAppIcon2[] = "fav2.png"; | 34 const char kAppIcon2[] = "fav2.png"; |
33 const char kAppIcon3[] = "fav3.png"; | 35 const char kAppIcon3[] = "fav3.png"; |
36 const char kAppIconURL1[] = "http://foo.com/1.png"; | |
37 const char kAppIconURL2[] = "http://foo.com/2.png"; | |
38 const char kAppIconURL3[] = "http://foo.com/3.png"; | |
39 const char kAppIconURL4[] = "http://foo.com/4.png"; | |
34 | 40 |
35 const int kIconSizeTiny = extension_misc::EXTENSION_ICON_BITTY; | 41 const int kIconSizeTiny = extension_misc::EXTENSION_ICON_BITTY; |
36 const int kIconSizeSmall = extension_misc::EXTENSION_ICON_SMALL; | 42 const int kIconSizeSmall = extension_misc::EXTENSION_ICON_SMALL; |
37 const int kIconSizeMedium = extension_misc::EXTENSION_ICON_MEDIUM; | 43 const int kIconSizeMedium = extension_misc::EXTENSION_ICON_MEDIUM; |
38 const int kIconSizeLarge = extension_misc::EXTENSION_ICON_LARGE; | 44 const int kIconSizeLarge = extension_misc::EXTENSION_ICON_LARGE; |
45 const int kIconSizeUnsupported = 123; | |
39 | 46 |
40 class BookmarkAppHelperTest : public testing::Test { | 47 class BookmarkAppHelperTest : public testing::Test { |
41 public: | 48 public: |
42 BookmarkAppHelperTest() {} | 49 BookmarkAppHelperTest() {} |
43 ~BookmarkAppHelperTest() override {} | 50 ~BookmarkAppHelperTest() override {} |
44 | 51 |
45 private: | 52 private: |
46 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest); | 53 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest); |
47 }; | 54 }; |
48 | 55 |
(...skipping 27 matching lines...) Expand all Loading... | |
76 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperExtensionServiceTest); | 83 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperExtensionServiceTest); |
77 }; | 84 }; |
78 | 85 |
79 SkBitmap CreateSquareBitmapWithColor(int size, SkColor color) { | 86 SkBitmap CreateSquareBitmapWithColor(int size, SkColor color) { |
80 SkBitmap bitmap; | 87 SkBitmap bitmap; |
81 bitmap.allocN32Pixels(size, size); | 88 bitmap.allocN32Pixels(size, size); |
82 bitmap.eraseColor(color); | 89 bitmap.eraseColor(color); |
83 return bitmap; | 90 return bitmap; |
84 } | 91 } |
85 | 92 |
93 BookmarkAppHelper::BitmapAndSource CreateSquareBitmapAndSourceWithColor( | |
94 int size, | |
95 SkColor color) { | |
96 return BookmarkAppHelper::BitmapAndSource( | |
97 GURL(), CreateSquareBitmapWithColor(size, color)); | |
98 } | |
99 | |
100 void ValidateBitmapSizeAndColor(SkBitmap bitmap, int size, SkColor color) { | |
101 // Obtain pixel lock to access pixels. | |
102 SkAutoLockPixels lock(bitmap); | |
103 EXPECT_EQ(color, bitmap.getColor(0, 0)); | |
104 EXPECT_EQ(size, bitmap.width()); | |
105 EXPECT_EQ(size, bitmap.height()); | |
106 } | |
107 | |
86 WebApplicationInfo::IconInfo CreateIconInfoWithBitmap(int size, SkColor color) { | 108 WebApplicationInfo::IconInfo CreateIconInfoWithBitmap(int size, SkColor color) { |
87 WebApplicationInfo::IconInfo icon_info; | 109 WebApplicationInfo::IconInfo icon_info; |
88 icon_info.width = size; | 110 icon_info.width = size; |
89 icon_info.height = size; | 111 icon_info.height = size; |
90 icon_info.data = CreateSquareBitmapWithColor(size, color); | 112 icon_info.data = CreateSquareBitmapWithColor(size, color); |
91 return icon_info; | 113 return icon_info; |
92 } | 114 } |
93 | 115 |
116 void ValidateAllIconsWithURLsArePresent(const WebApplicationInfo& info_to_check, | |
117 const WebApplicationInfo& other_info) { | |
118 for (const auto& icon : info_to_check.icons) { | |
119 if (!icon.url.is_empty()) { | |
120 bool found = false; | |
121 for (const auto& other_icon : info_to_check.icons) { | |
122 if (other_icon.url == icon.url && other_icon.width == icon.width) { | |
123 found = true; | |
124 break; | |
125 } | |
126 } | |
127 EXPECT_TRUE(found); | |
128 } | |
129 } | |
130 } | |
131 | |
94 void ValidateWebApplicationInfo(base::Closure callback, | 132 void ValidateWebApplicationInfo(base::Closure callback, |
95 const WebApplicationInfo& expected, | 133 const WebApplicationInfo& original, |
96 const WebApplicationInfo& actual) { | 134 const WebApplicationInfo& newly_made) { |
97 EXPECT_EQ(expected.title, actual.title); | 135 EXPECT_EQ(original.title, newly_made.title); |
98 EXPECT_EQ(expected.description, actual.description); | 136 EXPECT_EQ(original.description, newly_made.description); |
99 EXPECT_EQ(expected.app_url, actual.app_url); | 137 EXPECT_EQ(original.app_url, newly_made.app_url); |
100 EXPECT_EQ(expected.icons.size(), actual.icons.size()); | 138 // 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) { | 139 // generated, and each will generate a 1x and 2x icon. |
102 EXPECT_EQ(expected.icons[i].width, actual.icons[i].width); | 140 EXPECT_EQ(6u, newly_made.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(); | 141 callback.Run(); |
109 } | 142 } |
110 | 143 |
111 } // namespace | 144 } // namespace |
112 | 145 |
113 namespace extensions { | |
114 | |
115 class TestBookmarkAppHelper : public BookmarkAppHelper { | 146 class TestBookmarkAppHelper : public BookmarkAppHelper { |
116 public: | 147 public: |
117 TestBookmarkAppHelper(ExtensionService* service, | 148 TestBookmarkAppHelper(ExtensionService* service, |
118 WebApplicationInfo web_app_info, | 149 WebApplicationInfo web_app_info, |
119 content::WebContents* contents) | 150 content::WebContents* contents) |
120 : BookmarkAppHelper(service->profile(), web_app_info, contents) {} | 151 : BookmarkAppHelper(service->profile(), web_app_info, contents) {} |
121 | 152 |
122 ~TestBookmarkAppHelper() override {} | 153 ~TestBookmarkAppHelper() override {} |
123 | 154 |
124 void CreationComplete(const extensions::Extension* extension, | 155 void CreationComplete(const extensions::Extension* extension, |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
219 base::RunLoop().RunUntilIdle(); | 250 base::RunLoop().RunUntilIdle(); |
220 EXPECT_TRUE(helper.extension()); | 251 EXPECT_TRUE(helper.extension()); |
221 const Extension* extension = | 252 const Extension* extension = |
222 service_->GetInstalledExtension(helper.extension()->id()); | 253 service_->GetInstalledExtension(helper.extension()->id()); |
223 EXPECT_TRUE(extension); | 254 EXPECT_TRUE(extension); |
224 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 255 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
225 EXPECT_TRUE(extension->from_bookmark()); | 256 EXPECT_TRUE(extension->from_bookmark()); |
226 EXPECT_EQ(kAppTitle, extension->name()); | 257 EXPECT_EQ(kAppTitle, extension->name()); |
227 EXPECT_EQ(kAppDescription, extension->description()); | 258 EXPECT_EQ(kAppDescription, extension->description()); |
228 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 259 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
229 // The tiny icon should have been removed and only the generated ones used. | 260 EXPECT_FALSE( |
230 EXPECT_TRUE( | |
231 IconsInfo::GetIconResource(extension, kIconSizeTiny, | 261 IconsInfo::GetIconResource(extension, kIconSizeTiny, |
232 ExtensionIconSet::MATCH_EXACTLY).empty()); | 262 ExtensionIconSet::MATCH_EXACTLY).empty()); |
233 EXPECT_FALSE( | 263 EXPECT_FALSE( |
234 IconsInfo::GetIconResource( | 264 IconsInfo::GetIconResource( |
235 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); | 265 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); |
236 EXPECT_FALSE( | 266 EXPECT_FALSE( |
237 IconsInfo::GetIconResource(extension, | 267 IconsInfo::GetIconResource(extension, |
238 kIconSizeSmall * 2, | 268 kIconSizeSmall * 2, |
239 ExtensionIconSet::MATCH_EXACTLY).empty()); | 269 ExtensionIconSet::MATCH_EXACTLY).empty()); |
240 EXPECT_FALSE( | 270 EXPECT_FALSE( |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
278 base::RunLoop().RunUntilIdle(); | 308 base::RunLoop().RunUntilIdle(); |
279 | 309 |
280 { | 310 { |
281 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 311 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
282 const Extension* extension = | 312 const Extension* extension = |
283 registry()->enabled_extensions().begin()->get(); | 313 registry()->enabled_extensions().begin()->get(); |
284 EXPECT_TRUE(extension->from_bookmark()); | 314 EXPECT_TRUE(extension->from_bookmark()); |
285 EXPECT_EQ(kAlternativeAppTitle, extension->name()); | 315 EXPECT_EQ(kAlternativeAppTitle, extension->name()); |
286 EXPECT_EQ(kAppDescription, extension->description()); | 316 EXPECT_EQ(kAppDescription, extension->description()); |
287 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 317 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
288 EXPECT_TRUE(extensions::IconsInfo::GetIconResource( | 318 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
289 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) | 319 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) |
290 .empty()); | 320 .empty()); |
291 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( | 321 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
292 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) | 322 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) |
293 .empty()); | 323 .empty()); |
294 } | 324 } |
295 } | 325 } |
296 | 326 |
297 TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { | 327 TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { |
298 WebApplicationInfo web_app_info; | 328 WebApplicationInfo web_app_info; |
299 web_app_info.app_url = GURL(kAppUrl); | 329 web_app_info.app_url = GURL(kAppUrl); |
300 web_app_info.title = base::UTF8ToUTF16(kAppTitle); | 330 web_app_info.title = base::UTF8ToUTF16(kAppTitle); |
301 web_app_info.description = base::UTF8ToUTF16(kAppDescription); | 331 web_app_info.description = base::UTF8ToUTF16(kAppDescription); |
302 | 332 |
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); | 333 extensions::CreateOrUpdateBookmarkApp(service_, &web_app_info); |
309 base::RunLoop().RunUntilIdle(); | 334 base::RunLoop().RunUntilIdle(); |
310 | 335 |
311 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 336 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
312 base::RunLoop run_loop; | 337 base::RunLoop run_loop; |
313 extensions::GetWebApplicationInfoFromApp( | 338 extensions::GetWebApplicationInfoFromApp( |
314 profile_.get(), registry()->enabled_extensions().begin()->get(), | 339 profile_.get(), registry()->enabled_extensions().begin()->get(), |
315 base::Bind(&ValidateWebApplicationInfo, run_loop.QuitClosure(), | 340 base::Bind(&ValidateWebApplicationInfo, run_loop.QuitClosure(), |
316 web_app_info)); | 341 web_app_info)); |
317 run_loop.Run(); | 342 run_loop.Run(); |
318 } | 343 } |
319 | 344 |
345 TEST_F(BookmarkAppHelperExtensionServiceTest, LinkedAppIconsAreNotChanged) { | |
346 WebApplicationInfo web_app_info; | |
347 | |
348 // Add two icons with a URL and bitmap, two icons with just a bitmap, an | |
349 // icon with just URL and an icon in an unsupported size with just a URL. | |
350 WebApplicationInfo::IconInfo icon_info = | |
351 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED); | |
352 icon_info.url = GURL(kAppIconURL1); | |
353 web_app_info.icons.push_back(icon_info); | |
354 | |
355 icon_info = CreateIconInfoWithBitmap(kIconSizeMedium, SK_ColorRED); | |
356 icon_info.url = GURL(kAppIconURL2); | |
357 web_app_info.icons.push_back(icon_info); | |
358 | |
359 icon_info.data = SkBitmap(); | |
360 icon_info.url = GURL(kAppIconURL3); | |
361 web_app_info.icons.push_back(icon_info); | |
362 | |
363 icon_info.url = GURL(kAppIconURL4); | |
364 web_app_info.icons.push_back(icon_info); | |
365 | |
366 icon_info = CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED); | |
367 web_app_info.icons.push_back(icon_info); | |
368 | |
369 icon_info = CreateIconInfoWithBitmap(kIconSizeUnsupported, SK_ColorRED); | |
370 web_app_info.icons.push_back(icon_info); | |
371 | |
372 // Now run the resizing and generation into a new web app info. | |
373 WebApplicationInfo new_web_app_info; | |
374 std::map<int, BookmarkAppHelper::BitmapAndSource> size_map = | |
375 BookmarkAppHelper::ResizeIconsAndGenerateMissing( | |
376 std::vector<BookmarkAppHelper::BitmapAndSource>(), &new_web_app_info); | |
377 | |
378 // Now check that the linked app icons (i.e. those with URLs) are matching in | |
379 // both lists. | |
380 ValidateAllIconsWithURLsArePresent(web_app_info, new_web_app_info); | |
381 ValidateAllIconsWithURLsArePresent(new_web_app_info, web_app_info); | |
calamity
2015/04/28 06:56:35
You could just use a counter in ValidateAllIconsWi
benwells
2015/04/28 08:10:56
As discussed there could be icons without URLs.
| |
382 } | |
383 | |
320 TEST_F(BookmarkAppHelperTest, UpdateWebAppInfoFromManifest) { | 384 TEST_F(BookmarkAppHelperTest, UpdateWebAppInfoFromManifest) { |
321 WebApplicationInfo web_app_info; | 385 WebApplicationInfo web_app_info; |
322 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); | 386 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); |
323 web_app_info.app_url = GURL(kAlternativeAppUrl); | 387 web_app_info.app_url = GURL(kAlternativeAppUrl); |
324 WebApplicationInfo::IconInfo info; | 388 WebApplicationInfo::IconInfo info; |
325 info.url = GURL(kAppIcon1); | 389 info.url = GURL(kAppIcon1); |
326 web_app_info.icons.push_back(info); | 390 web_app_info.icons.push_back(info); |
327 | 391 |
328 content::Manifest manifest; | 392 content::Manifest manifest; |
329 manifest.start_url = GURL(kAppUrl); | 393 manifest.start_url = GURL(kAppUrl); |
(...skipping 20 matching lines...) Expand all Loading... | |
350 manifest.icons.push_back(icon); | 414 manifest.icons.push_back(icon); |
351 | 415 |
352 BookmarkAppHelper::UpdateWebAppInfoFromManifest(manifest, &web_app_info); | 416 BookmarkAppHelper::UpdateWebAppInfoFromManifest(manifest, &web_app_info); |
353 EXPECT_EQ(base::UTF8ToUTF16(kAppTitle), web_app_info.title); | 417 EXPECT_EQ(base::UTF8ToUTF16(kAppTitle), web_app_info.title); |
354 | 418 |
355 EXPECT_EQ(2u, web_app_info.icons.size()); | 419 EXPECT_EQ(2u, web_app_info.icons.size()); |
356 EXPECT_EQ(GURL(kAppIcon2), web_app_info.icons[0].url); | 420 EXPECT_EQ(GURL(kAppIcon2), web_app_info.icons[0].url); |
357 EXPECT_EQ(GURL(kAppIcon3), web_app_info.icons[1].url); | 421 EXPECT_EQ(GURL(kAppIcon3), web_app_info.icons[1].url); |
358 } | 422 } |
359 | 423 |
424 TEST_F(BookmarkAppHelperTest, ConstrainBitmapsToSizes) { | |
425 std::set<int> desired_sizes; | |
426 desired_sizes.insert(16); | |
427 desired_sizes.insert(32); | |
428 desired_sizes.insert(128); | |
429 desired_sizes.insert(256); | |
430 | |
431 { | |
432 std::vector<BookmarkAppHelper::BitmapAndSource> bitmaps; | |
433 bitmaps.push_back(CreateSquareBitmapAndSourceWithColor(16, SK_ColorRED)); | |
434 bitmaps.push_back(CreateSquareBitmapAndSourceWithColor(32, SK_ColorGREEN)); | |
435 bitmaps.push_back(CreateSquareBitmapAndSourceWithColor(48, SK_ColorBLUE)); | |
436 bitmaps.push_back( | |
437 CreateSquareBitmapAndSourceWithColor(144, SK_ColorYELLOW)); | |
438 | |
439 std::map<int, BookmarkAppHelper::BitmapAndSource> results( | |
440 BookmarkAppHelper::ConstrainBitmapsToSizes(bitmaps, desired_sizes)); | |
441 | |
442 EXPECT_EQ(3u, results.size()); | |
443 ValidateBitmapSizeAndColor(results[16].bitmap, 16, SK_ColorRED); | |
444 ValidateBitmapSizeAndColor(results[32].bitmap, 32, SK_ColorGREEN); | |
445 ValidateBitmapSizeAndColor(results[128].bitmap, 128, SK_ColorYELLOW); | |
446 } | |
447 { | |
448 std::vector<BookmarkAppHelper::BitmapAndSource> bitmaps; | |
449 bitmaps.push_back(CreateSquareBitmapAndSourceWithColor(512, SK_ColorRED)); | |
450 bitmaps.push_back(CreateSquareBitmapAndSourceWithColor(18, SK_ColorGREEN)); | |
451 bitmaps.push_back(CreateSquareBitmapAndSourceWithColor(33, SK_ColorBLUE)); | |
452 bitmaps.push_back(CreateSquareBitmapAndSourceWithColor(17, SK_ColorYELLOW)); | |
453 | |
454 std::map<int, BookmarkAppHelper::BitmapAndSource> results( | |
455 BookmarkAppHelper::ConstrainBitmapsToSizes(bitmaps, desired_sizes)); | |
456 | |
457 EXPECT_EQ(3u, results.size()); | |
458 ValidateBitmapSizeAndColor(results[16].bitmap, 16, SK_ColorYELLOW); | |
459 ValidateBitmapSizeAndColor(results[32].bitmap, 32, SK_ColorBLUE); | |
460 ValidateBitmapSizeAndColor(results[256].bitmap, 256, SK_ColorRED); | |
461 } | |
462 } | |
463 | |
360 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { | 464 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { |
361 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); | 465 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); |
362 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); | 466 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); |
363 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); | 467 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); |
364 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); | 468 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); |
365 } | 469 } |
366 | 470 |
367 } // namespace extensions | 471 } // namespace extensions |
OLD | NEW |