Zurück |  | Weiter

## 3.33. Texte - von rechts nach links (RTL)

### Überblick

Tests mit RTL-Text unterscheiden sich nicht von Tests mit LTR-Text. Somit stehen alle Vergleichsmethoden für Texte zur Verfügung, wie für LTR-Text:

    // Testing page content:
    .hasText()                 // pages and regions has to be specified before

    // Validating expected text:
    .hasText().containing(..)
    .hasText().containing(.., WhitespaceProcessing)
    .hasText().endingWith(..)
    .hasText().endingWith(.., WhitespaceProcessing)
    .hasText().equalsTo(..)
    .hasText().equalsTo(.., WhitespaceProcessing)
    .hasText().matchingRegex(..)
    .hasText().startingWith(..)

    // Prove the absence of defined text:
    .hasText().notContaining(..)
    .hasText().notContaining(.., WhitespaceProcessing)
    .hasText().notEndingWith(..)
    .hasText().notMatchingRegex(..)
    .hasText().notStartingWith(..)

    // Validate multiple text in an expected order:
    .hasText().inOrder(..)
    .hasText().containingFirst(..).then(..)

### Beispiel - 'hello, world' von rechts nach links

Die nachfolgenden Testbeispiele beziehen sich auf zwei PDF-Dokumente, die den Text 'hello, world' auf Arabisch und auf Hebräisch enthalten:

    // Testing RTL text:
    @Test
    public void hasRTLText_HelloWorld_Arabic() throws Exception {
      String filename = "helloworld_ar.pdf";
      String rtlHelloWorld = "مرحبا، العالم";  // english: 'hello, world!'

      int leftX  = 97;
      int upperY = 69;
      int width  = 69;
      int height = 16;
      PageRegion pageRegion = new PageRegion(leftX, upperY, width, height);
      AssertThat.document(filename)
                .restrictedTo(FIRST_PAGE)
                .restrictedTo(pageRegion)
                .hasText()
                .startingWith(rtlHelloWorld)
      ;
    }

    // Testing RTL text:
    @Test
    public void hasRTLText_HelloWorld_Hebrew() throws Exception {
      String filename = "helloworld_iw.pdf";
      String rtlHelloWorld = "שלום, עולם";   // english: 'hello, world!'

      int leftX  = 97;
      int upperY = 69;
      int width  = 69;
      int height = 16;
      PageRegion pageRegion = new PageRegion(leftX, upperY, width, height);
      AssertThat.document(filename)
                .restrictedTo(FIRST_PAGE)
                .restrictedTo(pageRegion)
                .hasText()
                .endingWith(rtlHelloWorld)
      ;
    }

Es ist durchaus nicht uninteressant, dass der Eclipse-Editor die unterschiedlichen Schriften und Schreibrichtungen problemlos umsetzt. Hier ein Screenshot mit dem Java-Code aus dem vorhergehenden Beispiel:

PDFUnit benutzt als PDF-Parser PDFBox. PDFBox erkennt rechts-links ausgerichteten Text und wandelt ihn in einen Java String um, ohne dass Entwickler dafür besondere Methoden aufrufen. Gratulation dafür an das Entwickler-Team.

Zurück | Nach oben | Weiter
3.32. Texte - senkrecht, schräg und überkopf | Zum Anfang | 3.34. Tagging