OLD | NEW |
---|---|
(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 | |
OLD | NEW |