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

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

Issue 10780010: Introduces ImageSkia::GetRepresentations() for Mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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
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 "third_party/skia/include/core/SkBitmap.h" 7 #include "third_party/skia/include/core/SkBitmap.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/gfx/image/image_skia_rep.h" 9 #include "ui/gfx/image/image_skia_rep.h"
10 #include "ui/gfx/image/image_skia_source.h" 10 #include "ui/gfx/image/image_skia_source.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 virtual ImageSkiaRep GetImageForScale(ui::ScaleFactor scale_factor) OVERRIDE { 45 virtual ImageSkiaRep GetImageForScale(ui::ScaleFactor scale_factor) OVERRIDE {
46 return CreateImage(size_, scale_factor); 46 return CreateImage(size_, scale_factor);
47 } 47 }
48 48
49 private: 49 private:
50 gfx::Size size_; 50 gfx::Size size_;
51 51
52 DISALLOW_COPY_AND_ASSIGN(DynamicSource); 52 DISALLOW_COPY_AND_ASSIGN(DynamicSource);
53 }; 53 };
54 54
55 class NullSource: public ImageSkiaSource {
56 public:
57 NullSource() {
58 }
59
60 ~NullSource() {
oshima 2012/07/17 16:43:21 virtual
61 }
62
63 virtual ImageSkiaRep GetImageForScale(ui::ScaleFactor scale_factor) OVERRIDE {
64 return gfx::ImageSkiaRep();
65 }
66
67 private:
68 DISALLOW_COPY_AND_ASSIGN(NullSource);
69 };
70
55 } // namespace; 71 } // namespace;
56 72
57 typedef testing::Test ImageSkiaTest; 73 typedef testing::Test ImageSkiaTest;
58 74
59 TEST(ImageSkiaTest, FixedSource) { 75 TEST(ImageSkiaTest, FixedSource) {
60 ImageSkiaRep image(CreateImage(Size(100, 200), ui::SCALE_FACTOR_100P)); 76 ImageSkiaRep image(CreateImage(Size(100, 200), ui::SCALE_FACTOR_100P));
61 ImageSkia image_skia(new FixedSource(image), Size(100, 200)); 77 ImageSkia image_skia(new FixedSource(image), Size(100, 200));
62 EXPECT_EQ(0U, image_skia.image_reps().size()); 78 EXPECT_EQ(0U, image_skia.image_reps().size());
63 79
64 const ImageSkiaRep& result_100p = 80 const ImageSkiaRep& result_100p =
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 EXPECT_EQ(2U, image_skia.image_reps().size()); 122 EXPECT_EQ(2U, image_skia.image_reps().size());
107 123
108 // Get the representation again and make sure it doesn't 124 // Get the representation again and make sure it doesn't
109 // generate new image skia rep. 125 // generate new image skia rep.
110 image_skia.GetRepresentation(ui::SCALE_FACTOR_100P); 126 image_skia.GetRepresentation(ui::SCALE_FACTOR_100P);
111 EXPECT_EQ(2U, image_skia.image_reps().size()); 127 EXPECT_EQ(2U, image_skia.image_reps().size());
112 image_skia.GetRepresentation(ui::SCALE_FACTOR_200P); 128 image_skia.GetRepresentation(ui::SCALE_FACTOR_200P);
113 EXPECT_EQ(2U, image_skia.image_reps().size()); 129 EXPECT_EQ(2U, image_skia.image_reps().size());
114 } 130 }
115 131
132 #if defined(OS_MACOSX)
133
134 // Tests that GetRepresentations returns all of the representations in the
135 // image when there are multiple representations for a scale factor.
136 // This currently is the case with ImageLoadingTracker::LoadImages, to
137 // load the application shortcut icon on Mac in particular.
138 TEST(ImageSkiaTest, GetRepresentationsManyRepsPerScaleFactor) {
139 const int kSmallIcon1x = 16;
140 const int kSmallIcon2x = 32;
141 const int kLargeIcon1x = 32;
142
143 ImageSkia image(new NullSource(),
144 gfx::Size(kSmallIcon1x, kSmallIcon1x));
oshima 2012/07/17 16:43:21 will this fit single line?
145 // Simulate a source which loads images on a delay. Upon
146 // GetImageForScaleFactor, it immediately returns null and starts loading
147 // image reps slowly.
148 image.GetRepresentation(ui::SCALE_FACTOR_100P);
149 image.GetRepresentation(ui::SCALE_FACTOR_200P);
150
151 // After a lengthy amount of simulated time, finally loaded image reps.
152 image.AddRepresentation(ImageSkiaRep(
153 gfx::Size(kSmallIcon1x, kSmallIcon1x), ui::SCALE_FACTOR_100P));
154 image.AddRepresentation(ImageSkiaRep(
155 gfx::Size(kSmallIcon2x, kSmallIcon2x), ui::SCALE_FACTOR_200P));
156 image.AddRepresentation(ImageSkiaRep(
157 gfx::Size(kLargeIcon1x, kLargeIcon1x), ui::SCALE_FACTOR_100P));
158
159 std::vector<ImageSkiaRep> image_reps = image.GetRepresentations();
160 EXPECT_EQ(3u, image_reps.size());
161
162 int num_1x = 0;
163 int num_2x = 0;
164 for (size_t i = 0; i < image_reps.size(); ++i) {
165 if (image_reps[i].scale_factor() == ui::SCALE_FACTOR_100P)
166 num_1x++;
167 else if (image_reps[i].scale_factor() == ui::SCALE_FACTOR_200P)
168 num_2x++;
169 }
170 EXPECT_EQ(2, num_1x);
171 EXPECT_EQ(1, num_2x);
172 }
173
174 #endif // OS_MACOSX
175
116 } // namespace gfx 176 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698