PDFUnit-XML - typische Beispiele

PDFUnit-XML testet wie auch die Java-Version von PDFUnit sichtbare und unsichtbare Teile eines PDF-Dokumentes. Texte einer PDF-Seite können als echter Text (kein Bild) oder als gerendertes Bild verarbeitet werden.

Weiterhin ist es möglich, viele Eigenschaften eines Test-PDF Dokumentes gegen ein Referenz-Dokument zu vergleichen.

Die nachfolgenden Beispiele zeigen einen kleinen Ausschnitt der Testmöglichkeiten.

Textinhalte auf einer bestimmten Seite

 <testcase name="hasText_OnIndividualPages">
   <assertThat testDocument="&pdfdir;/content/diverseContentOnMultiplePages.pdf">
     <hasText onPage="2">
       <containing>lorem ipsum</containing>
     </hasText>
   </assertThat>
 </testcase>

Textinhalte in einem Seitenausschnitt

Das folgende Beispiel zeigt die Definition und Benutzung eines Seitenausschnitts. Innerhalb des Ausschnitts kann der erwartete Text mit allen Funktionen überprüft werden, die für einen Textvergleich angeboten werden.

 <testcase name="hasText_OnFirstPage_InRegion">
   <assertThat testDocument="&pdfdir;/content/diverseContentOnMultiplePages.pdf">
     <hasText on="FIRST_PAGE" >
       <inRegion upperLeftX="17" upperLeftY="45" width="60" height="9" >
         <startingWith>lorem</startingWith>
         <containing>ipsum</containing>
         <endingWith>est laborum.</endingWith>
       </inRegion>
     </hasText>
   </assertThat>
 </testcase>

Texte in Formularfeldern

Formulare sind häufig Teil einer Prozesskette. Deshalb sollte sichergestellt werden, dass die erzeugten Formularfelder korrekt sind. PDFUnit kann viele Eigenschaften der Felder und natürlich auch die Inhalte überprüfen.

 <testcase name="hasField_MatchingComplete">
   <assertThat testDocument="&pdfdir;/acrofields/letter.pdf">
     <hasField withName="customer-name">
       <matchingComplete>
         John
       </matchingComplete>
     </hasField>
   </assertThat>
 </testcase>

Enthalten Formularfelder zuviel Text?

Ein Formularfeld kann soviel Text enthalten, dass dieser nach dem Rendern durch einen PDF-Reader nicht mehr ins Fenster passt. Diese Situation kann aber getestet werden. Das PDF-Dokument für das folgende Beispiel stellt diese Situation nach, sodass ein Testfehler erwartet wird.

 <testcase name="hasFields_WithoutTextOverflow_Fieldname"
           errorExpected="YES"
 >
   <assertThat testDocument="&pdfdir;/acrofields/fieldSizeAndText.pdf">
     <hasField withName="Textfield, too much text, multiline:">
       <withoutTextOverflow />
     </hasField>
   </assertThat>
 </testcase>

Gerenderte PDF-Seiten eines Test Dokumentes mit einer Vorlage vergleichen

PDFUnit kann sowohl Text, als auch eine gerenderte Seite als Bild mit einer Vorlage (PDF-Referenz) vergleichen. Das nachfolgende Beispiel zeigt einen solchen Vergleich, der zusätzlich noch auf einen Seitenausschnitt auf der ersten Seite eines Dokumentes eingeschränkt wird.

 <testcase name="haveSameAppearance_OnFirstPage_InRegion">
   <assertThat testDocument="&pdfdir;/test/test.pdf"
               masterDocument="&pdfdir;/master/master.pdf"
   >
     <haveSameAppearance on="FIRST_PAGE">
       <inRegion upperLeftX="20" upperLeftY="20" width="180" height="40" />
     </haveSameAppearance>
   </assertThat>
 </testcase>

Weitere Beispiele

Das aktuelle Entwicklerhandbuch enthält zu allen Testbereichen ausführliche Beispiele. Es steht online zur Verfügung und kann als PDF heruntergeladen werden.