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

Side by Side Diff: ui/gfx/image/image_skia_unittest.cc

Issue 372883002: Use 2x resources for 1.25 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updated test Created 6 years, 5 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
« no previous file with comments | « ui/gfx/image/image_skia.cc ('k') | no next file » | 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 "ui/gfx/image/image_skia.h" 5 #include "ui/gfx/image/image_skia.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/threading/simple_thread.h" 9 #include "base/threading/simple_thread.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 EXPECT_TRUE(image_skia.GetRepresentation(1.0f).unscaled()); 416 EXPECT_TRUE(image_skia.GetRepresentation(1.0f).unscaled());
417 ImageSkiaRep rep_2x(Size(100, 100), 2.0f); 417 ImageSkiaRep rep_2x(Size(100, 100), 2.0f);
418 418
419 // When reps for other scales are added, the unscaled image 419 // When reps for other scales are added, the unscaled image
420 // becomes scaled. 420 // becomes scaled.
421 image_skia.AddRepresentation(rep_2x); 421 image_skia.AddRepresentation(rep_2x);
422 EXPECT_FALSE(image_skia.GetRepresentation(1.0f).unscaled()); 422 EXPECT_FALSE(image_skia.GetRepresentation(1.0f).unscaled());
423 EXPECT_FALSE(image_skia.GetRepresentation(2.0f).unscaled()); 423 EXPECT_FALSE(image_skia.GetRepresentation(2.0f).unscaled());
424 } 424 }
425 425
426 namespace {
427
428 std::vector<float> GetSortedScaleFactors(const gfx::ImageSkia& image) {
429 const std::vector<ImageSkiaRep>& image_reps = image.image_reps();
430 std::vector<float> scale_factors;
431 for (size_t i = 0; i < image_reps.size(); ++i) {
432 scale_factors.push_back(image_reps[i].scale());
433 }
434 std::sort(scale_factors.begin(), scale_factors.end());
435 return scale_factors;
436 }
437
438 } // namespace
439
426 TEST_F(ImageSkiaTest, ArbitraryScaleFactor) { 440 TEST_F(ImageSkiaTest, ArbitraryScaleFactor) {
427 // Do not test if the ImageSkia doesn't support arbitrary scale factors. 441 // Do not test if the ImageSkia doesn't support arbitrary scale factors.
428 if (!ImageSkia::IsDSFScalingInImageSkiaEnabled()) 442 if (!ImageSkia::IsDSFScalingInImageSkiaEnabled())
429 return; 443 return;
430 444
431 // source is owned by |image| 445 // source is owned by |image|
432 DynamicSource* source = new DynamicSource(Size(100, 200)); 446 DynamicSource* source = new DynamicSource(Size(100, 200));
433 ImageSkia image(source, gfx::Size(100, 200)); 447 ImageSkia image(source, gfx::Size(100, 200));
434 448
435 image.GetRepresentation(1.5f); 449 image.GetRepresentation(1.5f);
436 EXPECT_EQ(2.0f, source->GetLastRequestedScaleAndReset()); 450 EXPECT_EQ(2.0f, source->GetLastRequestedScaleAndReset());
437 std::vector<ImageSkiaRep> image_reps = image.image_reps(); 451 std::vector<ImageSkiaRep> image_reps = image.image_reps();
438 EXPECT_EQ(2u, image_reps.size()); 452 EXPECT_EQ(2u, image_reps.size());
439 453
440 std::vector<float> scale_factors; 454 std::vector<float> scale_factors = GetSortedScaleFactors(image);
441 for (size_t i = 0; i < image_reps.size(); ++i) {
442 scale_factors.push_back(image_reps[i].scale());
443 }
444 std::sort(scale_factors.begin(), scale_factors.end());
445 EXPECT_EQ(1.5f, scale_factors[0]); 455 EXPECT_EQ(1.5f, scale_factors[0]);
446 EXPECT_EQ(2.0f, scale_factors[1]); 456 EXPECT_EQ(2.0f, scale_factors[1]);
447 457
448 // Requesting 1.75 scale factor also falls back to 2.0f and rescale. 458 // Requesting 1.75 scale factor also falls back to 2.0f and rescale.
449 // However, the image already has the 2.0f data, so it won't fetch again. 459 // However, the image already has the 2.0f data, so it won't fetch again.
450 image.GetRepresentation(1.75f); 460 image.GetRepresentation(1.75f);
451 EXPECT_EQ(0.0f, source->GetLastRequestedScaleAndReset()); 461 EXPECT_EQ(0.0f, source->GetLastRequestedScaleAndReset());
452 image_reps = image.image_reps(); 462 image_reps = image.image_reps();
453 EXPECT_EQ(3u, image_reps.size()); 463 EXPECT_EQ(3u, image_reps.size());
454 464
455 scale_factors.clear(); 465 scale_factors = GetSortedScaleFactors(image);
456 for (size_t i = 0; i < image_reps.size(); ++i) {
457 scale_factors.push_back(image_reps[i].scale());
458 }
459 std::sort(scale_factors.begin(), scale_factors.end());
460 EXPECT_EQ(1.5f, scale_factors[0]); 466 EXPECT_EQ(1.5f, scale_factors[0]);
461 EXPECT_EQ(1.75f, scale_factors[1]); 467 EXPECT_EQ(1.75f, scale_factors[1]);
462 EXPECT_EQ(2.0f, scale_factors[2]); 468 EXPECT_EQ(2.0f, scale_factors[2]);
463 469
464 // 1.25 is falled back to 1.0. 470 // Requesting 1.25 scale factor also falls back to 2.0f and rescale.
471 // However, the image already has the 2.0f data, so it won't fetch again.
465 image.GetRepresentation(1.25f); 472 image.GetRepresentation(1.25f);
473 EXPECT_EQ(0.0f, source->GetLastRequestedScaleAndReset());
474 image_reps = image.image_reps();
475 EXPECT_EQ(4u, image_reps.size());
476 scale_factors = GetSortedScaleFactors(image);
477 EXPECT_EQ(1.25f, scale_factors[0]);
478 EXPECT_EQ(1.5f, scale_factors[1]);
479 EXPECT_EQ(1.75f, scale_factors[2]);
480 EXPECT_EQ(2.0f, scale_factors[3]);
481
482 // 1.20 is falled back to 1.0.
483 image.GetRepresentation(1.20f);
466 EXPECT_EQ(1.0f, source->GetLastRequestedScaleAndReset()); 484 EXPECT_EQ(1.0f, source->GetLastRequestedScaleAndReset());
467 image_reps = image.image_reps(); 485 image_reps = image.image_reps();
468 EXPECT_EQ(5u, image_reps.size()); 486 EXPECT_EQ(6u, image_reps.size());
487 scale_factors = GetSortedScaleFactors(image);
488 EXPECT_EQ(1.0f, scale_factors[0]);
489 EXPECT_EQ(1.2f, scale_factors[1]);
490 EXPECT_EQ(1.25f, scale_factors[2]);
491 EXPECT_EQ(1.5f, scale_factors[3]);
492 EXPECT_EQ(1.75f, scale_factors[4]);
493 EXPECT_EQ(2.0f, scale_factors[5]);
469 494
470 // Scale factor less than 1.0f will be falled back to 1.0f 495 // Scale factor less than 1.0f will be falled back to 1.0f
471 image.GetRepresentation(0.75f); 496 image.GetRepresentation(0.75f);
472 EXPECT_EQ(0.0f, source->GetLastRequestedScaleAndReset()); 497 EXPECT_EQ(0.0f, source->GetLastRequestedScaleAndReset());
473 image_reps = image.image_reps(); 498 image_reps = image.image_reps();
474 EXPECT_EQ(6u, image_reps.size()); 499 EXPECT_EQ(7u, image_reps.size());
475 500
476 scale_factors.clear(); 501 scale_factors = GetSortedScaleFactors(image);
477 for (size_t i = 0; i < image_reps.size(); ++i) {
478 scale_factors.push_back(image_reps[i].scale());
479 }
480 std::sort(scale_factors.begin(), scale_factors.end());
481 EXPECT_EQ(0.75f, scale_factors[0]); 502 EXPECT_EQ(0.75f, scale_factors[0]);
482 EXPECT_EQ(1.0f, scale_factors[1]); 503 EXPECT_EQ(1.0f, scale_factors[1]);
483 EXPECT_EQ(1.25f, scale_factors[2]); 504 EXPECT_EQ(1.2f, scale_factors[2]);
484 EXPECT_EQ(1.5f, scale_factors[3]); 505 EXPECT_EQ(1.25f, scale_factors[3]);
485 EXPECT_EQ(1.75f, scale_factors[4]); 506 EXPECT_EQ(1.5f, scale_factors[4]);
486 EXPECT_EQ(2.0f, scale_factors[5]); 507 EXPECT_EQ(1.75f, scale_factors[5]);
508 EXPECT_EQ(2.0f, scale_factors[6]);
487 509
488 // Scale factor greater than 2.0f is falled back to 2.0f because it's not 510 // Scale factor greater than 2.0f is falled back to 2.0f because it's not
489 // supported. 511 // supported.
490 image.GetRepresentation(3.0f); 512 image.GetRepresentation(3.0f);
491 EXPECT_EQ(0.0f, source->GetLastRequestedScaleAndReset()); 513 EXPECT_EQ(0.0f, source->GetLastRequestedScaleAndReset());
492 image_reps = image.image_reps(); 514 image_reps = image.image_reps();
493 EXPECT_EQ(7u, image_reps.size()); 515 EXPECT_EQ(8u, image_reps.size());
494 } 516 }
495 517
496 TEST_F(ImageSkiaTest, ArbitraryScaleFactorWithMissingResource) { 518 TEST_F(ImageSkiaTest, ArbitraryScaleFactorWithMissingResource) {
497 // Do not test if the ImageSkia doesn't support arbitrary scale factors. 519 // Do not test if the ImageSkia doesn't support arbitrary scale factors.
498 if (!ImageSkia::IsDSFScalingInImageSkiaEnabled()) 520 if (!ImageSkia::IsDSFScalingInImageSkiaEnabled())
499 return; 521 return;
500 522
501 ImageSkia image(new FixedSource( 523 ImageSkia image(new FixedSource(
502 ImageSkiaRep(Size(100, 200), 1.0f)), Size(100, 200)); 524 ImageSkiaRep(Size(100, 200), 1.0f)), Size(100, 200));
503 525
(...skipping 30 matching lines...) Expand all
534 EXPECT_EQ(1U, image.image_reps().size()); 556 EXPECT_EQ(1U, image.image_reps().size());
535 557
536 const ImageSkiaRep& rep12 = image.GetRepresentation(1.2f); 558 const ImageSkiaRep& rep12 = image.GetRepresentation(1.2f);
537 EXPECT_EQ(1.0f, rep12.scale()); 559 EXPECT_EQ(1.0f, rep12.scale());
538 EXPECT_EQ("100x200", rep12.pixel_size().ToString()); 560 EXPECT_EQ("100x200", rep12.pixel_size().ToString());
539 EXPECT_TRUE(rep12.unscaled()); 561 EXPECT_TRUE(rep12.unscaled());
540 EXPECT_EQ(1U, image.image_reps().size()); 562 EXPECT_EQ(1U, image.image_reps().size());
541 } 563 }
542 564
543 } // namespace gfx 565 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/image/image_skia.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698