Author: tilman
Date: Sun Dec  7 11:09:08 2025
New Revision: 1930321

Log:
PDFBOX-3882: add test

Modified:
   pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java

Modified: 
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
==============================================================================
--- 
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java   
    Sun Dec  7 11:09:04 2025        (r1930320)
+++ 
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java   
    Sun Dec  7 11:09:08 2025        (r1930321)
@@ -206,4 +206,66 @@ class DomXmpParserTest
         
Assertions.assertEquals("adobe:docid:indd:db084a4d-dbb2-11dc-ac34-beb3cc4028ec",
 xmpMediaManagementSchema.getDocumentID());
         
Assertions.assertEquals("adobe:docid:indd:fa7c6589-9f4a-11dc-9641-af983df728d7",
 derivedFromProperty.getDocumentID());
     }
+
+    /**
+     * PDFBOX-3882: Test PageTextSchema with dimensions mixed as children or 
attributes.
+     *
+     * @throws XmpParsingException
+     */
+    @Test
+    void testPageTextSchema2() throws XmpParsingException
+    {
+        String s = "<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"no\"?>\n" +
+                    "<?xpacket begin=\"\" 
id=\"W5M0MpCehiHzreSzNTczkc9d\"?>\n" +
+                    "<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">\n" +
+                    "  <rdf:RDF 
xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\";>\n" +
+                    "           <rdf:Description 
xmlns:xmpTPg=\"http://ns.adobe.com/xap/1.0/t/pg/\""; +
+                    "                            
xmlns:stDim=\"http://ns.adobe.com/xap/1.0/sType/Dimensions#\""; +
+                    "                           rdf:about=\"\">\n" +
+                    "                  <xmpTPg:MaxPageSize>\n" +
+                    "                          <rdf:Description stDim:w=\"4\" 
stDim:h=\"3\">\n" +
+                    "                                  
<stDim:unit>inch</stDim:unit>\n" +
+                    "                          </rdf:Description>\n" +
+                    "                  </xmpTPg:MaxPageSize>\n" +
+                    "                  <xmpTPg:NPages>7</xmpTPg:NPages>\n" +
+                    "          </rdf:Description>\n" +
+                    "  </rdf:RDF>\n" +
+                    "</x:xmpmeta><?xpacket end=\"r\"?>";
+        DomXmpParser xmpParser = new DomXmpParser();
+        XMPMetadata xmp = xmpParser.parse(s.getBytes(StandardCharsets.UTF_8));
+        XMPPageTextSchema pageTextSchema = xmp.getPageTextSchema();
+        DimensionsType dim = (DimensionsType) 
pageTextSchema.getProperty(XMPPageTextSchema.MAX_PAGE_SIZE);
+        Assertions.assertEquals("DimensionsType{4.0 x 3.0 inch}", 
dim.toString());
+        Assertions.assertEquals("[NPages=IntegerType:7]", 
pageTextSchema.getProperty(XMPPageTextSchema.N_PAGES).toString());
+    }
+
+    /**
+     * PDFBOX-3882: Test PageTextSchema with dimensions as attributes only.
+     *
+     * @throws XmpParsingException
+     */
+    @Test
+    void testPageTextSchema3() throws XmpParsingException
+    {
+        String s = "<?xml version=\"1.0\" encoding=\"UTF-8\" 
standalone=\"no\"?>\n" +
+                    "<?xpacket begin=\"\" 
id=\"W5M0MpCehiHzreSzNTczkc9d\"?>\n" +
+                    "<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">\n" +
+                    "  <rdf:RDF 
xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\";>\n" +
+                    "           <rdf:Description 
xmlns:xmpTPg=\"http://ns.adobe.com/xap/1.0/t/pg/\""; +
+                    "                            
xmlns:stDim=\"http://ns.adobe.com/xap/1.0/sType/Dimensions#\""; +
+                    "                           rdf:about=\"\">\n" +
+                    "                  <xmpTPg:MaxPageSize>\n" +
+                    "                          <rdf:Description stDim:w=\"4\" 
stDim:h=\"3\" stDim:unit=\"inch\"/>\n" +
+                    "                  </xmpTPg:MaxPageSize>\n" +
+                    "                  <xmpTPg:NPages>7</xmpTPg:NPages>\n" +
+                    "          </rdf:Description>\n" +
+                    "  </rdf:RDF>\n" +
+                    "</x:xmpmeta><?xpacket end=\"r\"?>";
+        DomXmpParser xmpParser = new DomXmpParser();
+        XMPMetadata xmp = xmpParser.parse(s.getBytes(StandardCharsets.UTF_8));
+        XMPPageTextSchema pageTextSchema = xmp.getPageTextSchema();
+        DimensionsType dim = (DimensionsType) 
pageTextSchema.getProperty(XMPPageTextSchema.MAX_PAGE_SIZE);
+        Assertions.assertEquals("DimensionsType{4.0 x 3.0 inch}", 
dim.toString());
+        Assertions.assertEquals("[NPages=IntegerType:7]", 
pageTextSchema.getProperty(XMPPageTextSchema.N_PAGES).toString());
+    }
 }

Reply via email to