/** * @test * @dataProvider correctHeightOfPageProvider */ public function correctHeightOfPage($originalHeight, array $childrenDiagonalYCoord) { $page = new Page(array('page-size' => '500:' . $originalHeight)); foreach ($childrenDiagonalYCoord as $yCoord) { $node = $this->nodeObjectMother->getNodeStub(0, $page->getHeight(), 100, $page->getHeight() - $yCoord); $page->add($node); } $minYCoord = $childrenDiagonalYCoord ? min($childrenDiagonalYCoord) : $originalHeight; $this->formatter->format($page, $this->document); $expectedHeight = $originalHeight - $minYCoord; $translation = $originalHeight - $expectedHeight; $this->assertEquals($expectedHeight, $page->getRealHeight()); foreach ($page->getChildren() as $i => $child) { $expectedDiagonalYCoord = $childrenDiagonalYCoord[$i] - $translation; $actualDiagonalYCoord = $child->getDiagonalPoint()->getY(); $this->assertEquals($expectedDiagonalYCoord, $actualDiagonalYCoord); } }