4.19. XMP-Daten vergleichen

Auch die XMP-Daten zweier PDF-Dokumente werden auf XPath-Basis miteinander verglichen. Die Implementierungen der XMP- und XFA-Tests sind gleich und damit auch die Schnittstelle. Weil das vorhergehende Kapitel 3.29: „XFA Daten“ die Tests schon ausführlich beschreibt, soll hier nur ein Beispiel für XMP-Tests gezeigt werden.

Im Zweifelsfall können XMP-Daten mit dem Hilfsprogramm ExtractXMPData in eine Datei exportiert und dort analysiert werden. Siehe Kapitel 9.14: „XMP-Daten nach XML extrahieren“.

Übersicht

Folgendes Tag steht für Tests zur Verfügung:

<!-- Tag to compare XMP data: -->

<haveSameXMPData />

Beispiel

<testcase name="haveSameXMPData_ResulttypeNode">
  <assertThat testDocument="test/test.pdf"
              masterDocument="master/master.pdf"
  >
    <haveSameXMPData>
      <matchingXPath expr="//pdf:Producer" 
                     withResultType="NODE" 
      />
    </haveSameXMPData>
  </assertThat>
</testcase>

Die XPath-Ergebnistypen sind die gleichen, wie für XFA-Tests.

Die XPath-Ausdrücke dürfen auch XPath-Funktionen enthalten.

Werden zwei Dokumente verglichen, die beide keine XMP-Daten enthalten, wirft PDFUnit eine Exception. Dieses Verhalten ist sicherlich diskussionswürdig, jedoch macht es keinen Sinn, etwas auf Gleichheit zu vergleichen, das nicht existiert. Ein solcher Test kann ersatzlos gelöscht werden.