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

Side by Side Diff: cc/quads/nine_patch_generator_unittest.cc

Issue 2591863003: Use nine-patch resource for drawing Aura overlay scrollbar thumb. (Closed)
Patch Set: Rename to painted_overlay_scrollbar_layer + rudimentary tests Created 3 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
OLDNEW
(Empty)
1 // Copyright 2017 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 "cc/quads/nine_patch_generator.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/gfx/geometry/rect.h"
9 #include "ui/gfx/geometry/size.h"
10
11 namespace cc {
12 namespace {
13
14 TEST(NinePatchGeneratorTest, SetLayoutReturnsChanged) {
15 NinePatchGenerator quad_generator;
16
17 EXPECT_TRUE(quad_generator.SetLayout(
18 gfx::Size(10, 10), gfx::Size(10, 10), gfx::Rect(1, 1, 8, 8),
19 gfx::Rect(1, 1, 2, 2), gfx::Rect(), true));
20
21 EXPECT_FALSE(quad_generator.SetLayout(
22 gfx::Size(10, 10), gfx::Size(10, 10), gfx::Rect(1, 1, 8, 8),
23 gfx::Rect(1, 1, 2, 2), gfx::Rect(), true));
24
25 EXPECT_TRUE(quad_generator.SetLayout(
26 gfx::Size(10, 10), gfx::Size(10, 10), gfx::Rect(1, 1, 8, 8),
27 gfx::Rect(1, 1, 2, 2), gfx::Rect(), false));
28
29 EXPECT_FALSE(quad_generator.SetLayout(
30 gfx::Size(10, 10), gfx::Size(10, 10), gfx::Rect(1, 1, 8, 8),
31 gfx::Rect(1, 1, 2, 2), gfx::Rect(), false));
32
33 EXPECT_TRUE(quad_generator.SetLayout(
34 gfx::Size(12, 10), gfx::Size(10, 10), gfx::Rect(1, 1, 8, 8),
35 gfx::Rect(1, 1, 2, 2), gfx::Rect(), false));
36 }
37
38 TEST(NinePatchGeneratorTest, BasicGenerate) {
39 NinePatchGenerator quad_generator;
40
41 quad_generator.SetLayout(gfx::Size(10, 10), gfx::Size(10, 10),
42 gfx::Rect(1, 1, 8, 8), gfx::Rect(1, 1, 2, 2),
43 gfx::Rect(), true);
44
45 std::vector<NinePatchGenerator::Patch> patches =
46 quad_generator.GeneratePatches();
47
48 ASSERT_EQ(9u, patches.size());
49
50 // Center.
51 EXPECT_EQ(gfx::RectF(1, 1, 8, 8), patches[8].image_rect);
52 EXPECT_EQ(gfx::RectF(1, 1, 8, 8), patches[8].output_rect);
53 EXPECT_EQ(gfx::RectF(0.1, 0.1, 0.8, 0.8), patches[8].normalized_image_rect);
aelias_OOO_until_Jul13 2017/02/28 23:23:51 According to trybot, this doesn't compile on Windo
bokan 2017/03/01 00:44:21 Fixed
54
55 // Bottom.
56 EXPECT_EQ(gfx::RectF(1, 9, 8, 1), patches[7].image_rect);
57 EXPECT_EQ(gfx::RectF(1, 9, 8, 1), patches[7].output_rect);
58 EXPECT_EQ(gfx::RectF(0.1, 0.9, 0.8, 0.1), patches[7].normalized_image_rect);
59
60 // Right.
61 EXPECT_EQ(gfx::RectF(9, 1, 1, 8), patches[6].image_rect);
62 EXPECT_EQ(gfx::RectF(9, 1, 1, 8), patches[6].output_rect);
63 EXPECT_EQ(gfx::RectF(0.9, 0.1, 0.1, 0.8), patches[6].normalized_image_rect);
64
65 // Left.
66 EXPECT_EQ(gfx::RectF(0, 1, 1, 8), patches[5].image_rect);
67 EXPECT_EQ(gfx::RectF(0, 1, 1, 8), patches[5].output_rect);
68 EXPECT_EQ(gfx::RectF(0, 0.1, 0.1, 0.8), patches[5].normalized_image_rect);
69
70 // Top.
71 EXPECT_EQ(gfx::RectF(1, 0, 8, 1), patches[4].image_rect);
72 EXPECT_EQ(gfx::RectF(1, 0, 8, 1), patches[4].output_rect);
73 EXPECT_EQ(gfx::RectF(0.1, 0, 0.8, 0.1), patches[4].normalized_image_rect);
74
75 // Bottom-right
76 EXPECT_EQ(gfx::RectF(9, 9, 1, 1), patches[3].image_rect);
77 EXPECT_EQ(gfx::RectF(9, 9, 1, 1), patches[3].output_rect);
78 EXPECT_EQ(gfx::RectF(0.9, 0.9, 0.1, 0.1), patches[3].normalized_image_rect);
79
80 // Bottom-left
81 EXPECT_EQ(gfx::RectF(0, 9, 1, 1), patches[2].image_rect);
82 EXPECT_EQ(gfx::RectF(0, 9, 1, 1), patches[2].output_rect);
83 EXPECT_EQ(gfx::RectF(0, 0.9, 0.1, 0.1), patches[2].normalized_image_rect);
84
85 // Top-right
86 EXPECT_EQ(gfx::RectF(9, 0, 1, 1), patches[1].image_rect);
87 EXPECT_EQ(gfx::RectF(9, 0, 1, 1), patches[1].output_rect);
88 EXPECT_EQ(gfx::RectF(0.9, 0, 0.1, 0.1), patches[1].normalized_image_rect);
89
90 // Top-left
91 EXPECT_EQ(gfx::RectF(0, 0, 1, 1), patches[0].image_rect);
92 EXPECT_EQ(gfx::RectF(0, 0, 1, 1), patches[0].output_rect);
93 EXPECT_EQ(gfx::RectF(0.0, 0, 0.1, 0.1), patches[0].normalized_image_rect);
94 }
95
96 TEST(NinePatchGeneratorTest, GenerateNonSymmetricAperture) {
97 NinePatchGenerator quad_generator;
98
99 quad_generator.SetLayout(gfx::Size(10, 10), gfx::Size(10, 10),
100 gfx::Rect(3, 5, 2, 2), gfx::Rect(2, 4, 4, 8),
101 gfx::Rect(), true);
102
103 std::vector<NinePatchGenerator::Patch> patches =
104 quad_generator.GeneratePatches();
105
106 ASSERT_EQ(9u, patches.size());
107
108 // Center.
109 EXPECT_EQ(gfx::RectF(3, 5, 2, 2), patches[8].image_rect);
110 EXPECT_EQ(gfx::RectF(2, 4, 6, 2), patches[8].output_rect);
111 EXPECT_EQ(gfx::RectF(0.3, 0.5, 0.2, 0.2), patches[8].normalized_image_rect);
112
113 // Bottom.
114 EXPECT_EQ(gfx::RectF(3, 7, 2, 3), patches[7].image_rect);
115 EXPECT_EQ(gfx::RectF(2, 6, 6, 4), patches[7].output_rect);
116 EXPECT_EQ(gfx::RectF(0.3, 0.7, 0.2, 0.3), patches[7].normalized_image_rect);
117
118 // Right.
119 EXPECT_EQ(gfx::RectF(5, 5, 5, 2), patches[6].image_rect);
120 EXPECT_EQ(gfx::RectF(8, 4, 2, 2), patches[6].output_rect);
121 EXPECT_EQ(gfx::RectF(0.5, 0.5, 0.5, 0.2), patches[6].normalized_image_rect);
122
123 // Left.
124 EXPECT_EQ(gfx::RectF(0, 5, 3, 2), patches[5].image_rect);
125 EXPECT_EQ(gfx::RectF(0, 4, 2, 2), patches[5].output_rect);
126 EXPECT_EQ(gfx::RectF(0, 0.5, 0.3, 0.2), patches[5].normalized_image_rect);
127
128 // Top.
129 EXPECT_EQ(gfx::RectF(3, 0, 2, 5), patches[4].image_rect);
130 EXPECT_EQ(gfx::RectF(2, 0, 6, 4), patches[4].output_rect);
131 EXPECT_EQ(gfx::RectF(0.3, 0, 0.2, 0.5), patches[4].normalized_image_rect);
132
133 // Bottom-right
134 EXPECT_EQ(gfx::RectF(5, 7, 5, 3), patches[3].image_rect);
135 EXPECT_EQ(gfx::RectF(8, 6, 2, 4), patches[3].output_rect);
136 EXPECT_EQ(gfx::RectF(0.5, 0.7, 0.5, 0.3), patches[3].normalized_image_rect);
137
138 // Bottom-left
139 EXPECT_EQ(gfx::RectF(0, 7, 3, 3), patches[2].image_rect);
140 EXPECT_EQ(gfx::RectF(0, 6, 2, 4), patches[2].output_rect);
141 EXPECT_EQ(gfx::RectF(0, 0.7, 0.3, 0.3), patches[2].normalized_image_rect);
142
143 // Top-right
144 EXPECT_EQ(gfx::RectF(5, 0, 5, 5), patches[1].image_rect);
145 EXPECT_EQ(gfx::RectF(8, 0, 2, 4), patches[1].output_rect);
146 EXPECT_EQ(gfx::RectF(0.5, 0, 0.5, 0.5), patches[1].normalized_image_rect);
147
148 // Top-left
149 EXPECT_EQ(gfx::RectF(0, 0, 3, 5), patches[0].image_rect);
150 EXPECT_EQ(gfx::RectF(0, 0, 2, 4), patches[0].output_rect);
151 EXPECT_EQ(gfx::RectF(0, 0, 0.3, 0.5), patches[0].normalized_image_rect);
152 }
153
154 TEST(NinePatchGeneratorTest, LargerLayerGenerate) {
155 NinePatchGenerator quad_generator;
156
157 quad_generator.SetLayout(gfx::Size(10, 10), gfx::Size(20, 15),
158 gfx::Rect(1, 1, 8, 8), gfx::Rect(1, 1, 2, 2),
159 gfx::Rect(), true);
160
161 std::vector<NinePatchGenerator::Patch> patches =
162 quad_generator.GeneratePatches();
163
164 ASSERT_EQ(9u, patches.size());
165
166 // Center.
167 EXPECT_EQ(gfx::RectF(1, 1, 8, 8), patches[8].image_rect);
168 EXPECT_EQ(gfx::RectF(1, 1, 18, 13), patches[8].output_rect);
169 EXPECT_EQ(gfx::RectF(0.1, 0.1, 0.8, 0.8), patches[8].normalized_image_rect);
170
171 // Bottom.
172 EXPECT_EQ(gfx::RectF(1, 9, 8, 1), patches[7].image_rect);
173 EXPECT_EQ(gfx::RectF(1, 14, 18, 1), patches[7].output_rect);
174 EXPECT_EQ(gfx::RectF(0.1, 0.9, 0.8, 0.1), patches[7].normalized_image_rect);
175
176 // Right.
177 EXPECT_EQ(gfx::RectF(9, 1, 1, 8), patches[6].image_rect);
178 EXPECT_EQ(gfx::RectF(19, 1, 1, 13), patches[6].output_rect);
179 EXPECT_EQ(gfx::RectF(0.9, 0.1, 0.1, 0.8), patches[6].normalized_image_rect);
180
181 // Left.
182 EXPECT_EQ(gfx::RectF(0, 1, 1, 8), patches[5].image_rect);
183 EXPECT_EQ(gfx::RectF(0, 1, 1, 13), patches[5].output_rect);
184 EXPECT_EQ(gfx::RectF(0, 0.1, 0.1, 0.8), patches[5].normalized_image_rect);
185
186 // Top.
187 EXPECT_EQ(gfx::RectF(1, 0, 8, 1), patches[4].image_rect);
188 EXPECT_EQ(gfx::RectF(1, 0, 18, 1), patches[4].output_rect);
189 EXPECT_EQ(gfx::RectF(0.1, 0, 0.8, 0.1), patches[4].normalized_image_rect);
190
191 // Bottom-right
192 EXPECT_EQ(gfx::RectF(9, 9, 1, 1), patches[3].image_rect);
193 EXPECT_EQ(gfx::RectF(19, 14, 1, 1), patches[3].output_rect);
194 EXPECT_EQ(gfx::RectF(0.9, 0.9, 0.1, 0.1), patches[3].normalized_image_rect);
195
196 // Bottom-left
197 EXPECT_EQ(gfx::RectF(0, 9, 1, 1), patches[2].image_rect);
198 EXPECT_EQ(gfx::RectF(0, 14, 1, 1), patches[2].output_rect);
199 EXPECT_EQ(gfx::RectF(0, 0.9, 0.1, 0.1), patches[2].normalized_image_rect);
200
201 // Top-right
202 EXPECT_EQ(gfx::RectF(9, 0, 1, 1), patches[1].image_rect);
203 EXPECT_EQ(gfx::RectF(19, 0, 1, 1), patches[1].output_rect);
204 EXPECT_EQ(gfx::RectF(0.9, 0, 0.1, 0.1), patches[1].normalized_image_rect);
205
206 // Top-left
207 EXPECT_EQ(gfx::RectF(0, 0, 1, 1), patches[0].image_rect);
208 EXPECT_EQ(gfx::RectF(0, 0, 1, 1), patches[0].output_rect);
209 EXPECT_EQ(gfx::RectF(0.0, 0, 0.1, 0.1), patches[0].normalized_image_rect);
210 }
211
212 } // namespace
213 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698