@@ -42,167 +42,103 @@ This file is part of the iText (R) project.
42
42
*/
43
43
package com .itextpdf .html2pdf ;
44
44
45
- import com .itextpdf .html2pdf .attach .IHtmlProcessor ;
46
- import com .itextpdf .html2pdf .attach .impl .DefaultHtmlProcessor ;
47
- import com .itextpdf .html2pdf .resolver .font .DefaultFontProvider ;
48
45
import com .itextpdf .html2pdf .logs .Html2PdfLogMessageConstant ;
49
- import com .itextpdf .io .logs .IoLogMessageConstant ;
50
- import com .itextpdf .io .util .UrlUtil ;
51
- import com .itextpdf .kernel .pdf .PdfDocument ;
52
- import com .itextpdf .kernel .pdf .PdfWriter ;
53
- import com .itextpdf .kernel .utils .CompareTool ;
54
- import com .itextpdf .layout .Document ;
55
- import com .itextpdf .layout .font .FontProvider ;
56
- import com .itextpdf .styledxmlparser .IXmlParser ;
57
46
import com .itextpdf .styledxmlparser .logs .StyledXmlParserLogMessageConstant ;
58
- import com .itextpdf .styledxmlparser .css .media .MediaDeviceDescription ;
59
- import com .itextpdf .styledxmlparser .css .media .MediaType ;
60
- import com .itextpdf .styledxmlparser .node .IDocumentNode ;
61
- import com .itextpdf .styledxmlparser .node .impl .jsoup .JsoupHtmlParser ;
62
- import com .itextpdf .test .ExtendedITextTest ;
63
47
import com .itextpdf .test .annotations .LogMessage ;
64
48
import com .itextpdf .test .annotations .LogMessages ;
65
49
import com .itextpdf .test .annotations .type .IntegrationTest ;
66
50
67
- import java .io .FileInputStream ;
68
- import org .junit .Assert ;
51
+ import java .io .IOException ;
69
52
import org .junit .BeforeClass ;
70
53
import org .junit .Test ;
71
54
import org .junit .experimental .categories .Category ;
72
55
73
- import java .io .File ;
74
- import java .io .IOException ;
75
-
76
56
@ Category (IntegrationTest .class )
77
- public class Html2PdfTest extends ExtendedITextTest {
57
+ public class Html2PdfTest extends ExtendedHtmlConversionITextTest {
78
58
79
- public static final String sourceFolder = "./src/test/resources/com/itextpdf/html2pdf/Html2PdfTest/" ;
80
- public static final String destinationFolder = "./target/test/com/itextpdf/html2pdf/Html2PdfTest/" ;
59
+ public static final String SOURCE_FOLDER = "./src/test/resources/com/itextpdf/html2pdf/Html2PdfTest/" ;
60
+ public static final String DESTINATION_FOLDER = "./target/test/com/itextpdf/html2pdf/Html2PdfTest/" ;
81
61
82
62
@ BeforeClass
83
63
public static void beforeClass () {
84
- createDestinationFolder ( destinationFolder );
64
+ createOrClearDestinationFolder ( DESTINATION_FOLDER );
85
65
}
86
66
87
67
@ Test
88
68
public void helloWorldParagraphTest () throws IOException , InterruptedException {
89
- convertAndCompare (sourceFolder + "hello_paragraph.html" , destinationFolder + "hello_paragraph.pdf" ,
90
- sourceFolder + "cmp_hello_paragraph.pdf" , destinationFolder , "diff01_" );
69
+ convertToPdfAndCompare ("hello_paragraph" , SOURCE_FOLDER , DESTINATION_FOLDER );
91
70
}
92
71
93
72
@ Test
94
73
public void helloParagraphTableTest () throws IOException , InterruptedException {
95
- convertAndCompare (sourceFolder + "hello_paragraph_table.html" , destinationFolder + "hello_paragraph_table.pdf" ,
96
- sourceFolder + "cmp_hello_paragraph_table.pdf" , destinationFolder , "diff02_" );
74
+ convertToPdfAndCompare ("hello_paragraph_table" , SOURCE_FOLDER , DESTINATION_FOLDER );
97
75
}
98
76
99
77
@ Test
100
78
public void helloMalformedDocumentTest () throws IOException , InterruptedException {
101
- convertAndCompare (sourceFolder + "hello_malformed.html" , destinationFolder + "hello_malformed.pdf" ,
102
- sourceFolder + "cmp_hello_malformed.pdf" , destinationFolder , "diff03_" );
79
+ convertToPdfAndCompare ("hello_malformed" , SOURCE_FOLDER , DESTINATION_FOLDER );
103
80
}
104
81
105
82
@ Test
106
83
public void helloParagraphJunkSpacesDocumentTest () throws IOException , InterruptedException {
107
- convertAndCompare (sourceFolder + "hello_paragraph_junk_spaces.html" , destinationFolder + "hello_paragraph_junk_spaces.pdf" ,
108
- sourceFolder + "cmp_hello_paragraph_junk_spaces.pdf" , destinationFolder , "diff03_" );
84
+ convertToPdfAndCompare ("hello_paragraph_junk_spaces" , SOURCE_FOLDER , DESTINATION_FOLDER );
109
85
}
110
86
111
87
@ Test
112
88
public void helloParagraphNestedInTableDocumentTest () throws IOException , InterruptedException {
113
- convertAndCompare (sourceFolder + "hello_paragraph_nested_in_table.html" , destinationFolder + "hello_paragraph_nested_in_table.pdf" ,
114
- sourceFolder + "cmp_hello_paragraph_nested_in_table.pdf" , destinationFolder , "diff03_" );
89
+ convertToPdfAndCompare ("hello_paragraph_nested_in_table" , SOURCE_FOLDER , DESTINATION_FOLDER );
115
90
}
116
91
117
92
@ Test
118
93
public void helloParagraphWithSpansDocumentTest () throws IOException , InterruptedException {
119
- convertAndCompare (sourceFolder + "hello_paragraph_with_span.html" , destinationFolder + "hello_paragraph_with_span.pdf" ,
120
- sourceFolder + "cmp_hello_paragraph_with_span.pdf" , destinationFolder , "diff03_" );
94
+ convertToPdfAndCompare ("hello_paragraph_with_span" , SOURCE_FOLDER , DESTINATION_FOLDER );
121
95
}
122
96
123
97
@ Test
124
98
public void helloDivDocumentTest () throws IOException , InterruptedException {
125
- convertAndCompare (sourceFolder + "hello_div.html" , destinationFolder + "hello_div.pdf" ,
126
- sourceFolder + "cmp_hello_div.pdf" , destinationFolder , "diff03_" );
99
+ convertToPdfAndCompare ("hello_div" , SOURCE_FOLDER , DESTINATION_FOLDER );
127
100
}
128
101
129
102
@ Test
130
103
public void aBlockInPTagTest () throws IOException , InterruptedException {
131
- convertAndCompare (sourceFolder + "aBlockInPTag.html" , destinationFolder + "aBlockInPTag.pdf" ,
132
- sourceFolder + "cmp_aBlockInPTag.pdf" , destinationFolder , "diff03_" );
104
+ convertToPdfAndCompare ("aBlockInPTag" , SOURCE_FOLDER , DESTINATION_FOLDER );
133
105
}
134
106
135
107
@ Test
136
108
public void base64svgTest () throws IOException , InterruptedException {
137
- HtmlConverter .convertToPdf (new File (sourceFolder + "objectTag_base64svg.html" ), new File (destinationFolder + "objectTag_base64svg.pdf" ));
138
- Assert .assertNull (new CompareTool ().compareByContent (destinationFolder + "objectTag_base64svg.pdf" , sourceFolder + "cmp_objectTag_base64svg.pdf" , destinationFolder , "diff01_" ));
109
+ convertToPdfAndCompare ("objectTag_base64svg" , SOURCE_FOLDER , DESTINATION_FOLDER );
139
110
}
140
111
141
112
@ Test
142
- @ LogMessages (messages = {@ LogMessage (messageTemplate = StyledXmlParserLogMessageConstant .UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI , count = 1 ),
113
+ @ LogMessages (messages = {
114
+ @ LogMessage (messageTemplate =
115
+ StyledXmlParserLogMessageConstant .UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI , count = 1 ),
143
116
@ LogMessage (messageTemplate = Html2PdfLogMessageConstant .WORKER_UNABLE_TO_PROCESS_OTHER_WORKER , count = 1 )})
144
117
public void htmlObjectIncorrectBase64Test () throws IOException , InterruptedException {
145
- HtmlConverter .convertToPdf (new File (sourceFolder + "objectTag_incorrectBase64svg.html" ), new File (destinationFolder + "objectTag_incorrectBase64svg.pdf" ));
146
- Assert .assertNull (new CompareTool ().compareByContent (destinationFolder + "objectTag_incorrectBase64svg.pdf" , sourceFolder + "cmp_objectTag_incorrectBase64svg.pdf" , destinationFolder , "diff01_" ));
147
-
118
+ convertToPdfAndCompare ("objectTag_incorrectBase64svg" , SOURCE_FOLDER , DESTINATION_FOLDER );
148
119
}
149
120
150
121
@ Test
151
- @ LogMessages (messages = {@ LogMessage (messageTemplate = Html2PdfLogMessageConstant .WORKER_UNABLE_TO_PROCESS_IT_S_TEXT_CONTENT , count = 1 ),
122
+ //TODO: update after DEVSIX-1346
123
+ @ LogMessages (messages = {
124
+ @ LogMessage (messageTemplate = Html2PdfLogMessageConstant .WORKER_UNABLE_TO_PROCESS_IT_S_TEXT_CONTENT ,
125
+ count = 1 ),
152
126
@ LogMessage (messageTemplate = Html2PdfLogMessageConstant .WORKER_UNABLE_TO_PROCESS_OTHER_WORKER , count = 2 ),
153
127
})
154
128
public void htmlObjectAltTextTest () throws IOException , InterruptedException {
155
- //update after DEVSIX-1346
156
- HtmlConverter .convertToPdf (new File (sourceFolder + "objectTag_altText.html" ), new File (destinationFolder + "objectTag_altText.pdf" ));
157
- Assert .assertNull (new CompareTool ().compareByContent (destinationFolder + "objectTag_altText.pdf" , sourceFolder + "cmp_objectTag_altText.pdf" , destinationFolder , "diff01_" ));
158
-
129
+ convertToPdfAndCompare ("objectTag_altText" , SOURCE_FOLDER , DESTINATION_FOLDER );
159
130
}
160
131
161
132
@ Test
162
- @ LogMessages (messages = {@ LogMessage (messageTemplate = Html2PdfLogMessageConstant .WORKER_UNABLE_TO_PROCESS_OTHER_WORKER , count = 1 ),})
133
+ @ LogMessages (messages = {
134
+ @ LogMessage (messageTemplate = Html2PdfLogMessageConstant .WORKER_UNABLE_TO_PROCESS_OTHER_WORKER ,
135
+ count = 1 ),})
163
136
public void htmlObjectNestedObjectTest () throws IOException , InterruptedException {
164
- HtmlConverter .convertToPdf (new File (sourceFolder + "objectTag_nestedTag.html" ), new File (destinationFolder + "objectTag_nestedTag.pdf" ));
165
- Assert .assertNull (new CompareTool ().compareByContent (destinationFolder + "objectTag_nestedTag.pdf" , sourceFolder + "cmp_objectTag_nestedTag.pdf" , destinationFolder , "diff01_" ));
137
+ convertToPdfAndCompare ("objectTag_nestedTag" , SOURCE_FOLDER , DESTINATION_FOLDER );
166
138
}
167
139
168
140
@ Test
169
- @ LogMessages (ignore = true , messages = {
170
- @ LogMessage (messageTemplate = StyledXmlParserLogMessageConstant .RULE_IS_NOT_SUPPORTED ),
171
- @ LogMessage (messageTemplate = Html2PdfLogMessageConstant .CSS_PROPERTY_IN_PERCENTS_NOT_SUPPORTED ),
172
- @ LogMessage (messageTemplate = Html2PdfLogMessageConstant .PADDING_VALUE_IN_PERCENT_NOT_SUPPORTED ),
173
- @ LogMessage (messageTemplate = Html2PdfLogMessageConstant .MARGIN_VALUE_IN_PERCENT_NOT_SUPPORTED ),
174
- @ LogMessage (messageTemplate = Html2PdfLogMessageConstant .ERROR_PARSING_CSS_SELECTOR ),
175
- @ LogMessage (messageTemplate = IoLogMessageConstant .WIDOWS_CONSTRAINT_VIOLATED ),
176
- })
177
- public void batchConversionTest () throws IOException , InterruptedException {
178
- ConverterProperties properties = new ConverterProperties ().setBaseUri (sourceFolder )
179
- .setMediaDeviceDescription (new MediaDeviceDescription (MediaType .PRINT ));
180
- FontProvider fontProvider = new DefaultFontProvider (true , false , false );
181
- fontProvider .addDirectory (sourceFolder + "fonts/" );
182
- properties .setFontProvider (fontProvider );
183
- IHtmlProcessor processor = new DefaultHtmlProcessor (properties );
184
-
185
- IXmlParser parser = new JsoupHtmlParser ();
186
- String outPdfPath = destinationFolder + "smashing1.pdf" ;
187
- PdfDocument pdfDocument = new PdfDocument (new PdfWriter (outPdfPath ));
188
- IDocumentNode doc = parser .parse (new FileInputStream (sourceFolder + "smashing01.html" ),
189
- properties .getCharset ());
190
- Document document = processor .processDocument (doc , pdfDocument );
191
- document .close ();
192
-
193
- Assert .assertNull (new CompareTool ().compareByContent (outPdfPath ,
194
- sourceFolder + "cmp_smashing1.pdf" , destinationFolder , "diff01_" ));
195
- }
196
-
197
- @ Test
198
- public void htmlImgBase64SVGTest () throws IOException , InterruptedException {
199
- HtmlConverter .convertToPdf (new File (sourceFolder + "imgTag_base64svg.html" ), new File (destinationFolder + "imgTag_base64svg.pdf" ));
200
- Assert .assertNull (new CompareTool ().compareByContent (destinationFolder + "imgTag_base64svg.pdf" , sourceFolder + "cmp_imgTag_base64svg.pdf" , destinationFolder , "diff01_" ));
201
- }
202
-
203
- private void convertAndCompare (String srcFilename , String outFilename , String cmpFilename , String outFolder , String diff ) throws IOException , InterruptedException {
204
- HtmlConverter .convertToPdf (new File (srcFilename ), new File (outFilename ));
205
- System .out .println ("html: " + UrlUtil .getNormalizedFileUriString (srcFilename ) + "\n " );
206
- Assert .assertNull (new CompareTool ().compareByContent (outFilename , cmpFilename , outFolder , diff ));
141
+ public void htmlImgBase64SVGTest () throws IOException , InterruptedException {
142
+ convertToPdfAndCompare ("imgTag_base64svg" , SOURCE_FOLDER , DESTINATION_FOLDER );
207
143
}
208
144
}
0 commit comments