52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace niklasravnsborg\LaravelPdf\Test;
|
|
|
|
use PDF;
|
|
use Imagick;
|
|
|
|
class PdfTest extends TestCase
|
|
{
|
|
public function testSimplePdfIsCorrect()
|
|
{
|
|
$pdf = PDF::loadHTML('<p>This gets tested!</p>');
|
|
$this->compareToSnapshot('simple', $pdf->output());
|
|
}
|
|
|
|
public function testExposifyPdfExposeIsCorrect()
|
|
{
|
|
$pdf = PDF::loadFile('tests/views/exposify-expose.html');
|
|
$this->compareToSnapshot('exposify', $pdf->output());
|
|
}
|
|
|
|
protected function compareToSnapshot($snapshotId, $data)
|
|
{
|
|
$snapshotFile = "tests/snapshots/{$snapshotId}.pdf";
|
|
|
|
// create snapshot if it doesn't exist
|
|
if (!file_exists($snapshotFile)) {
|
|
file_put_contents($snapshotFile, $data);
|
|
return;
|
|
}
|
|
|
|
$snapshot = file_get_contents($snapshotFile);
|
|
$this->assertPdfsLookTheSame($snapshot, $data);
|
|
}
|
|
|
|
public function assertPdfsLookTheSame($pdf1, $pdf2, $message = '')
|
|
{
|
|
$assertedImagick = new Imagick();
|
|
$assertedImagick->readImageBlob($pdf1);
|
|
$assertedImagick->resetIterator();
|
|
$assertedImagick = $assertedImagick->appendImages(true);
|
|
$testImagick = new Imagick();
|
|
$testImagick->readImageBlob($pdf2);
|
|
$testImagick->resetIterator();
|
|
$testImagick = $testImagick->appendImages(true);
|
|
|
|
$diff = $assertedImagick->compareImages($testImagick, 1);
|
|
$pdfsLookTheSame = 0.0 == $diff[1];
|
|
self::assertTrue($pdfsLookTheSame, 'Failed asserting that PDFs look the same.');
|
|
}
|
|
}
|