Chromium Code Reviews| 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 |