Skip to content

Commit 10df8ae

Browse files
committed
Add tests for new UA-setting approach
DEVSIX-629
1 parent 1096007 commit 10df8ae

File tree

6 files changed

+60
-0
lines changed

6 files changed

+60
-0
lines changed

layout/src/test/java/com/itextpdf/layout/XMPWriterTest.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,26 @@ This file is part of the iText (R) project.
4242
*/
4343
package com.itextpdf.layout;
4444

45+
import com.itextpdf.io.font.PdfEncodings;
46+
import com.itextpdf.io.image.ImageDataFactory;
4547
import com.itextpdf.io.source.ByteArrayOutputStream;
48+
import com.itextpdf.kernel.font.PdfFont;
49+
import com.itextpdf.kernel.font.PdfFontFactory;
4650
import com.itextpdf.kernel.pdf.PdfDocument;
51+
import com.itextpdf.kernel.pdf.PdfDocumentInfo;
52+
import com.itextpdf.kernel.pdf.PdfViewerPreferences;
53+
import com.itextpdf.kernel.pdf.PdfString;
4754
import com.itextpdf.kernel.pdf.PdfWriter;
55+
import com.itextpdf.kernel.pdf.WriterProperties;
4856
import com.itextpdf.kernel.utils.CompareTool;
4957
import com.itextpdf.kernel.xmp.XMPConst;
5058
import com.itextpdf.kernel.xmp.XMPException;
5159
import com.itextpdf.kernel.xmp.XMPMeta;
5260
import com.itextpdf.kernel.xmp.XMPMetaFactory;
5361
import com.itextpdf.kernel.xmp.options.PropertyOptions;
62+
import com.itextpdf.layout.element.Image;
5463
import com.itextpdf.layout.element.Paragraph;
64+
import com.itextpdf.layout.element.Text;
5565
import com.itextpdf.test.ExtendedITextTest;
5666
import com.itextpdf.test.annotations.type.IntegrationTest;
5767
import org.junit.Assert;
@@ -66,6 +76,9 @@ public class XMPWriterTest extends ExtendedITextTest {
6676

6777
public static final String sourceFolder = "./src/test/resources/com/itextpdf/layout/XMPWriterTest/";
6878
public static final String destinationFolder = "./target/test/com/itextpdf/layout/XMPWriterTest/";
79+
public static final String DOG = "./src/test/resources/com/itextpdf/layout/XMPWriterTest/dog.bmp";
80+
public static final String FONT = "./src/test/resources/com/itextpdf/layout/fonts/FreeSans.ttf";
81+
public static final String FOX = "./src/test/resources/com/itextpdf/layout/XMPWriterTest/fox.bmp";
6982

7083
@BeforeClass
7184
public static void beforeClass() {
@@ -97,4 +110,51 @@ public void createPdfTest() throws IOException, XMPException {
97110
Assert.assertNull(ct.compareXmp(destinationFolder + fileName, sourceFolder + "cmp_" + fileName, true));
98111
}
99112

113+
@Test
114+
public void addUAXMPMetaDataNotTaggedTest() throws IOException {
115+
String fileName = "addUAXMPMetaDataNotTaggedTest.pdf";
116+
PdfDocument pdf = new PdfDocument(new PdfWriter(destinationFolder + fileName, new WriterProperties().addUAXmpMetadata()));
117+
manipulatePdf(pdf, false);
118+
Assert.assertNull(new CompareTool().compareXmp(destinationFolder + fileName, sourceFolder + "cmp_" + fileName, true));
119+
}
120+
121+
@Test
122+
public void addUAXMPMetaDataTaggedTest() throws IOException, InterruptedException {
123+
String fileName = "addUAXMPMetaDataTaggedTest.pdf";
124+
PdfDocument pdf = new PdfDocument(new PdfWriter(destinationFolder + fileName, new WriterProperties().addUAXmpMetadata()));
125+
manipulatePdf(pdf, true);
126+
Assert.assertNull(new CompareTool().compareXmp(destinationFolder + fileName, sourceFolder + "cmp_" + fileName, true));
127+
}
128+
129+
@Test
130+
public void doNotAddUAXMPMetaDataTaggedTest() throws IOException {
131+
String fileName = "doNotAddUAXMPMetaDataTaggedTest.pdf";
132+
PdfDocument pdf = new PdfDocument(new PdfWriter(destinationFolder + fileName, new WriterProperties().addXmpMetadata()));
133+
manipulatePdf(pdf, true);
134+
Assert.assertNull(new CompareTool().compareXmp(destinationFolder + fileName, sourceFolder + "cmp_" + fileName, true));
135+
}
136+
137+
private void manipulatePdf(PdfDocument pdfDocument, boolean setTagged) throws IOException {
138+
Document document = new Document(pdfDocument);
139+
if (setTagged)
140+
pdfDocument.setTagged();
141+
pdfDocument.getCatalog().setLang(new PdfString("en-US"));
142+
pdfDocument.getCatalog().setViewerPreferences(
143+
new PdfViewerPreferences().setDisplayDocTitle(true));
144+
PdfDocumentInfo info = pdfDocument.getDocumentInfo();
145+
info.setTitle("iText7 PDF/UA test");
146+
PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.WINANSI, true);
147+
Paragraph p = new Paragraph();
148+
p.setFont(font);
149+
p.add(new Text("The quick brown "));
150+
Image foxImage = new Image(ImageDataFactory.create(FOX));
151+
foxImage.getAccessibilityProperties().setAlternateDescription("Fox");
152+
p.add(foxImage);
153+
p.add(" jumps over the lazy ");
154+
Image dogImage = new Image(ImageDataFactory.create(DOG));
155+
dogImage.getAccessibilityProperties().setAlternateDescription("Dog");
156+
p.add(dogImage);
157+
document.add(p);
158+
document.close();
159+
}
100160
}
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)