Kapitel 6. Praxisbeispiele

6.1. Text im Header ab Seite 2

Ausgangssituation

Ihr Unternehmen verschickt elektronische Rechungen. Jede Seite der Rechnung nach der Titelseite soll einen Link auf die Homepage Ihres Unternehmens enthalten.

Problem

Der Header der ersten Seite unterscheidet sich von dem der anderen Seiten. Außerdem gibt es den zu testenden Link auch noch im Fließtext. Die Existenz dort darf den geplanten Test aber nicht stören.

Lösungsansatz

Für den Test müssen sowohl die relevanten Seiten spezifiziert werden, als auch der Bereich auf jeder Seite. Der folgende Code zeigt, wie einfach das ist.

Lösung

@Test
public void hasLinkInHeaderAfterPage2() throws Exception {
  String filename = "documentUnderTest.pdf";
  String linkToHomepage = "http://pdfunit.com/";
  PagesToUse pagesAfter1 = ON_EVERY_PAGE.after(1);
  PageRegion headerRegion = createHeaderRegion();
  
  AssertThat.document(filename)
            .restrictedTo(pagesAfter1)
            .restrictedTo(headerRegion)
            .hasText()
            .containing(linkToHomepage) 
  ;
}

private PageRegion createHeaderRegion() {
  int leftX  =   0;  // in millimeter
  int upperY =   0;
  int width  = 210;
  int height =  30; 
  PageRegion headerRegion = new PageRegion(leftX, upperY, width, height);
  return headerRegion;
}