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

Side by Side Diff: third_party/WebKit/Source/core/paint/NinePieceImageGridTest.cpp

Issue 1901103002: Compensate for source scaling in hidpi mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add DOCTYPE to added test. Created 4 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "core/paint/NinePieceImageGrid.h" 5 #include "core/paint/NinePieceImageGrid.h"
6 6
7 #include "core/css/CSSGradientValue.h" 7 #include "core/css/CSSGradientValue.h"
8 #include "core/layout/LayoutTestHelper.h" 8 #include "core/layout/LayoutTestHelper.h"
9 #include "core/style/ComputedStyle.h" 9 #include "core/style/ComputedStyle.h"
10 #include "core/style/NinePieceImage.h" 10 #include "core/style/NinePieceImage.h"
(...skipping 24 matching lines...) Expand all
35 { 35 {
36 NinePieceImage ninePiece; 36 NinePieceImage ninePiece;
37 ninePiece.setImage(generatedImage()); 37 ninePiece.setImage(generatedImage());
38 38
39 IntSize imageSize(100, 100); 39 IntSize imageSize(100, 100);
40 IntRect borderImageArea(0, 0, 100, 100); 40 IntRect borderImageArea(0, 0, 100, 100);
41 IntRectOutsets borderWidths(0, 0, 0, 0); 41 IntRectOutsets borderWidths(0, 0, 0, 0);
42 42
43 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths); 43 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths);
44 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) { 44 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) {
45 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece); 45 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece, 1);
46 EXPECT_FALSE(drawInfo.isDrawable); 46 EXPECT_FALSE(drawInfo.isDrawable);
47 } 47 }
48 } 48 }
49 49
50 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_AllDrawable) 50 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_AllDrawable)
51 { 51 {
52 NinePieceImage ninePiece; 52 NinePieceImage ninePiece;
53 ninePiece.setImage(generatedImage()); 53 ninePiece.setImage(generatedImage());
54 ninePiece.setImageSlices(LengthBox(10, 10, 10, 10)); 54 ninePiece.setImageSlices(LengthBox(10, 10, 10, 10));
55 ninePiece.setFill(true); 55 ninePiece.setFill(true);
56 56
57 IntSize imageSize(100, 100); 57 IntSize imageSize(100, 100);
58 IntRect borderImageArea(0, 0, 100, 100); 58 IntRect borderImageArea(0, 0, 100, 100);
59 IntRectOutsets borderWidths(10, 10, 10, 10); 59 IntRectOutsets borderWidths(10, 10, 10, 10);
60 60
61 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths); 61 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths);
62 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) { 62 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) {
63 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece); 63 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece, 1);
64 EXPECT_TRUE(drawInfo.isDrawable); 64 EXPECT_TRUE(drawInfo.isDrawable);
65 } 65 }
66 } 66 }
67 67
68 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_NoFillMiddleNotDrawable) 68 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_NoFillMiddleNotDrawable)
69 { 69 {
70 NinePieceImage ninePiece; 70 NinePieceImage ninePiece;
71 ninePiece.setImage(generatedImage()); 71 ninePiece.setImage(generatedImage());
72 ninePiece.setImageSlices(LengthBox(10, 10, 10, 10)); 72 ninePiece.setImageSlices(LengthBox(10, 10, 10, 10));
73 ninePiece.setFill(false); // default 73 ninePiece.setFill(false); // default
74 74
75 IntSize imageSize(100, 100); 75 IntSize imageSize(100, 100);
76 IntRect borderImageArea(0, 0, 100, 100); 76 IntRect borderImageArea(0, 0, 100, 100);
77 IntRectOutsets borderWidths(10, 10, 10, 10); 77 IntRectOutsets borderWidths(10, 10, 10, 10);
78 78
79 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths); 79 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths);
80 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) { 80 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) {
81 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece); 81 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece, 1);
82 if (piece != MiddlePiece) 82 if (piece != MiddlePiece)
83 EXPECT_TRUE(drawInfo.isDrawable); 83 EXPECT_TRUE(drawInfo.isDrawable);
84 else 84 else
85 EXPECT_FALSE(drawInfo.isDrawable); 85 EXPECT_FALSE(drawInfo.isDrawable);
86 } 86 }
87 } 87 }
88 88
89 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_TopLeftDrawable) 89 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_TopLeftDrawable)
90 { 90 {
91 NinePieceImage ninePiece; 91 NinePieceImage ninePiece;
(...skipping 10 matching lines...) Expand all
102 } testCases[] = { 102 } testCases[] = {
103 { IntRectOutsets(0, 0, 0, 0), false }, 103 { IntRectOutsets(0, 0, 0, 0), false },
104 { IntRectOutsets(10, 0, 0, 0), false }, 104 { IntRectOutsets(10, 0, 0, 0), false },
105 { IntRectOutsets(0, 0, 0, 10), false }, 105 { IntRectOutsets(0, 0, 0, 10), false },
106 { IntRectOutsets(10, 0, 0, 10), true }, 106 { IntRectOutsets(10, 0, 0, 10), true },
107 }; 107 };
108 108
109 for (const auto& testCase : testCases) { 109 for (const auto& testCase : testCases) {
110 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borde rImageArea, testCase.borderWidths); 110 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borde rImageArea, testCase.borderWidths);
111 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) { 111 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) {
112 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDr awInfo(piece); 112 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDr awInfo(piece, 1);
113 if (piece == TopLeftPiece) 113 if (piece == TopLeftPiece)
114 EXPECT_EQ(drawInfo.isDrawable, testCase.expectedIsDrawable); 114 EXPECT_EQ(drawInfo.isDrawable, testCase.expectedIsDrawable);
115 } 115 }
116 } 116 }
117 } 117 }
118 118
119 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_ScaleDownBorder) 119 TEST_F(NinePieceImageGridTest, NinePieceImagePainting_ScaleDownBorder)
120 { 120 {
121 NinePieceImage ninePiece; 121 NinePieceImage ninePiece;
122 ninePiece.setImage(generatedImage()); 122 ninePiece.setImage(generatedImage());
123 ninePiece.setImageSlices(LengthBox(10, 10, 10, 10)); 123 ninePiece.setImageSlices(LengthBox(10, 10, 10, 10));
124 124
125 IntSize imageSize(100, 100); 125 IntSize imageSize(100, 100);
126 IntRect borderImageArea(0, 0, 100, 100); 126 IntRect borderImageArea(0, 0, 100, 100);
127 IntRectOutsets borderWidths(10, 10, 10, 10); 127 IntRectOutsets borderWidths(10, 10, 10, 10);
128 128
129 // Set border slices wide enough so that the widths are scaled 129 // Set border slices wide enough so that the widths are scaled
130 // down and corner pieces cover the entire border image area. 130 // down and corner pieces cover the entire border image area.
131 ninePiece.setBorderSlices(BorderImageLengthBox(6)); 131 ninePiece.setBorderSlices(BorderImageLengthBox(6));
132 132
133 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths); 133 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, imageSize, borderIma geArea, borderWidths);
134 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) { 134 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) {
135 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece); 135 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDrawIn fo(piece, 1);
136 if (drawInfo.isCornerPiece) 136 if (drawInfo.isCornerPiece)
137 EXPECT_EQ(drawInfo.destination.size(), FloatSize(50, 50)); 137 EXPECT_EQ(drawInfo.destination.size(), FloatSize(50, 50));
138 else 138 else
139 EXPECT_TRUE(drawInfo.destination.size().isEmpty()); 139 EXPECT_TRUE(drawInfo.destination.size().isEmpty());
140 } 140 }
141 } 141 }
142 142
143 TEST_F(NinePieceImageGridTest, NinePieceImagePainting) 143 TEST_F(NinePieceImageGridTest, NinePieceImagePainting)
144 { 144 {
145 const struct { 145 const struct {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 for (auto& testCase : testCases) { 232 for (auto& testCase : testCases) {
233 NinePieceImage ninePiece; 233 NinePieceImage ninePiece;
234 ninePiece.setImage(generatedImage()); 234 ninePiece.setImage(generatedImage());
235 ninePiece.setFill(testCase.fill); 235 ninePiece.setFill(testCase.fill);
236 ninePiece.setImageSlices(testCase.imageSlices); 236 ninePiece.setImageSlices(testCase.imageSlices);
237 ninePiece.setHorizontalRule((ENinePieceImageRule)testCase.horizontalRule ); 237 ninePiece.setHorizontalRule((ENinePieceImageRule)testCase.horizontalRule );
238 ninePiece.setVerticalRule((ENinePieceImageRule)testCase.verticalRule); 238 ninePiece.setVerticalRule((ENinePieceImageRule)testCase.verticalRule);
239 239
240 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, testCase.imageSi ze, testCase.borderImageArea, testCase.borderWidths); 240 NinePieceImageGrid grid = NinePieceImageGrid(ninePiece, testCase.imageSi ze, testCase.borderImageArea, testCase.borderWidths);
241 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) { 241 for (NinePiece piece = MinPiece; piece < MaxPiece; ++piece) {
242 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDr awInfo(piece); 242 NinePieceImageGrid::NinePieceDrawInfo drawInfo = grid.getNinePieceDr awInfo(piece, 1);
243 EXPECT_EQ(testCase.pieces[piece].isDrawable, drawInfo.isDrawable); 243 EXPECT_EQ(testCase.pieces[piece].isDrawable, drawInfo.isDrawable);
244 if (!testCase.pieces[piece].isDrawable) 244 if (!testCase.pieces[piece].isDrawable)
245 continue; 245 continue;
246 246
247 EXPECT_EQ(testCase.pieces[piece].destination.x(), drawInfo.destinati on.x()); 247 EXPECT_EQ(testCase.pieces[piece].destination.x(), drawInfo.destinati on.x());
248 EXPECT_EQ(testCase.pieces[piece].destination.y(), drawInfo.destinati on.y()); 248 EXPECT_EQ(testCase.pieces[piece].destination.y(), drawInfo.destinati on.y());
249 EXPECT_EQ(testCase.pieces[piece].destination.width(), drawInfo.desti nation.width()); 249 EXPECT_EQ(testCase.pieces[piece].destination.width(), drawInfo.desti nation.width());
250 EXPECT_EQ(testCase.pieces[piece].destination.height(), drawInfo.dest ination.height()); 250 EXPECT_EQ(testCase.pieces[piece].destination.height(), drawInfo.dest ination.height());
251 EXPECT_EQ(testCase.pieces[piece].source.x(), drawInfo.source.x()); 251 EXPECT_EQ(testCase.pieces[piece].source.x(), drawInfo.source.x());
252 EXPECT_EQ(testCase.pieces[piece].source.y(), drawInfo.source.y()); 252 EXPECT_EQ(testCase.pieces[piece].source.y(), drawInfo.source.y());
253 EXPECT_EQ(testCase.pieces[piece].source.width(), drawInfo.source.wid th()); 253 EXPECT_EQ(testCase.pieces[piece].source.width(), drawInfo.source.wid th());
254 EXPECT_EQ(testCase.pieces[piece].source.height(), drawInfo.source.he ight()); 254 EXPECT_EQ(testCase.pieces[piece].source.height(), drawInfo.source.he ight());
255 255
256 if (testCase.pieces[piece].isCornerPiece) 256 if (testCase.pieces[piece].isCornerPiece)
257 continue; 257 continue;
258 258
259 EXPECT_FLOAT_EQ(testCase.pieces[piece].tileScaleHorizontal, drawInfo .tileScale.width()); 259 EXPECT_FLOAT_EQ(testCase.pieces[piece].tileScaleHorizontal, drawInfo .tileScale.width());
260 EXPECT_FLOAT_EQ(testCase.pieces[piece].tileScaleVertical, drawInfo.t ileScale.height()); 260 EXPECT_FLOAT_EQ(testCase.pieces[piece].tileScaleVertical, drawInfo.t ileScale.height());
261 EXPECT_EQ(testCase.pieces[piece].horizontalRule, drawInfo.tileRule.h orizontal); 261 EXPECT_EQ(testCase.pieces[piece].horizontalRule, drawInfo.tileRule.h orizontal);
262 EXPECT_EQ(testCase.pieces[piece].verticalRule, drawInfo.tileRule.ver tical); 262 EXPECT_EQ(testCase.pieces[piece].verticalRule, drawInfo.tileRule.ver tical);
263 } 263 }
264 } 264 }
265 } 265 }
266 266
267 } // namespace 267 } // namespace
268 } // namespace blink 268 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698