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

Side by Side Diff: cc/resources/picture_unittest.cc

Issue 903273002: Update from https://crrev.com/315085 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "cc/resources/picture.h" 5 #include "cc/resources/picture.h"
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "cc/test/fake_content_layer_client.h" 10 #include "cc/test/fake_content_layer_client.h"
(...skipping 26 matching lines...) Expand all
37 tmp.reset(new base::StringValue("abc!@#$%")); 37 tmp.reset(new base::StringValue("abc!@#$%"));
38 scoped_refptr<Picture> invalid_picture = 38 scoped_refptr<Picture> invalid_picture =
39 Picture::CreateFromValue(tmp.get()); 39 Picture::CreateFromValue(tmp.get());
40 EXPECT_FALSE(invalid_picture.get()); 40 EXPECT_FALSE(invalid_picture.get());
41 41
42 // Single full-size rect picture. 42 // Single full-size rect picture.
43 content_layer_client.add_draw_rect(layer_rect, red_paint); 43 content_layer_client.add_draw_rect(layer_rect, red_paint);
44 44
45 scoped_refptr<Picture> one_rect_picture = 45 scoped_refptr<Picture> one_rect_picture =
46 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false, 46 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false,
47 Picture::RECORD_NORMALLY); 47 RecordingSource::RECORD_NORMALLY);
48 scoped_ptr<base::Value> serialized_one_rect(one_rect_picture->AsValue()); 48 scoped_ptr<base::Value> serialized_one_rect(one_rect_picture->AsValue());
49 49
50 // Reconstruct the picture. 50 // Reconstruct the picture.
51 scoped_refptr<Picture> one_rect_picture_check = 51 scoped_refptr<Picture> one_rect_picture_check =
52 Picture::CreateFromValue(serialized_one_rect.get()); 52 Picture::CreateFromValue(serialized_one_rect.get());
53 EXPECT_TRUE(!!one_rect_picture_check.get()); 53 EXPECT_TRUE(!!one_rect_picture_check.get());
54 54
55 // Check for equivalence. 55 // Check for equivalence.
56 unsigned char one_rect_buffer[4 * 100 * 100] = {0}; 56 unsigned char one_rect_buffer[4 * 100 * 100] = {0};
57 DrawPicture(one_rect_buffer, layer_rect, one_rect_picture); 57 DrawPicture(one_rect_buffer, layer_rect, one_rect_picture);
58 unsigned char one_rect_buffer_check[4 * 100 * 100] = {0}; 58 unsigned char one_rect_buffer_check[4 * 100 * 100] = {0};
59 DrawPicture(one_rect_buffer_check, layer_rect, one_rect_picture_check); 59 DrawPicture(one_rect_buffer_check, layer_rect, one_rect_picture_check);
60 60
61 EXPECT_EQ(one_rect_picture->LayerRect(), one_rect_picture_check->LayerRect()); 61 EXPECT_EQ(one_rect_picture->LayerRect(), one_rect_picture_check->LayerRect());
62 EXPECT_EQ(0, memcmp(one_rect_buffer, one_rect_buffer_check, 4 * 100 * 100)); 62 EXPECT_EQ(0, memcmp(one_rect_buffer, one_rect_buffer_check, 4 * 100 * 100));
63 63
64 // Two rect picture. 64 // Two rect picture.
65 content_layer_client.add_draw_rect(gfx::Rect(25, 25, 50, 50), green_paint); 65 content_layer_client.add_draw_rect(gfx::Rect(25, 25, 50, 50), green_paint);
66 66
67 scoped_refptr<Picture> two_rect_picture = 67 scoped_refptr<Picture> two_rect_picture =
68 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false, 68 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false,
69 Picture::RECORD_NORMALLY); 69 RecordingSource::RECORD_NORMALLY);
70 70
71 scoped_ptr<base::Value> serialized_two_rect(two_rect_picture->AsValue()); 71 scoped_ptr<base::Value> serialized_two_rect(two_rect_picture->AsValue());
72 72
73 // Reconstruct the picture. 73 // Reconstruct the picture.
74 scoped_refptr<Picture> two_rect_picture_check = 74 scoped_refptr<Picture> two_rect_picture_check =
75 Picture::CreateFromValue(serialized_two_rect.get()); 75 Picture::CreateFromValue(serialized_two_rect.get());
76 EXPECT_TRUE(!!two_rect_picture_check.get()); 76 EXPECT_TRUE(!!two_rect_picture_check.get());
77 77
78 // Check for equivalence. 78 // Check for equivalence.
79 unsigned char two_rect_buffer[4 * 100 * 100] = {0}; 79 unsigned char two_rect_buffer[4 * 100 * 100] = {0};
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 SkPaint paint; 111 SkPaint paint;
112 content_layer_client.add_draw_bitmap( 112 content_layer_client.add_draw_bitmap(
113 discardable_bitmap[y][x], 113 discardable_bitmap[y][x],
114 gfx::Point(x * 512 + 6, y * 512 + 6), paint); 114 gfx::Point(x * 512 + 6, y * 512 + 6), paint);
115 } 115 }
116 } 116 }
117 } 117 }
118 118
119 scoped_refptr<Picture> picture = 119 scoped_refptr<Picture> picture =
120 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, true, 120 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, true,
121 Picture::RECORD_NORMALLY); 121 RecordingSource::RECORD_NORMALLY);
122 122
123 // Default iterator does not have any pixel refs 123 // Default iterator does not have any pixel refs
124 { 124 {
125 Picture::PixelRefIterator iterator; 125 Picture::PixelRefIterator iterator;
126 EXPECT_FALSE(iterator); 126 EXPECT_FALSE(iterator);
127 } 127 }
128 for (int y = 0; y < 4; ++y) { 128 for (int y = 0; y < 4; ++y) {
129 for (int x = 0; x < 4; ++x) { 129 for (int x = 0; x < 4; ++x) {
130 Picture::PixelRefIterator iterator(gfx::Rect(x * 512, y * 512, 500, 500), 130 Picture::PixelRefIterator iterator(gfx::Rect(x * 512, y * 512, 500, 500),
131 picture.get()); 131 picture.get());
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 SkPaint paint; 206 SkPaint paint;
207 content_layer_client.add_draw_bitmap( 207 content_layer_client.add_draw_bitmap(
208 discardable_bitmap[y][x], 208 discardable_bitmap[y][x],
209 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), paint); 209 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), paint);
210 } 210 }
211 } 211 }
212 } 212 }
213 213
214 scoped_refptr<Picture> picture = 214 scoped_refptr<Picture> picture =
215 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, true, 215 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, true,
216 Picture::RECORD_NORMALLY); 216 RecordingSource::RECORD_NORMALLY);
217 217
218 // Default iterator does not have any pixel refs 218 // Default iterator does not have any pixel refs
219 { 219 {
220 Picture::PixelRefIterator iterator; 220 Picture::PixelRefIterator iterator;
221 EXPECT_FALSE(iterator); 221 EXPECT_FALSE(iterator);
222 } 222 }
223 for (int y = 0; y < 4; ++y) { 223 for (int y = 0; y < 4; ++y) {
224 for (int x = 0; x < 4; ++x) { 224 for (int x = 0; x < 4; ++x) {
225 Picture::PixelRefIterator iterator( 225 Picture::PixelRefIterator iterator(
226 gfx::Rect(1024 + x * 512, y * 512, 500, 500), picture.get()); 226 gfx::Rect(1024 + x * 512, y * 512, 500, 500), picture.get());
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 SkPaint paint; 324 SkPaint paint;
325 content_layer_client.add_draw_bitmap( 325 content_layer_client.add_draw_bitmap(
326 discardable_bitmap[y][x], 326 discardable_bitmap[y][x],
327 gfx::Point(x * 512 + 6, y * 512 + 6), paint); 327 gfx::Point(x * 512 + 6, y * 512 + 6), paint);
328 } 328 }
329 } 329 }
330 } 330 }
331 331
332 scoped_refptr<Picture> picture = 332 scoped_refptr<Picture> picture =
333 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, true, 333 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, true,
334 Picture::RECORD_NORMALLY); 334 RecordingSource::RECORD_NORMALLY);
335 335
336 for (int y = 0; y < 4; ++y) { 336 for (int y = 0; y < 4; ++y) {
337 for (int x = 0; x < 4; ++x) { 337 for (int x = 0; x < 4; ++x) {
338 Picture::PixelRefIterator iterator( 338 Picture::PixelRefIterator iterator(
339 gfx::Rect(x * 512, y * 512 + 256, 1, 1), picture.get()); 339 gfx::Rect(x * 512, y * 512 + 256, 1, 1), picture.get());
340 if ((x + y) & 1) { 340 if ((x + y) & 1) {
341 EXPECT_TRUE(iterator) << x << " " << y; 341 EXPECT_TRUE(iterator) << x << " " << y;
342 EXPECT_TRUE(*iterator == discardable_bitmap[y][x].pixelRef()); 342 EXPECT_TRUE(*iterator == discardable_bitmap[y][x].pixelRef());
343 EXPECT_FALSE(++iterator) << x << " " << y; 343 EXPECT_FALSE(++iterator) << x << " " << y;
344 } else { 344 } else {
(...skipping 22 matching lines...) Expand all
367 // Invalid picture (not a dict). 367 // Invalid picture (not a dict).
368 tmp.reset(new base::StringValue("abc!@#$%")); 368 tmp.reset(new base::StringValue("abc!@#$%"));
369 scoped_refptr<Picture> invalid_picture = 369 scoped_refptr<Picture> invalid_picture =
370 Picture::CreateFromSkpValue(tmp.get()); 370 Picture::CreateFromSkpValue(tmp.get());
371 EXPECT_TRUE(!invalid_picture.get()); 371 EXPECT_TRUE(!invalid_picture.get());
372 372
373 // Single full-size rect picture. 373 // Single full-size rect picture.
374 content_layer_client.add_draw_rect(layer_rect, red_paint); 374 content_layer_client.add_draw_rect(layer_rect, red_paint);
375 scoped_refptr<Picture> one_rect_picture = 375 scoped_refptr<Picture> one_rect_picture =
376 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false, 376 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false,
377 Picture::RECORD_NORMALLY); 377 RecordingSource::RECORD_NORMALLY);
378 scoped_ptr<base::Value> serialized_one_rect( 378 scoped_ptr<base::Value> serialized_one_rect(
379 one_rect_picture->AsValue()); 379 one_rect_picture->AsValue());
380 380
381 const base::DictionaryValue* value = NULL; 381 const base::DictionaryValue* value = NULL;
382 EXPECT_TRUE(serialized_one_rect->GetAsDictionary(&value)); 382 EXPECT_TRUE(serialized_one_rect->GetAsDictionary(&value));
383 383
384 // Decode the picture from base64. 384 // Decode the picture from base64.
385 const base::Value* skp_value; 385 const base::Value* skp_value;
386 EXPECT_TRUE(value->Get("skp64", &skp_value)); 386 EXPECT_TRUE(value->Get("skp64", &skp_value));
387 387
(...skipping 11 matching lines...) Expand all
399 399
400 gfx::Rect layer_rect(100, 200); 400 gfx::Rect layer_rect(100, 200);
401 401
402 gfx::Size tile_grid_size(100, 200); 402 gfx::Size tile_grid_size(100, 200);
403 403
404 FakeContentLayerClient content_layer_client; 404 FakeContentLayerClient content_layer_client;
405 EXPECT_EQ(NULL, content_layer_client.last_canvas()); 405 EXPECT_EQ(NULL, content_layer_client.last_canvas());
406 406
407 scoped_refptr<Picture> picture = 407 scoped_refptr<Picture> picture =
408 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false, 408 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false,
409 Picture::RECORD_NORMALLY); 409 RecordingSource::RECORD_NORMALLY);
410 EXPECT_TRUE(content_layer_client.last_canvas() != NULL); 410 EXPECT_TRUE(content_layer_client.last_canvas() != NULL);
411 EXPECT_EQ(ContentLayerClient::GRAPHICS_CONTEXT_ENABLED, 411 EXPECT_EQ(ContentLayerClient::PAINTING_BEHAVIOR_NORMAL,
412 content_layer_client.last_context_status()); 412 content_layer_client.last_painting_control());
413 EXPECT_TRUE(picture.get()); 413 EXPECT_TRUE(picture.get());
414 414
415 picture = Picture::Create(layer_rect, &content_layer_client, tile_grid_size, 415 picture = Picture::Create(layer_rect, &content_layer_client, tile_grid_size,
416 false, Picture::RECORD_WITH_SK_NULL_CANVAS); 416 false, RecordingSource::RECORD_WITH_SK_NULL_CANVAS);
417 EXPECT_TRUE(content_layer_client.last_canvas() != NULL); 417 EXPECT_TRUE(content_layer_client.last_canvas() != NULL);
418 EXPECT_EQ(ContentLayerClient::GRAPHICS_CONTEXT_ENABLED, 418 EXPECT_EQ(ContentLayerClient::PAINTING_BEHAVIOR_NORMAL,
419 content_layer_client.last_context_status()); 419 content_layer_client.last_painting_control());
420 EXPECT_TRUE(picture.get()); 420 EXPECT_TRUE(picture.get());
421 421
422 picture = Picture::Create(layer_rect, &content_layer_client, tile_grid_size, 422 picture =
423 false, Picture::RECORD_WITH_PAINTING_DISABLED); 423 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false,
424 RecordingSource::RECORD_WITH_PAINTING_DISABLED);
424 EXPECT_TRUE(content_layer_client.last_canvas() != NULL); 425 EXPECT_TRUE(content_layer_client.last_canvas() != NULL);
425 EXPECT_EQ(ContentLayerClient::GRAPHICS_CONTEXT_DISABLED, 426 EXPECT_EQ(ContentLayerClient::DISPLAY_LIST_CONSTRUCTION_DISABLED,
426 content_layer_client.last_context_status()); 427 content_layer_client.last_painting_control());
427 EXPECT_TRUE(picture.get()); 428 EXPECT_TRUE(picture.get());
428 429
429 EXPECT_EQ(3, Picture::RECORDING_MODE_COUNT); 430 picture =
431 Picture::Create(layer_rect, &content_layer_client, tile_grid_size, false,
432 RecordingSource::RECORD_WITH_CACHING_DISABLED);
433 EXPECT_TRUE(content_layer_client.last_canvas() != NULL);
434 EXPECT_EQ(ContentLayerClient::DISPLAY_LIST_CACHING_DISABLED,
435 content_layer_client.last_painting_control());
436 EXPECT_TRUE(picture.get());
437
438 EXPECT_EQ(4, RecordingSource::RECORDING_MODE_COUNT);
430 } 439 }
431 440
432 } // namespace 441 } // namespace
433 } // namespace cc 442 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/picture_pile_unittest.cc ('k') | cc/resources/pixel_buffer_tile_task_worker_pool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698