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

Side by Side Diff: chrome/common/extensions/extension_unittest.cc

Issue 12213093: Remove ImageLoadingTracker class (Closed) Base URL: https://git.chromium.org/chromium/src.git@Issue_163929
Patch Set: Fix merge conflict Created 7 years, 10 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
« no previous file with comments | « chrome/common/extensions/extension_resource.h ('k') | ui/gfx/image/image_skia.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/json/json_file_value_serializer.h" 10 #include "base/json/json_file_value_serializer.h"
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 extension, SocketPermissionRequest::UDP_BIND, "", 8888)); 489 extension, SocketPermissionRequest::UDP_BIND, "", 8888));
490 490
491 EXPECT_FALSE(CheckSocketPermission( 491 EXPECT_FALSE(CheckSocketPermission(
492 extension, SocketPermissionRequest::UDP_SEND_TO, "example.com", 1900)); 492 extension, SocketPermissionRequest::UDP_SEND_TO, "example.com", 1900));
493 EXPECT_TRUE(CheckSocketPermission( 493 EXPECT_TRUE(CheckSocketPermission(
494 extension, 494 extension,
495 SocketPermissionRequest::UDP_SEND_TO, 495 SocketPermissionRequest::UDP_SEND_TO,
496 "239.255.255.250", 1900)); 496 "239.255.255.250", 1900));
497 } 497 }
498 498
499 // Returns a copy of |source| resized to |size| x |size|.
500 static SkBitmap ResizedCopy(const SkBitmap& source, int size) {
501 return skia::ImageOperations::Resize(source,
502 skia::ImageOperations::RESIZE_LANCZOS3,
503 size,
504 size);
505 }
506
507 static bool SizeEquals(const SkBitmap& bitmap, const gfx::Size& size) {
508 return bitmap.width() == size.width() && bitmap.height() == size.height();
509 }
510
511 TEST_F(ExtensionTest, ImageCaching) {
512 base::FilePath path;
513 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &path));
514 path = path.AppendASCII("extensions");
515
516 // Initialize the Extension.
517 std::string errors;
518 DictionaryValue values;
519 values.SetString(keys::kName, "test");
520 values.SetString(keys::kVersion, "0.1");
521 scoped_refptr<Extension> extension(Extension::Create(
522 path, Manifest::INVALID_LOCATION, values, Extension::NO_FLAGS, &errors));
523 ASSERT_TRUE(extension.get());
524
525 // Create an ExtensionResource pointing at an icon.
526 base::FilePath icon_relative_path(FILE_PATH_LITERAL("icon3.png"));
527 ExtensionResource resource(extension->id(),
528 extension->path(),
529 icon_relative_path);
530
531 // Read in the icon file.
532 base::FilePath icon_absolute_path =
533 extension->path().Append(icon_relative_path);
534 std::string raw_png;
535 ASSERT_TRUE(file_util::ReadFileToString(icon_absolute_path, &raw_png));
536 SkBitmap image;
537 ASSERT_TRUE(gfx::PNGCodec::Decode(
538 reinterpret_cast<const unsigned char*>(raw_png.data()),
539 raw_png.length(),
540 &image));
541
542 // Make sure the icon file is the size we expect.
543 gfx::Size original_size(66, 66);
544 ASSERT_EQ(image.width(), original_size.width());
545 ASSERT_EQ(image.height(), original_size.height());
546
547 // Create two resized versions at size 16x16 and 24x24.
548 SkBitmap image16 = ResizedCopy(image, 16);
549 SkBitmap image24 = ResizedCopy(image, 24);
550
551 gfx::Size size16(16, 16);
552 gfx::Size size24(24, 24);
553
554 // Cache the 16x16 copy.
555 EXPECT_FALSE(extension->HasCachedImage(resource, size16));
556 extension->SetCachedImage(resource, image16, original_size);
557 EXPECT_TRUE(extension->HasCachedImage(resource, size16));
558 EXPECT_TRUE(SizeEquals(extension->GetCachedImage(resource, size16), size16));
559 EXPECT_FALSE(extension->HasCachedImage(resource, size24));
560 EXPECT_FALSE(extension->HasCachedImage(resource, original_size));
561
562 // Cache the 24x24 copy.
563 extension->SetCachedImage(resource, image24, original_size);
564 EXPECT_TRUE(extension->HasCachedImage(resource, size24));
565 EXPECT_TRUE(SizeEquals(extension->GetCachedImage(resource, size24), size24));
566 EXPECT_FALSE(extension->HasCachedImage(resource, original_size));
567
568 // Cache the original, and verify that it gets returned when we ask for a
569 // max_size that is larger than the original.
570 gfx::Size size128(128, 128);
571 EXPECT_TRUE(image.width() < size128.width() &&
572 image.height() < size128.height());
573 extension->SetCachedImage(resource, image, original_size);
574 EXPECT_TRUE(extension->HasCachedImage(resource, original_size));
575 EXPECT_TRUE(extension->HasCachedImage(resource, size128));
576 EXPECT_TRUE(SizeEquals(extension->GetCachedImage(resource, original_size),
577 original_size));
578 EXPECT_TRUE(SizeEquals(extension->GetCachedImage(resource, size128),
579 original_size));
580 EXPECT_EQ(extension->GetCachedImage(resource, original_size).getPixels(),
581 extension->GetCachedImage(resource, size128).getPixels());
582 }
583
584 // This tests the API permissions with an empty manifest (one that just 499 // This tests the API permissions with an empty manifest (one that just
585 // specifies a name and a version and nothing else). 500 // specifies a name and a version and nothing else).
586 TEST_F(ExtensionTest, ApiPermissions) { 501 TEST_F(ExtensionTest, ApiPermissions) {
587 const struct { 502 const struct {
588 const char* permission_name; 503 const char* permission_name;
589 bool expect_success; 504 bool expect_success;
590 } kTests[] = { 505 } kTests[] = {
591 // Negative test. 506 // Negative test.
592 { "non_existing_permission", false }, 507 { "non_existing_permission", false },
593 // Test default module/package permission. 508 // Test default module/package permission.
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 scoped_refptr<Extension> extension( 1209 scoped_refptr<Extension> extension(
1295 MakeSyncTestExtension(EXTENSION, GURL(), GURL(), 1210 MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
1296 Manifest::INTERNAL, 2, base::FilePath(), 1211 Manifest::INTERNAL, 2, base::FilePath(),
1297 Extension::NO_FLAGS)); 1212 Extension::NO_FLAGS));
1298 if (extension) 1213 if (extension)
1299 EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE); 1214 EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
1300 } 1215 }
1301 #endif // !defined(OS_CHROMEOS) 1216 #endif // !defined(OS_CHROMEOS)
1302 1217
1303 } // namespace extensions 1218 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension_resource.h ('k') | ui/gfx/image/image_skia.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698