You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2016/03/02 23:50:17 UTC
svn commit: r1733386 -
/pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/XMPMetaDataTest.java
Author: tilman
Date: Wed Mar 2 22:50:17 2016
New Revision: 1733386
URL: http://svn.apache.org/viewvc?rev=1733386&view=rev
Log:
PDFBOX-3258: add test
Modified:
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/XMPMetaDataTest.java
Modified: pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/XMPMetaDataTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/XMPMetaDataTest.java?rev=1733386&r1=1733385&r2=1733386&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/XMPMetaDataTest.java (original)
+++ pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/XMPMetaDataTest.java Wed Mar 2 22:50:17 2016
@@ -21,10 +21,18 @@
package org.apache.xmpbox;
+import java.io.IOException;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
import java.util.List;
+import org.apache.xmpbox.schema.DublinCoreSchema;
+import org.apache.xmpbox.schema.XMPBasicSchema;
import org.apache.xmpbox.schema.XMPSchema;
+import org.apache.xmpbox.xml.DomXmpParser;
+import org.apache.xmpbox.xml.XmpParsingException;
import org.apache.xmpbox.xml.XmpSerializationException;
import org.junit.Assert;
+import static org.junit.Assert.assertFalse;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -111,4 +119,70 @@ public class XMPMetaDataTest
Assert.assertEquals(xpacketBytes, metadata.getXpacketBytes());
Assert.assertEquals(xpacketEncoding, metadata.getXpacketEncoding());
}
+
+ @Test
+ public void testPDFBOX3257() throws IOException, XmpParsingException
+ {
+ // taken from file test-landscape2.pdf
+ String xmpmeta = "<?xpacket id=\"W5M0MpCehiHzreSzNTczkc9d\"?>\n"
+ + "<x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"Adobe XMP Core 4.0-c316 44.253921, Sun Oct 01 2006 17:14:39\">\n"
+ + " <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n"
+ + " <rdf:Description rdf:about=\"\"\n"
+ + " xmlns:xap=\"http://ns.adobe.com/xap/1.0/\">\n"
+ + " <xap:CreatorTool>Acrobat PDFMaker 8.1 for Word</xap:CreatorTool>\n"
+ + " <xap:ModifyDate>2008-11-12T15:29:43+01:00</xap:ModifyDate>\n"
+ + " <xap:CreateDate>2008-11-12T15:29:40+01:00</xap:CreateDate>\n"
+ + " <xap:MetadataDate>2008-11-12T15:29:43+01:00</xap:MetadataDate>\n"
+ + " </rdf:Description>\n"
+ + " <rdf:Description rdf:about=\"\"\n"
+ + " xmlns:pdf=\"http://ns.adobe.com/pdf/1.3/\">\n"
+ + " <pdf:Producer>Acrobat Distiller 8.1.0 (Windows)</pdf:Producer>\n"
+ + " </rdf:Description>\n"
+ + " <rdf:Description rdf:about=\"\"\n"
+ + " xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n"
+ + " <dc:format>application/pdf</dc:format>\n"
+ + " <dc:creator>\n"
+ + " <rdf:Seq>\n"
+ + " <rdf:li>R002325</rdf:li>\n"
+ + " </rdf:Seq>\n"
+ + " </dc:creator>\n"
+ + " <dc:subject>\n"
+ + " <rdf:Bag>\n"
+ + " <rdf:li>one</rdf:li>\n"
+ + " <rdf:li>two</rdf:li>\n"
+ + " <rdf:li>three</rdf:li>\n"
+ + " <rdf:li>four</rdf:li>\n"
+ + " </rdf:Bag>\n"
+ + " </dc:subject>\n"
+ + " <dc:title>\n"
+ + " <rdf:Alt>\n"
+ + " <rdf:li xml:lang=\"x-default\"> </rdf:li>\n"
+ + " </rdf:Alt>\n"
+ + " </dc:title>\n"
+ + " </rdf:Description>\n"
+ + " <rdf:Description rdf:about=\"\"\n"
+ + " xmlns:xapMM=\"http://ns.adobe.com/xap/1.0/mm/\">\n"
+ + " <xapMM:DocumentID>uuid:31ae92cf-9a27-45e0-9371-0d2741e25919</xapMM:DocumentID>\n"
+ + " <xapMM:InstanceID>uuid:2c7eb5da-9210-4666-8cef-e02ef6631c5e</xapMM:InstanceID>\n"
+ + " </rdf:Description>\n"
+ + " </rdf:RDF>\n"
+ + "</x:xmpmeta>\n"
+ + "<?xpacket end=\"w\"?>";
+ DomXmpParser xmpParser = new DomXmpParser();
+ xmpParser.setStrictParsing(false);
+ //IOUtils.copy(meta.createInputStream(),System.out);
+ XMPMetadata xmp = xmpParser.parse(xmpmeta.getBytes());
+ XMPBasicSchema basicSchema = xmp.getXMPBasicSchema();
+ Calendar createDate1 = basicSchema.getCreateDate();
+ basicSchema.setCreateDate(new GregorianCalendar());
+ Calendar createDate2 = basicSchema.getCreateDate();
+ // activate when bug is fixed
+ //assertFalse("CreateDate has not been set", createDate1.equals(createDate2));
+
+ // check that bugfix does not interfere with lists of properties with same name
+ DublinCoreSchema dublinCoreSchema = xmp.getDublinCoreSchema();
+ List<String> subjects = dublinCoreSchema.getSubjects();
+ Assert.assertEquals(4, subjects.size());
+ }
+
}