Skip to content

Commit 0d1af22

Browse files
author
Alexandr Fedorov
committed
Basic support of CSS order property for flex items
DEVSIX-9402
1 parent ef7b31c commit 0d1af22

37 files changed

+59
-106
lines changed

src/main/java/com/itextpdf/html2pdf/css/apply/util/FlexApplierUtil.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ public static void applyFlexItemProperties(Map<String, String> cssProps, Process
6969

7070
applyAlignSelf(cssProps, element);
7171

72+
applyOrder(cssProps, element);
73+
7274
final String flexGrow = cssProps.get(CommonCssConstants.FLEX_GROW);
7375
if (flexGrow != null) {
7476
final Float flexGrowValue = CssDimensionParsingUtils.parseFloat(flexGrow);
@@ -264,6 +266,10 @@ private static void applyAlignItems(Map<String, String> cssProps, IPropertyConta
264266
}
265267
}
266268

269+
private static void applyOrder(Map<String, String> cssProps, IPropertyContainer element) {
270+
element.setProperty(Property.ORDER, CssDimensionParsingUtils.parseInteger(cssProps.get(CommonCssConstants.ORDER)));
271+
}
272+
267273
private static void applyJustifyContent(Map<String, String> cssProps, IPropertyContainer element) {
268274
final String justifyContentString = cssProps.get(CommonCssConstants.JUSTIFY_CONTENT);
269275
if (justifyContentString != null) {
@@ -384,9 +390,7 @@ private static void logWarningIfThereAreNotSupportedPropertyValues(Map<String, S
384390
}
385391

386392
private static Map<String, Set<String>> createSupportedFlexItemPropertiesAndValuesMap() {
387-
final Map<String, Set<String>> supportedPairs = new HashMap<>();
388-
supportedPairs.put(CommonCssConstants.ORDER, new HashSet<>());
389-
return supportedPairs;
393+
return new HashMap<>();
390394
}
391395

392396
private static Map<String, Set<String>> createSupportedFlexContainerPropertiesAndValuesMap() {

src/test/java/com/itextpdf/html2pdf/css/apply/util/FlexApplierUtilTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,10 @@ public void applyFlexContainerUnsupportedPropertiesUnsupportedValuesTest() {
257257
}
258258

259259
@Test
260-
@LogMessages(messages = @LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 2))
260+
@LogMessages(messages = @LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET))
261261
public void applyFlexItemUnsupportedPropertiesUnsupportedValuesTest() {
262262
ProcessorContext context = new ProcessorContext(new ConverterProperties());
263263
Map<String, String> cssProps = new HashMap<>();
264-
cssProps.put(CssConstants.ORDER, "1");
265264
cssProps.put(CssConstants.ALIGN_SELF, CssConstants.SAFE);
266265
IElement element = new Div();
267266

src/test/java/com/itextpdf/html2pdf/css/flex/FlexOrderTest.java

Lines changed: 7 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ This file is part of the iText (R) project.
3636
@Tag("IntegrationTest")
3737
public class FlexOrderTest extends ExtendedHtmlConversionITextTest {
3838

39-
//TODO DEVSIX-9402: Update cmp files
4039
private static final String SOURCE_FOLDER = "./src/test/resources/com/itextpdf/html2pdf/css/flex/FlexOrderTest/";
4140
private static final String DESTINATION_FOLDER = "./target/test/com/itextpdf/html2pdf/css/flex/FlexOrderTest/";
4241

@@ -47,25 +46,18 @@ public static void beforeClass() {
4746
}
4847

4948
@Test
50-
@LogMessages(messages = {
51-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 36)
52-
})
5349
public void decimalAlignContentWrapTest() throws IOException, InterruptedException {
5450
convertToPdfAndCompare("decimalAlignContentWrap", SOURCE_FOLDER, DESTINATION_FOLDER, true);
5551
}
5652

5753
@Test
58-
@LogMessages(messages = {
59-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 36)
60-
})
6154
public void decimalAlignContentWrapReverseTest() throws IOException, InterruptedException {
6255
convertToPdfAndCompare("decimalAlignContentWrapReverse", SOURCE_FOLDER, DESTINATION_FOLDER, true);
6356
}
6457

6558
@Test
6659
@LogMessages(messages = {
67-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 16),
68-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.INVALID_CSS_PROPERTY_DECLARATION),
60+
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET),
6961
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.WORKER_UNABLE_TO_PROCESS_OTHER_WORKER)
7062
})
7163
public void decimalAlignItemsTest() throws IOException, InterruptedException {
@@ -74,189 +66,118 @@ public void decimalAlignItemsTest() throws IOException, InterruptedException {
7466

7567
@Test
7668
@LogMessages(messages = {
77-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 8)
69+
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET)
7870
})
7971
public void decimalAlignSelfTest() throws IOException, InterruptedException {
8072
convertToPdfAndCompare("decimalAlignSelf", SOURCE_FOLDER, DESTINATION_FOLDER, true);
8173
}
8274

8375
@Test
84-
@LogMessages(messages = {
85-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 4)
86-
})
8776
public void decimalsTest() throws IOException, InterruptedException {
8877
convertToPdfAndCompare("decimals", SOURCE_FOLDER, DESTINATION_FOLDER, true);
8978
}
9079

9180
@Test
92-
@LogMessages(messages = {
93-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 9)
94-
})
9581
public void decimalsNestedTest() throws IOException, InterruptedException {
9682
convertToPdfAndCompare("decimalsNested", SOURCE_FOLDER, DESTINATION_FOLDER, true);
9783
}
9884

9985
@Test
100-
@LogMessages(messages = {
101-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 10)
102-
})
10386
public void decimalsDuplicatedValuesTest() throws IOException, InterruptedException {
10487
convertToPdfAndCompare("decimalsDuplicatedValues", SOURCE_FOLDER, DESTINATION_FOLDER, true);
10588
}
10689

10790
@Test
108-
@LogMessages(messages = {
109-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
110-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
111-
})
91+
public void decimalsDuplicatedValuesWrapReverseTest() throws IOException, InterruptedException {
92+
convertToPdfAndCompare("decimalsDuplicatedValuesWrapReverse", SOURCE_FOLDER, DESTINATION_FOLDER, true);
93+
}
94+
95+
@Test
11296
public void dirColumnTest() throws IOException, InterruptedException {
11397
convertToPdfAndCompare("dirColumn", SOURCE_FOLDER, DESTINATION_FOLDER, true);
11498
}
11599

116100
@Test
117-
@LogMessages(messages = {
118-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 12)
119-
})
120101
public void dirColumnLongTest() throws IOException, InterruptedException {
121102
convertToPdfAndCompare("dirColumnLong", SOURCE_FOLDER, DESTINATION_FOLDER, true);
122103
}
123104

124105
@Test
125-
@LogMessages(messages = {
126-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
127-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
128-
})
129106
public void dirColumnReverseTest() throws IOException, InterruptedException {
130107
convertToPdfAndCompare("dirColumnReverse", SOURCE_FOLDER, DESTINATION_FOLDER, true);
131108
}
132109

133110
@Test
134-
@LogMessages(messages = {
135-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
136-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
137-
})
138111
public void dirRowTest() throws IOException, InterruptedException {
139112
convertToPdfAndCompare("dirRow", SOURCE_FOLDER, DESTINATION_FOLDER, true);
140113
}
141114

142115
@Test
143-
@LogMessages(messages = {
144-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
145-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
146-
})
147116
public void dirRowReverseTest() throws IOException, InterruptedException {
148117
convertToPdfAndCompare("dirRowReverse", SOURCE_FOLDER, DESTINATION_FOLDER, true);
149118
}
150119

151120
@Test
152-
@LogMessages(messages = {
153-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 6)
154-
})
155121
public void dirRowWideTest() throws IOException, InterruptedException {
156122
convertToPdfAndCompare("dirRowWide", SOURCE_FOLDER, DESTINATION_FOLDER, true);
157123
}
158124

159125
@Test
160-
@LogMessages(messages = {
161-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
162-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
163-
})
164126
public void flexBasisTest() throws IOException, InterruptedException {
165127
convertToPdfAndCompare("flexBasis", SOURCE_FOLDER, DESTINATION_FOLDER, true);
166128
}
167129

168130
@Test
169-
@LogMessages(messages = {
170-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 14),
171-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
172-
})
173131
public void flexGrowTest() throws IOException, InterruptedException {
174132
convertToPdfAndCompare("flexGrow", SOURCE_FOLDER, DESTINATION_FOLDER, true);
175133
}
176134

177135
@Test
178-
@LogMessages(messages = {
179-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 14),
180-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
181-
})
182136
public void flexShrinkTest() throws IOException, InterruptedException {
183137
convertToPdfAndCompare("flexShrink", SOURCE_FOLDER, DESTINATION_FOLDER, true);
184138
}
185139

186140
@Test
187-
@LogMessages(messages = {
188-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
189-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
190-
})
191141
public void flowColumnWrapTest() throws IOException, InterruptedException {
192142
convertToPdfAndCompare("flowColumnWrap", SOURCE_FOLDER, DESTINATION_FOLDER, true);
193143
}
194144

195145
@Test
196-
@LogMessages(messages = {
197-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
198-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
199-
})
200146
public void flowRowWrapTest() throws IOException, InterruptedException {
201147
convertToPdfAndCompare("flowRowWrap", SOURCE_FOLDER, DESTINATION_FOLDER, true);
202148
}
203149

204150
@Test
205-
@LogMessages(messages = {
206-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 3)
207-
})
208151
public void inheritTest() throws IOException, InterruptedException {
209152
convertToPdfAndCompare("inherit", SOURCE_FOLDER, DESTINATION_FOLDER, true);
210153
}
211154

212155
@Test
213-
@LogMessages(messages = {
214-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 7)
215-
})
216156
public void inheritNestedTest() throws IOException, InterruptedException {
217157
convertToPdfAndCompare("inheritNested", SOURCE_FOLDER, DESTINATION_FOLDER, true);
218158
}
219159

220160
@Test
221-
@LogMessages(messages = {
222-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 2),
223-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
224-
})
225161
public void initialTest() throws IOException, InterruptedException {
226162
convertToPdfAndCompare("initial", SOURCE_FOLDER, DESTINATION_FOLDER, true);
227163
}
228164

229165
@Test
230-
@LogMessages(messages = {
231-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 35),
232-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN, count = 7)
233-
})
234166
public void initialAlignContentTest() throws IOException, InterruptedException {
235167
convertToPdfAndCompare("initialAlignContent", SOURCE_FOLDER, DESTINATION_FOLDER, true);
236168
}
237169

238170
@Test
239-
@LogMessages(messages = {
240-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 5)
241-
})
242171
public void negativeTest() throws IOException, InterruptedException {
243172
convertToPdfAndCompare("negative", SOURCE_FOLDER, DESTINATION_FOLDER, true);
244173
}
245174

246175
@Test
247-
@LogMessages(messages = {
248-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
249-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN),
250-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.INVALID_CSS_PROPERTY_DECLARATION, count = 5)
251-
})
252176
public void noWrapTest() throws IOException, InterruptedException {
253177
convertToPdfAndCompare("noWrap", SOURCE_FOLDER, DESTINATION_FOLDER, true);
254178
}
255179

256180
@Test
257-
@LogMessages(messages = {
258-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 3)
259-
})
260181
public void revertTest() throws IOException, InterruptedException {
261182
convertToPdfAndCompare("revert", SOURCE_FOLDER, DESTINATION_FOLDER, true);
262183
}
@@ -270,27 +191,16 @@ public void revertLayerTest() throws IOException, InterruptedException {
270191
}
271192

272193
@Test
273-
@LogMessages(messages = {
274-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 3)
275-
})
276194
public void unsetTest() throws IOException, InterruptedException {
277195
convertToPdfAndCompare("unset", SOURCE_FOLDER, DESTINATION_FOLDER, true);
278196
}
279197

280198
@Test
281-
@LogMessages(messages = {
282-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
283-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
284-
})
285199
public void wrapTest() throws IOException, InterruptedException {
286200
convertToPdfAndCompare("wrap", SOURCE_FOLDER, DESTINATION_FOLDER, true);
287201
}
288202

289203
@Test
290-
@LogMessages(messages = {
291-
@LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 18),
292-
@LogMessage(messageTemplate = StyledXmlParserLogMessageConstant.DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN)
293-
})
294204
public void wrapReverseTest() throws IOException, InterruptedException {
295205
convertToPdfAndCompare("wrapReverse", SOURCE_FOLDER, DESTINATION_FOLDER, true);
296206
}

src/test/java/com/itextpdf/html2pdf/css/w3c/css_flexbox/FlexboxItemsAsStackingContexts002Test.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ This file is part of the iText (R) project.
2727
import com.itextpdf.test.annotations.LogMessage;
2828
import com.itextpdf.test.annotations.LogMessages;
2929

30-
// TODO DEVSIX-9402 Flex: basic support of CSS order property for flex items
31-
@LogMessages(messages = @LogMessage(messageTemplate = Html2PdfLogMessageConstant.FLEX_PROPERTY_IS_NOT_SUPPORTED_YET, count = 3))
3230
public class FlexboxItemsAsStackingContexts002Test extends W3CCssTest {
3331
@Override
3432
protected String getHtmlFileName() {
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)