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

Side by Side Diff: extensions/browser/extension_icon_image_unittest.cc

Issue 598173003: Run clang-modernize -use-nullptr over src/extensions/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 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 "extensions/browser/extension_icon_image.h" 5 #include "extensions/browser/extension_icon_image.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/json/json_file_value_serializer.h" 9 #include "base/json/json_file_value_serializer.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 image_loaded_count_ = 0; 138 image_loaded_count_ = 0;
139 return result; 139 return result;
140 } 140 }
141 141
142 scoped_refptr<Extension> CreateExtension(const char* name, 142 scoped_refptr<Extension> CreateExtension(const char* name,
143 Manifest::Location location) { 143 Manifest::Location location) {
144 // Create and load an extension. 144 // Create and load an extension.
145 base::FilePath test_file; 145 base::FilePath test_file;
146 if (!PathService::Get(DIR_TEST_DATA, &test_file)) { 146 if (!PathService::Get(DIR_TEST_DATA, &test_file)) {
147 EXPECT_FALSE(true); 147 EXPECT_FALSE(true);
148 return NULL; 148 return nullptr;
149 } 149 }
150 test_file = test_file.AppendASCII(name); 150 test_file = test_file.AppendASCII(name);
151 int error_code = 0; 151 int error_code = 0;
152 std::string error; 152 std::string error;
153 JSONFileValueSerializer serializer(test_file.AppendASCII("manifest.json")); 153 JSONFileValueSerializer serializer(test_file.AppendASCII("manifest.json"));
154 scoped_ptr<base::DictionaryValue> valid_value( 154 scoped_ptr<base::DictionaryValue> valid_value(
155 static_cast<base::DictionaryValue*>(serializer.Deserialize(&error_code, 155 static_cast<base::DictionaryValue*>(serializer.Deserialize(&error_code,
156 &error))); 156 &error)));
157 EXPECT_EQ(0, error_code) << error; 157 EXPECT_EQ(0, error_code) << error;
158 if (error_code != 0) 158 if (error_code != 0)
159 return NULL; 159 return nullptr;
160 160
161 EXPECT_TRUE(valid_value.get()); 161 EXPECT_TRUE(valid_value.get());
162 if (!valid_value) 162 if (!valid_value)
163 return NULL; 163 return nullptr;
164 164
165 return Extension::Create(test_file, location, *valid_value, 165 return Extension::Create(test_file, location, *valid_value,
166 Extension::NO_FLAGS, &error); 166 Extension::NO_FLAGS, &error);
167 } 167 }
168 168
169 // testing::Test overrides: 169 // testing::Test overrides:
170 virtual void SetUp() OVERRIDE { 170 virtual void SetUp() OVERRIDE {
171 file_thread_.Start(); 171 file_thread_.Start();
172 io_thread_.Start(); 172 io_thread_.Start();
173 } 173 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 206
207 } // namespace 207 } // namespace
208 208
209 TEST_F(ExtensionIconImageTest, Basic) { 209 TEST_F(ExtensionIconImageTest, Basic) {
210 std::vector<ui::ScaleFactor> supported_factors; 210 std::vector<ui::ScaleFactor> supported_factors;
211 supported_factors.push_back(ui::SCALE_FACTOR_100P); 211 supported_factors.push_back(ui::SCALE_FACTOR_100P);
212 supported_factors.push_back(ui::SCALE_FACTOR_200P); 212 supported_factors.push_back(ui::SCALE_FACTOR_200P);
213 ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors); 213 ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors);
214 scoped_refptr<Extension> extension(CreateExtension( 214 scoped_refptr<Extension> extension(CreateExtension(
215 "extension_icon_image", Manifest::INVALID_LOCATION)); 215 "extension_icon_image", Manifest::INVALID_LOCATION));
216 ASSERT_TRUE(extension.get() != NULL); 216 ASSERT_TRUE(extension.get() != nullptr);
217 217
218 gfx::ImageSkia default_icon = GetDefaultIcon(); 218 gfx::ImageSkia default_icon = GetDefaultIcon();
219 219
220 // Load images we expect to find as representations in icon_image, so we 220 // Load images we expect to find as representations in icon_image, so we
221 // can later use them to validate icon_image. 221 // can later use them to validate icon_image.
222 SkBitmap bitmap_16 = GetTestBitmap(extension.get(), "16.png", 16); 222 SkBitmap bitmap_16 = GetTestBitmap(extension.get(), "16.png", 16);
223 ASSERT_FALSE(bitmap_16.empty()); 223 ASSERT_FALSE(bitmap_16.empty());
224 224
225 // There is no image of size 32 defined in the extension manifest, so we 225 // There is no image of size 32 defined in the extension manifest, so we
226 // should expect manifest image of size 48 resized to size 32. 226 // should expect manifest image of size 48 resized to size 32.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 279
280 // There is no resource with either exact or bigger size, but there is a smaller 280 // There is no resource with either exact or bigger size, but there is a smaller
281 // resource. 281 // resource.
282 TEST_F(ExtensionIconImageTest, FallbackToSmallerWhenNoBigger) { 282 TEST_F(ExtensionIconImageTest, FallbackToSmallerWhenNoBigger) {
283 std::vector<ui::ScaleFactor> supported_factors; 283 std::vector<ui::ScaleFactor> supported_factors;
284 supported_factors.push_back(ui::SCALE_FACTOR_100P); 284 supported_factors.push_back(ui::SCALE_FACTOR_100P);
285 supported_factors.push_back(ui::SCALE_FACTOR_200P); 285 supported_factors.push_back(ui::SCALE_FACTOR_200P);
286 ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors); 286 ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors);
287 scoped_refptr<Extension> extension(CreateExtension( 287 scoped_refptr<Extension> extension(CreateExtension(
288 "extension_icon_image", Manifest::INVALID_LOCATION)); 288 "extension_icon_image", Manifest::INVALID_LOCATION));
289 ASSERT_TRUE(extension.get() != NULL); 289 ASSERT_TRUE(extension.get() != nullptr);
290 290
291 gfx::ImageSkia default_icon = GetDefaultIcon(); 291 gfx::ImageSkia default_icon = GetDefaultIcon();
292 292
293 // Load images we expect to find as representations in icon_image, so we 293 // Load images we expect to find as representations in icon_image, so we
294 // can later use them to validate icon_image. 294 // can later use them to validate icon_image.
295 SkBitmap bitmap_48 = GetTestBitmap(extension.get(), "48.png", 48); 295 SkBitmap bitmap_48 = GetTestBitmap(extension.get(), "48.png", 48);
296 ASSERT_FALSE(bitmap_48.empty()); 296 ASSERT_FALSE(bitmap_48.empty());
297 297
298 IconImage image(browser_context(), 298 IconImage image(browser_context(),
299 extension.get(), 299 extension.get(),
(...skipping 16 matching lines...) Expand all
316 EXPECT_EQ(64, representation.pixel_width()); 316 EXPECT_EQ(64, representation.pixel_width());
317 EXPECT_TRUE(gfx::BitmapsAreEqual(representation.sk_bitmap(), 317 EXPECT_TRUE(gfx::BitmapsAreEqual(representation.sk_bitmap(),
318 EnsureBitmapSize(bitmap_48, 64))); 318 EnsureBitmapSize(bitmap_48, 64)));
319 } 319 }
320 320
321 // There is no resource with exact size, but there is a smaller and a bigger 321 // There is no resource with exact size, but there is a smaller and a bigger
322 // one. The bigger resource should be loaded. 322 // one. The bigger resource should be loaded.
323 TEST_F(ExtensionIconImageTest, FallbackToBigger) { 323 TEST_F(ExtensionIconImageTest, FallbackToBigger) {
324 scoped_refptr<Extension> extension(CreateExtension( 324 scoped_refptr<Extension> extension(CreateExtension(
325 "extension_icon_image", Manifest::INVALID_LOCATION)); 325 "extension_icon_image", Manifest::INVALID_LOCATION));
326 ASSERT_TRUE(extension.get() != NULL); 326 ASSERT_TRUE(extension.get() != nullptr);
327 327
328 gfx::ImageSkia default_icon = GetDefaultIcon(); 328 gfx::ImageSkia default_icon = GetDefaultIcon();
329 329
330 // Load images we expect to find as representations in icon_image, so we 330 // Load images we expect to find as representations in icon_image, so we
331 // can later use them to validate icon_image. 331 // can later use them to validate icon_image.
332 SkBitmap bitmap_24 = GetTestBitmap(extension.get(), "24.png", 24); 332 SkBitmap bitmap_24 = GetTestBitmap(extension.get(), "24.png", 24);
333 ASSERT_FALSE(bitmap_24.empty()); 333 ASSERT_FALSE(bitmap_24.empty());
334 334
335 IconImage image(browser_context(), 335 IconImage image(browser_context(),
336 extension.get(), 336 extension.get(),
(...skipping 15 matching lines...) Expand all
352 EXPECT_EQ(17, representation.pixel_width()); 352 EXPECT_EQ(17, representation.pixel_width());
353 EXPECT_TRUE(gfx::BitmapsAreEqual(representation.sk_bitmap(), 353 EXPECT_TRUE(gfx::BitmapsAreEqual(representation.sk_bitmap(),
354 EnsureBitmapSize(bitmap_24, 17))); 354 EnsureBitmapSize(bitmap_24, 17)));
355 } 355 }
356 356
357 // If resource set is empty, |GetRepresentation| should synchronously return 357 // If resource set is empty, |GetRepresentation| should synchronously return
358 // default icon, without notifying observer of image change. 358 // default icon, without notifying observer of image change.
359 TEST_F(ExtensionIconImageTest, NoResources) { 359 TEST_F(ExtensionIconImageTest, NoResources) {
360 scoped_refptr<Extension> extension(CreateExtension( 360 scoped_refptr<Extension> extension(CreateExtension(
361 "extension_icon_image", Manifest::INVALID_LOCATION)); 361 "extension_icon_image", Manifest::INVALID_LOCATION));
362 ASSERT_TRUE(extension.get() != NULL); 362 ASSERT_TRUE(extension.get() != nullptr);
363 363
364 ExtensionIconSet empty_icon_set; 364 ExtensionIconSet empty_icon_set;
365 gfx::ImageSkia default_icon = GetDefaultIcon(); 365 gfx::ImageSkia default_icon = GetDefaultIcon();
366 366
367 const int kRequestedSize = 24; 367 const int kRequestedSize = 24;
368 IconImage image(browser_context(), 368 IconImage image(browser_context(),
369 extension.get(), 369 extension.get(),
370 empty_icon_set, 370 empty_icon_set,
371 kRequestedSize, 371 kRequestedSize,
372 default_icon, 372 default_icon,
(...skipping 17 matching lines...) Expand all
390 default_icon.GetRepresentation(1.0f).sk_bitmap(), 390 default_icon.GetRepresentation(1.0f).sk_bitmap(),
391 kRequestedSize))); 391 kRequestedSize)));
392 } 392 }
393 393
394 // If resource set is invalid, image load should be done asynchronously and 394 // If resource set is invalid, image load should be done asynchronously and
395 // the observer should be notified when it's done. |GetRepresentation| should 395 // the observer should be notified when it's done. |GetRepresentation| should
396 // return the default icon representation once image load is done. 396 // return the default icon representation once image load is done.
397 TEST_F(ExtensionIconImageTest, InvalidResource) { 397 TEST_F(ExtensionIconImageTest, InvalidResource) {
398 scoped_refptr<Extension> extension(CreateExtension( 398 scoped_refptr<Extension> extension(CreateExtension(
399 "extension_icon_image", Manifest::INVALID_LOCATION)); 399 "extension_icon_image", Manifest::INVALID_LOCATION));
400 ASSERT_TRUE(extension.get() != NULL); 400 ASSERT_TRUE(extension.get() != nullptr);
401 401
402 const int kInvalidIconSize = 24; 402 const int kInvalidIconSize = 24;
403 ExtensionIconSet invalid_icon_set; 403 ExtensionIconSet invalid_icon_set;
404 invalid_icon_set.Add(kInvalidIconSize, "invalid.png"); 404 invalid_icon_set.Add(kInvalidIconSize, "invalid.png");
405 405
406 gfx::ImageSkia default_icon = GetDefaultIcon(); 406 gfx::ImageSkia default_icon = GetDefaultIcon();
407 407
408 IconImage image(browser_context(), 408 IconImage image(browser_context(),
409 extension.get(), 409 extension.get(),
410 invalid_icon_set, 410 invalid_icon_set,
(...skipping 17 matching lines...) Expand all
428 EnsureBitmapSize( 428 EnsureBitmapSize(
429 default_icon.GetRepresentation(1.0f).sk_bitmap(), 429 default_icon.GetRepresentation(1.0f).sk_bitmap(),
430 kInvalidIconSize))); 430 kInvalidIconSize)));
431 } 431 }
432 432
433 // Test that IconImage works with lazily (but synchronously) created default 433 // Test that IconImage works with lazily (but synchronously) created default
434 // icon when IconImage returns synchronously. 434 // icon when IconImage returns synchronously.
435 TEST_F(ExtensionIconImageTest, LazyDefaultIcon) { 435 TEST_F(ExtensionIconImageTest, LazyDefaultIcon) {
436 scoped_refptr<Extension> extension(CreateExtension( 436 scoped_refptr<Extension> extension(CreateExtension(
437 "extension_icon_image", Manifest::INVALID_LOCATION)); 437 "extension_icon_image", Manifest::INVALID_LOCATION));
438 ASSERT_TRUE(extension.get() != NULL); 438 ASSERT_TRUE(extension.get() != nullptr);
439 439
440 gfx::ImageSkia default_icon = GetDefaultIcon(); 440 gfx::ImageSkia default_icon = GetDefaultIcon();
441 gfx::ImageSkia lazy_default_icon(new MockImageSkiaSource(default_icon), 441 gfx::ImageSkia lazy_default_icon(new MockImageSkiaSource(default_icon),
442 default_icon.size()); 442 default_icon.size());
443 443
444 ExtensionIconSet empty_icon_set; 444 ExtensionIconSet empty_icon_set;
445 445
446 const int kRequestedSize = 128; 446 const int kRequestedSize = 128;
447 IconImage image(browser_context(), 447 IconImage image(browser_context(),
448 extension.get(), 448 extension.get(),
(...skipping 16 matching lines...) Expand all
465 465
466 // We should have a default icon representation. 466 // We should have a default icon representation.
467 ASSERT_EQ(1u, image.image_skia().image_reps().size()); 467 ASSERT_EQ(1u, image.image_skia().image_reps().size());
468 } 468 }
469 469
470 // Test that IconImage works with lazily (but synchronously) created default 470 // Test that IconImage works with lazily (but synchronously) created default
471 // icon when IconImage returns asynchronously. 471 // icon when IconImage returns asynchronously.
472 TEST_F(ExtensionIconImageTest, LazyDefaultIcon_AsyncIconImage) { 472 TEST_F(ExtensionIconImageTest, LazyDefaultIcon_AsyncIconImage) {
473 scoped_refptr<Extension> extension(CreateExtension( 473 scoped_refptr<Extension> extension(CreateExtension(
474 "extension_icon_image", Manifest::INVALID_LOCATION)); 474 "extension_icon_image", Manifest::INVALID_LOCATION));
475 ASSERT_TRUE(extension.get() != NULL); 475 ASSERT_TRUE(extension.get() != nullptr);
476 476
477 gfx::ImageSkia default_icon = GetDefaultIcon(); 477 gfx::ImageSkia default_icon = GetDefaultIcon();
478 gfx::ImageSkia lazy_default_icon(new MockImageSkiaSource(default_icon), 478 gfx::ImageSkia lazy_default_icon(new MockImageSkiaSource(default_icon),
479 default_icon.size()); 479 default_icon.size());
480 480
481 const int kInvalidIconSize = 24; 481 const int kInvalidIconSize = 24;
482 ExtensionIconSet invalid_icon_set; 482 ExtensionIconSet invalid_icon_set;
483 invalid_icon_set.Add(kInvalidIconSize, "invalid.png"); 483 invalid_icon_set.Add(kInvalidIconSize, "invalid.png");
484 484
485 IconImage image(browser_context(), 485 IconImage image(browser_context(),
(...skipping 22 matching lines...) Expand all
508 kInvalidIconSize))); 508 kInvalidIconSize)));
509 } 509 }
510 510
511 // Tests behavior of image created by IconImage after IconImage host goes 511 // Tests behavior of image created by IconImage after IconImage host goes
512 // away. The image should still return loaded representations. If requested 512 // away. The image should still return loaded representations. If requested
513 // representation was not loaded while IconImage host was around, transparent 513 // representation was not loaded while IconImage host was around, transparent
514 // representations should be returned. 514 // representations should be returned.
515 TEST_F(ExtensionIconImageTest, IconImageDestruction) { 515 TEST_F(ExtensionIconImageTest, IconImageDestruction) {
516 scoped_refptr<Extension> extension(CreateExtension( 516 scoped_refptr<Extension> extension(CreateExtension(
517 "extension_icon_image", Manifest::INVALID_LOCATION)); 517 "extension_icon_image", Manifest::INVALID_LOCATION));
518 ASSERT_TRUE(extension.get() != NULL); 518 ASSERT_TRUE(extension.get() != nullptr);
519 519
520 gfx::ImageSkia default_icon = GetDefaultIcon(); 520 gfx::ImageSkia default_icon = GetDefaultIcon();
521 521
522 // Load images we expect to find as representations in icon_image, so we 522 // Load images we expect to find as representations in icon_image, so we
523 // can later use them to validate icon_image. 523 // can later use them to validate icon_image.
524 SkBitmap bitmap_16 = GetTestBitmap(extension.get(), "16.png", 16); 524 SkBitmap bitmap_16 = GetTestBitmap(extension.get(), "16.png", 16);
525 ASSERT_FALSE(bitmap_16.empty()); 525 ASSERT_FALSE(bitmap_16.empty());
526 526
527 scoped_ptr<IconImage> image( 527 scoped_ptr<IconImage> image(
528 new IconImage(browser_context(), 528 new IconImage(browser_context(),
529 extension.get(), 529 extension.get(),
530 IconsInfo::GetIcons(extension.get()), 530 IconsInfo::GetIcons(extension.get()),
531 16, 531 16,
532 default_icon, 532 default_icon,
533 this)); 533 this));
534 534
535 // Load an image representation. 535 // Load an image representation.
536 gfx::ImageSkiaRep representation = 536 gfx::ImageSkiaRep representation =
537 image->image_skia().GetRepresentation(1.0f); 537 image->image_skia().GetRepresentation(1.0f);
538 538
539 WaitForImageLoad(); 539 WaitForImageLoad();
540 EXPECT_EQ(1, ImageLoadedCount()); 540 EXPECT_EQ(1, ImageLoadedCount());
541 ASSERT_EQ(1u, image->image_skia().image_reps().size()); 541 ASSERT_EQ(1u, image->image_skia().image_reps().size());
542 542
543 // Stash loaded image skia, and destroy |image|. 543 // Stash loaded image skia, and destroy |image|.
544 gfx::ImageSkia image_skia = image->image_skia(); 544 gfx::ImageSkia image_skia = image->image_skia();
545 image.reset(); 545 image.reset();
546 extension = NULL; 546 extension = nullptr;
547 547
548 // Image skia should still be able to get previously loaded representation. 548 // Image skia should still be able to get previously loaded representation.
549 representation = image_skia.GetRepresentation(1.0f); 549 representation = image_skia.GetRepresentation(1.0f);
550 550
551 EXPECT_EQ(1.0f, representation.scale()); 551 EXPECT_EQ(1.0f, representation.scale());
552 EXPECT_EQ(16, representation.pixel_width()); 552 EXPECT_EQ(16, representation.pixel_width());
553 EXPECT_TRUE(gfx::BitmapsAreEqual(representation.sk_bitmap(), bitmap_16)); 553 EXPECT_TRUE(gfx::BitmapsAreEqual(representation.sk_bitmap(), bitmap_16));
554 554
555 // When requesting another representation, we should not crash and return some 555 // When requesting another representation, we should not crash and return some
556 // image of the size. It could be blank or a rescale from the existing 1.0f 556 // image of the size. It could be blank or a rescale from the existing 1.0f
557 // icon. 557 // icon.
558 representation = image_skia.GetRepresentation(2.0f); 558 representation = image_skia.GetRepresentation(2.0f);
559 559
560 EXPECT_EQ(16, representation.GetWidth()); 560 EXPECT_EQ(16, representation.GetWidth());
561 EXPECT_EQ(16, representation.GetHeight()); 561 EXPECT_EQ(16, representation.GetHeight());
562 EXPECT_EQ(2.0f, representation.scale()); 562 EXPECT_EQ(2.0f, representation.scale());
563 } 563 }
564 564
565 } // namespace extensions 565 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698