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

Side by Side Diff: chrome/browser/tab_contents/thumbnail_generator_unittest.cc

Issue 7019013: Removal of dependencies on PlatformDevice classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Syncing merge conflicts. Created 9 years, 7 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/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/stringprintf.h" 6 #include "base/stringprintf.h"
7 #include "chrome/browser/history/top_sites.h" 7 #include "chrome/browser/history/top_sites.h"
8 #include "chrome/browser/tab_contents/thumbnail_generator.h" 8 #include "chrome/browser/tab_contents/thumbnail_generator.h"
9 #include "chrome/common/render_messages.h" 9 #include "chrome/common/render_messages.h"
10 #include "chrome/test/testing_profile.h" 10 #include "chrome/test/testing_profile.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 ViewHostMsg_UpdateRect_Params params; 96 ViewHostMsg_UpdateRect_Params params;
97 params.bitmap_rect = gfx::Rect(0, 0, kBitmapWidth, kBitmapHeight); 97 params.bitmap_rect = gfx::Rect(0, 0, kBitmapWidth, kBitmapHeight);
98 params.view_size = params.bitmap_rect.size(); 98 params.view_size = params.bitmap_rect.size();
99 params.copy_rects.push_back(params.bitmap_rect); 99 params.copy_rects.push_back(params.bitmap_rect);
100 params.flags = 0; 100 params.flags = 0;
101 101
102 scoped_ptr<skia::PlatformCanvas> canvas( 102 scoped_ptr<skia::PlatformCanvas> canvas(
103 transport_dib_->GetPlatformCanvas(kBitmapWidth, kBitmapHeight)); 103 transport_dib_->GetPlatformCanvas(kBitmapWidth, kBitmapHeight));
104 switch (type) { 104 switch (type) {
105 case TRANSPORT_BLACK: 105 case TRANSPORT_BLACK:
106 canvas->getTopPlatformDevice().accessBitmap(true).eraseARGB( 106 skia::GetTopDevice(*canvas)->accessBitmap(true).eraseARGB(
107 0xFF, 0, 0, 0); 107 0xFF, 0, 0, 0);
108 break; 108 break;
109 case TRANSPORT_WHITE: 109 case TRANSPORT_WHITE:
110 canvas->getTopPlatformDevice().accessBitmap(true).eraseARGB( 110 skia::GetTopDevice(*canvas)->accessBitmap(true).eraseARGB(
111 0xFF, 0xFF, 0xFF, 0xFF); 111 0xFF, 0xFF, 0xFF, 0xFF);
112 break; 112 break;
113 case TRANSPORT_OTHER: 113 case TRANSPORT_OTHER:
114 default: 114 default:
115 NOTREACHED(); 115 NOTREACHED();
116 break; 116 break;
117 } 117 }
118 118
119 params.bitmap = transport_dib_->id(); 119 params.bitmap = transport_dib_->id();
120 120
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 EXPECT_DOUBLE_EQ(1.0, ThumbnailGenerator::CalculateBoringScore(&bitmap)); 204 EXPECT_DOUBLE_EQ(1.0, ThumbnailGenerator::CalculateBoringScore(&bitmap));
205 } 205 }
206 206
207 TEST(ThumbnailGeneratorSimpleTest, CalculateBoringScore_SingleColor) { 207 TEST(ThumbnailGeneratorSimpleTest, CalculateBoringScore_SingleColor) {
208 const SkColor kBlack = SkColorSetRGB(0, 0, 0); 208 const SkColor kBlack = SkColorSetRGB(0, 0, 0);
209 const gfx::Size kSize(20, 10); 209 const gfx::Size kSize(20, 10);
210 gfx::CanvasSkia canvas(kSize.width(), kSize.height(), true); 210 gfx::CanvasSkia canvas(kSize.width(), kSize.height(), true);
211 // Fill all pixesl in black. 211 // Fill all pixesl in black.
212 canvas.FillRectInt(kBlack, 0, 0, kSize.width(), kSize.height()); 212 canvas.FillRectInt(kBlack, 0, 0, kSize.width(), kSize.height());
213 213
214 SkBitmap bitmap = canvas.getTopPlatformDevice().accessBitmap(false); 214 SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
215 // The thumbnail should deserve the highest boring score. 215 // The thumbnail should deserve the highest boring score.
216 EXPECT_DOUBLE_EQ(1.0, ThumbnailGenerator::CalculateBoringScore(&bitmap)); 216 EXPECT_DOUBLE_EQ(1.0, ThumbnailGenerator::CalculateBoringScore(&bitmap));
217 } 217 }
218 218
219 TEST(ThumbnailGeneratorSimpleTest, CalculateBoringScore_TwoColors) { 219 TEST(ThumbnailGeneratorSimpleTest, CalculateBoringScore_TwoColors) {
220 const SkColor kBlack = SkColorSetRGB(0, 0, 0); 220 const SkColor kBlack = SkColorSetRGB(0, 0, 0);
221 const SkColor kWhite = SkColorSetRGB(0xFF, 0xFF, 0xFF); 221 const SkColor kWhite = SkColorSetRGB(0xFF, 0xFF, 0xFF);
222 const gfx::Size kSize(20, 10); 222 const gfx::Size kSize(20, 10);
223 223
224 gfx::CanvasSkia canvas(kSize.width(), kSize.height(), true); 224 gfx::CanvasSkia canvas(kSize.width(), kSize.height(), true);
225 // Fill all pixesl in black. 225 // Fill all pixesl in black.
226 canvas.FillRectInt(kBlack, 0, 0, kSize.width(), kSize.height()); 226 canvas.FillRectInt(kBlack, 0, 0, kSize.width(), kSize.height());
227 // Fill the left half pixels in white. 227 // Fill the left half pixels in white.
228 canvas.FillRectInt(kWhite, 0, 0, kSize.width() / 2, kSize.height()); 228 canvas.FillRectInt(kWhite, 0, 0, kSize.width() / 2, kSize.height());
229 229
230 SkBitmap bitmap = canvas.getTopPlatformDevice().accessBitmap(false); 230 SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
231 ASSERT_EQ(kSize.width(), bitmap.width()); 231 ASSERT_EQ(kSize.width(), bitmap.width());
232 ASSERT_EQ(kSize.height(), bitmap.height()); 232 ASSERT_EQ(kSize.height(), bitmap.height());
233 // The thumbnail should be less boring because two colors are used. 233 // The thumbnail should be less boring because two colors are used.
234 EXPECT_DOUBLE_EQ(0.5, ThumbnailGenerator::CalculateBoringScore(&bitmap)); 234 EXPECT_DOUBLE_EQ(0.5, ThumbnailGenerator::CalculateBoringScore(&bitmap));
235 } 235 }
236 236
237 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_TallerThanWide) { 237 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_TallerThanWide) {
238 // The input bitmap is vertically long. 238 // The input bitmap is vertically long.
239 gfx::CanvasSkia canvas(40, 90, true); 239 gfx::CanvasSkia canvas(40, 90, true);
240 const SkBitmap bitmap = canvas.getTopPlatformDevice().accessBitmap(false); 240 const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
241 241
242 // The desired size is square. 242 // The desired size is square.
243 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped; 243 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
244 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap( 244 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap(
245 bitmap, 10, 10, &clip_result); 245 bitmap, 10, 10, &clip_result);
246 // The clipped bitmap should be square. 246 // The clipped bitmap should be square.
247 EXPECT_EQ(40, clipped_bitmap.width()); 247 EXPECT_EQ(40, clipped_bitmap.width());
248 EXPECT_EQ(40, clipped_bitmap.height()); 248 EXPECT_EQ(40, clipped_bitmap.height());
249 // The input was taller than wide. 249 // The input was taller than wide.
250 EXPECT_EQ(ThumbnailGenerator::kTallerThanWide, clip_result); 250 EXPECT_EQ(ThumbnailGenerator::kTallerThanWide, clip_result);
251 } 251 }
252 252
253 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_WiderThanTall) { 253 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_WiderThanTall) {
254 // The input bitmap is horizontally long. 254 // The input bitmap is horizontally long.
255 gfx::CanvasSkia canvas(90, 40, true); 255 gfx::CanvasSkia canvas(90, 40, true);
256 const SkBitmap bitmap = canvas.getTopPlatformDevice().accessBitmap(false); 256 const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
257 257
258 // The desired size is square. 258 // The desired size is square.
259 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped; 259 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
260 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap( 260 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap(
261 bitmap, 10, 10, &clip_result); 261 bitmap, 10, 10, &clip_result);
262 // The clipped bitmap should be square. 262 // The clipped bitmap should be square.
263 EXPECT_EQ(40, clipped_bitmap.width()); 263 EXPECT_EQ(40, clipped_bitmap.width());
264 EXPECT_EQ(40, clipped_bitmap.height()); 264 EXPECT_EQ(40, clipped_bitmap.height());
265 // The input was wider than tall. 265 // The input was wider than tall.
266 EXPECT_EQ(ThumbnailGenerator::kWiderThanTall, clip_result); 266 EXPECT_EQ(ThumbnailGenerator::kWiderThanTall, clip_result);
267 } 267 }
268 268
269 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_NotClipped) { 269 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_NotClipped) {
270 // The input bitmap is square. 270 // The input bitmap is square.
271 gfx::CanvasSkia canvas(40, 40, true); 271 gfx::CanvasSkia canvas(40, 40, true);
272 const SkBitmap bitmap = canvas.getTopPlatformDevice().accessBitmap(false); 272 const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
273 273
274 // The desired size is square. 274 // The desired size is square.
275 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped; 275 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
276 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap( 276 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap(
277 bitmap, 10, 10, &clip_result); 277 bitmap, 10, 10, &clip_result);
278 // The clipped bitmap should be square. 278 // The clipped bitmap should be square.
279 EXPECT_EQ(40, clipped_bitmap.width()); 279 EXPECT_EQ(40, clipped_bitmap.width());
280 EXPECT_EQ(40, clipped_bitmap.height()); 280 EXPECT_EQ(40, clipped_bitmap.height());
281 // There was no need to clip. 281 // There was no need to clip.
282 EXPECT_EQ(ThumbnailGenerator::kNotClipped, clip_result); 282 EXPECT_EQ(ThumbnailGenerator::kNotClipped, clip_result);
283 } 283 }
284 284
285 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_NonSquareOutput) { 285 TEST(ThumbnailGeneratorSimpleTest, GetClippedBitmap_NonSquareOutput) {
286 // The input bitmap is square. 286 // The input bitmap is square.
287 gfx::CanvasSkia canvas(40, 40, true); 287 gfx::CanvasSkia canvas(40, 40, true);
288 const SkBitmap bitmap = canvas.getTopPlatformDevice().accessBitmap(false); 288 const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
289 289
290 // The desired size is horizontally long. 290 // The desired size is horizontally long.
291 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped; 291 ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
292 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap( 292 SkBitmap clipped_bitmap = ThumbnailGenerator::GetClippedBitmap(
293 bitmap, 20, 10, &clip_result); 293 bitmap, 20, 10, &clip_result);
294 // The clipped bitmap should have the same aspect ratio of the desired size. 294 // The clipped bitmap should have the same aspect ratio of the desired size.
295 EXPECT_EQ(40, clipped_bitmap.width()); 295 EXPECT_EQ(40, clipped_bitmap.width());
296 EXPECT_EQ(20, clipped_bitmap.height()); 296 EXPECT_EQ(20, clipped_bitmap.height());
297 // The input was taller than wide. 297 // The input was taller than wide.
298 EXPECT_EQ(ThumbnailGenerator::kTallerThanWide, clip_result); 298 EXPECT_EQ(ThumbnailGenerator::kTallerThanWide, clip_result);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 good_score.at_top = true; 387 good_score.at_top = true;
388 good_score.good_clipping = true; 388 good_score.good_clipping = true;
389 good_score.boring_score = 0.0; 389 good_score.boring_score = 0.0;
390 top_sites->AddKnownURL(kGoodURL, good_score); 390 top_sites->AddKnownURL(kGoodURL, good_score);
391 391
392 // Should be false, as the existing thumbnail is good enough (i.e. don't 392 // Should be false, as the existing thumbnail is good enough (i.e. don't
393 // need to replace the existing thumbnail which is new and good). 393 // need to replace the existing thumbnail which is new and good).
394 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail( 394 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail(
395 &profile, top_sites.get(), kGoodURL)); 395 &profile, top_sites.get(), kGoodURL));
396 } 396 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/thumbnail_generator.cc ('k') | chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698