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

Side by Side Diff: skia/ext/analysis_canvas_unittest.cc

Issue 12316084: cc: Consolidate the analysis_canvas operations (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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
« skia/ext/analysis_canvas.cc ('K') | « skia/ext/analysis_canvas.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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/compiler_specific.h"
6 #include "skia/ext/analysis_canvas.h"
7
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace skia {
11
12 TEST(AnalysisCanvasTest, EmptyCanvas) {
13 SkBitmap emptyBitmap;
14 emptyBitmap.setConfig(SkBitmap::kNo_Config, 255, 255);
15 skia::AnalysisDevice device(emptyBitmap);
16 skia::AnalysisCanvas canvas(&device);
17
18 SkColor color;
19 EXPECT_FALSE(canvas.getColorIfSolid(&color));
20 EXPECT_FALSE(canvas.isTransparent());
21 EXPECT_TRUE(canvas.isCheap());
22 }
23
24 TEST(AnalysisCanvasTest, ClearCanvas) {
25 SkBitmap emptyBitmap;
26 emptyBitmap.setConfig(SkBitmap::kNo_Config, 255, 255);
27 skia::AnalysisDevice device(emptyBitmap);
28 skia::AnalysisCanvas canvas(&device);
29
30 // Transparent color
31 SkColor color = SkColorSetARGB(0, 12, 34, 56);
32 canvas.clear(color);
33
34 SkColor outputColor;
35 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
36 EXPECT_TRUE(canvas.isTransparent());
37 EXPECT_TRUE(canvas.isCheap());
38
39 // Solid color
40 color = SkColorSetARGB(255, 65, 43, 21);
41 canvas.clear(color);
42
43 EXPECT_TRUE(canvas.getColorIfSolid(&outputColor));
44 EXPECT_FALSE(canvas.isTransparent());
45 EXPECT_TRUE(canvas.isCheap());
46 EXPECT_EQ(outputColor, color);
47
48 // Translucent color
49 color = SkColorSetARGB(128, 11, 22, 33);
50 canvas.clear(color);
51
52 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
53 EXPECT_FALSE(canvas.isTransparent());
54 EXPECT_TRUE(canvas.isCheap());
55 }
56
57 TEST(AnalysisCanvasTest, ComplexActions) {
58 SkBitmap emptyBitmap;
59 emptyBitmap.setConfig(SkBitmap::kNo_Config, 255, 255);
60 skia::AnalysisDevice device(emptyBitmap);
61 skia::AnalysisCanvas canvas(&device);
62
63 // Draw paint test.
64 SkColor color = SkColorSetARGB(255, 11, 22, 33);
65 SkPaint paint;
66 paint.setColor(color);
67
68 canvas.drawPaint(paint);
69
70 SkColor outputColor;
71 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
Justin Novosad 2013/03/06 14:59:48 Since you intend to come back to this later, you s
72 EXPECT_FALSE(canvas.isTransparent());
73 EXPECT_TRUE(canvas.isCheap());
74
75 // Draw points test.
76 SkPoint points[4] = {
77 SkPoint::Make(0, 0),
78 SkPoint::Make(255, 0),
79 SkPoint::Make(255, 255),
80 SkPoint::Make(0, 255)
81 };
82
83 canvas.drawPoints(SkCanvas::kLines_PointMode, 4, points, paint);
Justin Novosad 2013/03/06 14:59:48 This is not a very effective test because you are
84
85 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
86 EXPECT_FALSE(canvas.isTransparent());
87 EXPECT_TRUE(canvas.isCheap());
88
89 // Draw oval test.
90 canvas.drawOval(SkRect::MakeWH(255, 255), paint);
91
92 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
93 EXPECT_FALSE(canvas.isTransparent());
94 EXPECT_TRUE(canvas.isCheap());
95
96 // Draw bitmap test.
97 SkBitmap secondBitmap;
98 emptyBitmap.setConfig(SkBitmap::kNo_Config, 255, 255);
99 canvas.drawBitmap(secondBitmap, 0, 0);
100
101 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
102 EXPECT_FALSE(canvas.isTransparent());
103 EXPECT_TRUE(canvas.isCheap());
104 }
105
106 TEST(AnalysisCanvasTest, SimpleDrawRect) {
107 SkBitmap emptyBitmap;
108 emptyBitmap.setConfig(SkBitmap::kNo_Config, 255, 255);
109 skia::AnalysisDevice device(emptyBitmap);
110 skia::AnalysisCanvas canvas(&device);
111
112 SkColor color = SkColorSetARGB(255, 11, 22, 33);
113 SkPaint paint;
114 paint.setColor(color);
115 canvas.clipRect(SkRect::MakeWH(255, 255));
116 canvas.drawRect(SkRect::MakeWH(255, 255), paint);
117
118 SkColor outputColor;
119 EXPECT_TRUE(canvas.getColorIfSolid(&outputColor));
120 EXPECT_FALSE(canvas.isTransparent());
121 EXPECT_TRUE(canvas.isCheap());
122 EXPECT_EQ(color, outputColor);
123
124 color = SkColorSetARGB(255, 22, 33, 44);
125 paint.setColor(color);
126 canvas.translate(-128, -128);
127 canvas.drawRect(SkRect::MakeWH(382, 382), paint);
128
129 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
130 EXPECT_FALSE(canvas.isTransparent());
131 EXPECT_TRUE(canvas.isCheap());
132
133 color = SkColorSetARGB(255, 33, 44, 55);
134 paint.setColor(color);
135 canvas.drawRect(SkRect::MakeWH(383, 383), paint);
136
137 EXPECT_TRUE(canvas.getColorIfSolid(&outputColor));
138 EXPECT_FALSE(canvas.isTransparent());
139 EXPECT_TRUE(canvas.isCheap());
140 EXPECT_EQ(color, outputColor);
141
142 color = SkColorSetARGB(0, 0, 0, 0);
143 paint.setColor(color);
144 canvas.drawRect(SkRect::MakeWH(383, 383), paint);
145
146 EXPECT_TRUE(canvas.getColorIfSolid(&outputColor));
147 EXPECT_FALSE(canvas.isTransparent());
148 EXPECT_TRUE(canvas.isCheap());
149 EXPECT_EQ(outputColor, SkColorSetARGB(255, 33, 44, 55));
150
151 color = SkColorSetARGB(128, 128, 128, 128);
152 paint.setColor(color);
153 canvas.drawRect(SkRect::MakeWH(383, 383), paint);
154
155 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
156 EXPECT_FALSE(canvas.isTransparent());
157 EXPECT_TRUE(canvas.isCheap());
158
159 paint.setXfermodeMode(SkXfermode::kClear_Mode);
Justin Novosad 2013/03/06 14:59:48 Should also have a similar test that creates a tra
160 canvas.drawRect(SkRect::MakeWH(382, 382), paint);
161
162 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
163 EXPECT_FALSE(canvas.isTransparent());
164 EXPECT_TRUE(canvas.isCheap());
165
166 canvas.drawRect(SkRect::MakeWH(383, 383), paint);
167
168 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
169 EXPECT_TRUE(canvas.isTransparent());
170 EXPECT_TRUE(canvas.isCheap());
171
172 canvas.translate(128, 128);
173 color = SkColorSetARGB(255, 11, 22, 33);
174 paint.setColor(color);
175 paint.setXfermodeMode(SkXfermode::kSrcOver_Mode);
176 canvas.drawRect(SkRect::MakeWH(255, 255), paint);
177
178 EXPECT_TRUE(canvas.getColorIfSolid(&outputColor));
179 EXPECT_FALSE(canvas.isTransparent());
180 EXPECT_TRUE(canvas.isCheap());
181 EXPECT_EQ(color, outputColor);
182
183 canvas.rotate(50);
Justin Novosad 2013/03/06 14:59:48 Glad to see this covered.
184 canvas.drawRect(SkRect::MakeWH(255, 255), paint);
185
186 EXPECT_FALSE(canvas.getColorIfSolid(&outputColor));
187 EXPECT_FALSE(canvas.isTransparent());
188 EXPECT_TRUE(canvas.isCheap());
189 }
190
191 } // namespace skia
OLDNEW
« skia/ext/analysis_canvas.cc ('K') | « skia/ext/analysis_canvas.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698