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

Side by Side Diff: ui/gfx/image_unittest.cc

Issue 6849030: Add support for multi resolution icons (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added unit test for gfx::Image Created 9 years, 8 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 #include "third_party/skia/include/core/SkBitmap.h" 7 #include "third_party/skia/include/core/SkBitmap.h"
8 #include "ui/gfx/image.h" 8 #include "ui/gfx/image.h"
9 #include "ui/gfx/image_unittest.h" 9 #include "ui/gfx/image_unittest.h"
10 10
(...skipping 16 matching lines...) Expand all
27 class ImageTest : public testing::Test { 27 class ImageTest : public testing::Test {
28 public: 28 public:
29 size_t GetRepCount(const gfx::Image& image) { 29 size_t GetRepCount(const gfx::Image& image) {
30 return image.representations_.size(); 30 return image.representations_.size();
31 } 31 }
32 }; 32 };
33 33
34 namespace gt = gfx::test; 34 namespace gt = gfx::test;
35 35
36 TEST_F(ImageTest, SkiaToSkia) { 36 TEST_F(ImageTest, SkiaToSkia) {
37 gfx::Image image(gt::CreateBitmap()); 37 gfx::Image image(gt::CreateBitmap(25, 25));
38 const SkBitmap* bitmap = static_cast<const SkBitmap*>(image); 38 const SkBitmap* bitmap = static_cast<const SkBitmap*>(image);
39 EXPECT_TRUE(bitmap); 39 EXPECT_TRUE(bitmap);
40 EXPECT_FALSE(bitmap->isNull()); 40 EXPECT_FALSE(bitmap->isNull());
41 EXPECT_EQ(1U, GetRepCount(image)); 41 EXPECT_EQ(1U, GetRepCount(image));
42 42
43 // Make sure double conversion doesn't happen. 43 // Make sure double conversion doesn't happen.
44 bitmap = static_cast<const SkBitmap*>(image); 44 bitmap = static_cast<const SkBitmap*>(image);
45 EXPECT_TRUE(bitmap); 45 EXPECT_TRUE(bitmap);
46 EXPECT_FALSE(bitmap->isNull()); 46 EXPECT_FALSE(bitmap->isNull());
47 EXPECT_EQ(1U, GetRepCount(image)); 47 EXPECT_EQ(1U, GetRepCount(image));
48 48
49 EXPECT_TRUE(image.HasRepresentation(gfx::Image::kSkBitmapRep)); 49 EXPECT_TRUE(image.HasRepresentation(gfx::Image::kSkBitmapRep));
50 if (!kUsesSkiaNatively) 50 if (!kUsesSkiaNatively)
51 EXPECT_FALSE(image.HasRepresentation(gt::GetPlatformRepresentationType())); 51 EXPECT_FALSE(image.HasRepresentation(gt::GetPlatformRepresentationType()));
52 } 52 }
53 53
54 TEST_F(ImageTest, SkiaToSkiaRef) { 54 TEST_F(ImageTest, SkiaToSkiaRef) {
55 gfx::Image image(gt::CreateBitmap()); 55 gfx::Image image(gt::CreateBitmap(25, 25));
56 56
57 const SkBitmap& bitmap = static_cast<const SkBitmap&>(image); 57 const SkBitmap& bitmap = static_cast<const SkBitmap&>(image);
58 EXPECT_FALSE(bitmap.isNull()); 58 EXPECT_FALSE(bitmap.isNull());
59 EXPECT_EQ(1U, GetRepCount(image)); 59 EXPECT_EQ(1U, GetRepCount(image));
60 60
61 const SkBitmap* bitmap1 = static_cast<const SkBitmap*>(image); 61 const SkBitmap* bitmap1 = static_cast<const SkBitmap*>(image);
62 EXPECT_FALSE(bitmap1->isNull()); 62 EXPECT_FALSE(bitmap1->isNull());
63 EXPECT_EQ(1U, GetRepCount(image)); 63 EXPECT_EQ(1U, GetRepCount(image));
64 64
65 EXPECT_TRUE(image.HasRepresentation(gfx::Image::kSkBitmapRep)); 65 EXPECT_TRUE(image.HasRepresentation(gfx::Image::kSkBitmapRep));
66 if (!kUsesSkiaNatively) 66 if (!kUsesSkiaNatively)
67 EXPECT_FALSE(image.HasRepresentation(gt::GetPlatformRepresentationType())); 67 EXPECT_FALSE(image.HasRepresentation(gt::GetPlatformRepresentationType()));
68 } 68 }
69 69
70 TEST_F(ImageTest, SkiaToPlatform) { 70 TEST_F(ImageTest, SkiaToPlatform) {
71 gfx::Image image(gt::CreateBitmap()); 71 gfx::Image image(gt::CreateBitmap(25, 25));
72 const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U; 72 const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U;
73 73
74 EXPECT_TRUE(image.HasRepresentation(gfx::Image::kSkBitmapRep)); 74 EXPECT_TRUE(image.HasRepresentation(gfx::Image::kSkBitmapRep));
75 if (!kUsesSkiaNatively) 75 if (!kUsesSkiaNatively)
76 EXPECT_FALSE(image.HasRepresentation(gt::GetPlatformRepresentationType())); 76 EXPECT_FALSE(image.HasRepresentation(gt::GetPlatformRepresentationType()));
77 77
78 EXPECT_TRUE(static_cast<gt::PlatformImage>(image)); 78 EXPECT_TRUE(static_cast<gt::PlatformImage>(image));
79 EXPECT_EQ(kRepCount, GetRepCount(image)); 79 EXPECT_EQ(kRepCount, GetRepCount(image));
80 80
81 const SkBitmap& bitmap = static_cast<const SkBitmap&>(image); 81 const SkBitmap& bitmap = static_cast<const SkBitmap&>(image);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 const SkBitmap& bitmap(image); 124 const SkBitmap& bitmap(image);
125 125
126 SkAutoLockPixels auto_lock(bitmap); 126 SkAutoLockPixels auto_lock(bitmap);
127 uint32_t* pixel = bitmap.getAddr32(10, 10); 127 uint32_t* pixel = bitmap.getAddr32(10, 10);
128 EXPECT_EQ(SK_ColorRED, *pixel); 128 EXPECT_EQ(SK_ColorRED, *pixel);
129 } 129 }
130 130
131 TEST_F(ImageTest, SwapRepresentations) { 131 TEST_F(ImageTest, SwapRepresentations) {
132 const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U; 132 const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U;
133 133
134 gfx::Image image1(gt::CreateBitmap()); 134 gfx::Image image1(gt::CreateBitmap(25, 25));
135 const SkBitmap* bitmap1 = image1; 135 const SkBitmap* bitmap1 = image1;
136 EXPECT_EQ(1U, GetRepCount(image1)); 136 EXPECT_EQ(1U, GetRepCount(image1));
137 137
138 gfx::Image image2(gt::CreatePlatformImage()); 138 gfx::Image image2(gt::CreatePlatformImage());
139 const SkBitmap* bitmap2 = image2; 139 const SkBitmap* bitmap2 = image2;
140 gt::PlatformImage platform_image = static_cast<gt::PlatformImage>(image2); 140 gt::PlatformImage platform_image = static_cast<gt::PlatformImage>(image2);
141 EXPECT_EQ(kRepCount, GetRepCount(image2)); 141 EXPECT_EQ(kRepCount, GetRepCount(image2));
142 142
143 image1.SwapRepresentations(&image2); 143 image1.SwapRepresentations(&image2);
144 144
145 EXPECT_EQ(bitmap2, static_cast<const SkBitmap*>(image1)); 145 EXPECT_EQ(bitmap2, static_cast<const SkBitmap*>(image1));
146 EXPECT_EQ(platform_image, static_cast<gt::PlatformImage>(image1)); 146 EXPECT_EQ(platform_image, static_cast<gt::PlatformImage>(image1));
147 EXPECT_EQ(bitmap1, static_cast<const SkBitmap*>(image2)); 147 EXPECT_EQ(bitmap1, static_cast<const SkBitmap*>(image2));
148 EXPECT_EQ(kRepCount, GetRepCount(image1)); 148 EXPECT_EQ(kRepCount, GetRepCount(image1));
149 EXPECT_EQ(1U, GetRepCount(image2)); 149 EXPECT_EQ(1U, GetRepCount(image2));
150 } 150 }
151 151
152 TEST_F(ImageTest, MultiResolutionSkBitmap) {
153 const int width1 = 10;
154 const int height1 = 12;
155 const int width2 = 20;
156 const int height2 = 24;
157
158 std::vector<const SkBitmap*> bitmaps;
159 bitmaps.push_back(gt::CreateBitmap(width1, height1));
160 bitmaps.push_back(gt::CreateBitmap(width2, height2));
161 gfx::Image image(bitmaps);
162
163 EXPECT_EQ(1u, GetRepCount(image));
164 EXPECT_EQ(2u, image.GetNumberOfSkBitmaps());
165
166 const SkBitmap* bitmap1 = image.GetSkBitmapAtIndex(0);
167 EXPECT_TRUE(bitmap1);
168 const SkBitmap* bitmap2 = image.GetSkBitmapAtIndex(1);
169 EXPECT_TRUE(bitmap2);
170
171 if (bitmap1->width() == width1) {
172 EXPECT_EQ(bitmap1->height(), height1);
173 EXPECT_EQ(bitmap2->width(), width2);
174 EXPECT_EQ(bitmap2->height(), height2);
175 } else {
176 EXPECT_EQ(bitmap1->width(), width2);
177 EXPECT_EQ(bitmap1->height(), height2);
178 EXPECT_EQ(bitmap2->width(), width1);
179 EXPECT_EQ(bitmap2->height(), height1);
180 }
181
182 // Sanity check.
183 EXPECT_EQ(1u, GetRepCount(image));
184 EXPECT_EQ(2u, image.GetNumberOfSkBitmaps());
185 }
186
152 // Integration tests with UI toolkit frameworks require linking against the 187 // Integration tests with UI toolkit frameworks require linking against the
153 // Views library and cannot be here (gfx_unittests doesn't include it). They 188 // Views library and cannot be here (gfx_unittests doesn't include it). They
154 // instead live in /chrome/browser/ui/tests/ui_gfx_image_unittest.cc. 189 // instead live in /chrome/browser/ui/tests/ui_gfx_image_unittest.cc.
155 190
156 } // namespace 191 } // namespace
OLDNEW
« ui/gfx/image_unittest.h ('K') | « ui/gfx/image_unittest.h ('k') | ui/ui_unittests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698