780 lines
21 KiB
PHP
780 lines
21 KiB
PHP
<?php
|
|
|
|
/**
|
|
* SettingsTest.php
|
|
*
|
|
* @since 2011-05-23
|
|
* @category Library
|
|
* @package PdfPage
|
|
* @author Nicola Asuni <info@tecnick.com>
|
|
* @copyright 2011-2024 Nicola Asuni - Tecnick.com LTD
|
|
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
|
|
* @link https://github.com/tecnickcom/tc-lib-pdf-page
|
|
*
|
|
* This file is part of tc-lib-pdf-page software library.
|
|
*/
|
|
|
|
namespace Test;
|
|
|
|
/**
|
|
* Settings Test
|
|
*
|
|
* @since 2011-05-23
|
|
* @category Library
|
|
* @package PdfPage
|
|
* @author Nicola Asuni <info@tecnick.com>
|
|
* @copyright 2011-2024 Nicola Asuni - Tecnick.com LTD
|
|
* @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
|
|
* @link https://github.com/tecnickcom/tc-lib-pdf-page
|
|
*/
|
|
class SettingsTest extends TestUtil
|
|
{
|
|
protected function getTestObject(): \Com\Tecnick\Pdf\Page\Page
|
|
{
|
|
$pdf = new \Com\Tecnick\Color\Pdf();
|
|
$encrypt = new \Com\Tecnick\Pdf\Encrypt\Encrypt(false);
|
|
return new \Com\Tecnick\Pdf\Page\Page('mm', $pdf, $encrypt, false, false);
|
|
}
|
|
|
|
public function testGetPageID(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
|
|
$pid = $page->getPageID();
|
|
$this->assertEquals(-1, $pid);
|
|
}
|
|
|
|
public function testSanitizePageNumber(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizePageNumber($data);
|
|
$this->assertEquals([], $data);
|
|
|
|
$data = [
|
|
'num' => -1,
|
|
];
|
|
$page->sanitizePageNumber($data);
|
|
$this->assertEquals(
|
|
[
|
|
'num' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'num' => 0,
|
|
];
|
|
$page->sanitizePageNumber($data);
|
|
$this->assertEquals(
|
|
[
|
|
'num' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'num' => 1,
|
|
];
|
|
$page->sanitizePageNumber($data);
|
|
$this->assertEquals(
|
|
[
|
|
'num' => 1,
|
|
],
|
|
$data
|
|
);
|
|
}
|
|
|
|
public function testSanitizeTime(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeTime($data);
|
|
$this->assertArrayHasKey('time', $data);
|
|
$this->assertNotEmpty($data['time']); // @phpstan-ignore offsetAccess.notFound
|
|
|
|
$data = [
|
|
'time' => -1,
|
|
];
|
|
$page->sanitizeTime($data);
|
|
$this->assertEquals(
|
|
[
|
|
'time' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'time' => 0,
|
|
];
|
|
$page->sanitizeTime($data);
|
|
$this->assertArrayHasKey('time', $data);
|
|
$this->assertNotEmpty($data['time']); // @phpstan-ignore offsetAccess.notFound
|
|
|
|
$data = [
|
|
'time' => 1,
|
|
];
|
|
$page->sanitizeTime($data);
|
|
$this->assertEquals(
|
|
[
|
|
'time' => 1,
|
|
],
|
|
$data
|
|
);
|
|
}
|
|
|
|
public function testSanitizeGroup(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeGroup($data);
|
|
$this->assertEquals(
|
|
[
|
|
'group' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'group' => -1,
|
|
];
|
|
$page->sanitizeGroup($data);
|
|
$this->assertEquals(
|
|
[
|
|
'group' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'group' => 0,
|
|
];
|
|
$page->sanitizeGroup($data);
|
|
$this->assertEquals(
|
|
[
|
|
'group' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'group' => 1,
|
|
];
|
|
$page->sanitizeGroup($data);
|
|
$this->assertEquals(
|
|
[
|
|
'group' => 1,
|
|
],
|
|
$data
|
|
);
|
|
}
|
|
|
|
public function testSanitizeContent(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeContent($data);
|
|
$this->assertEquals(
|
|
[
|
|
'content' => [''],
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'content' => 'test',
|
|
];
|
|
$page->sanitizeContent($data); // @phpstan-ignore argument.type
|
|
$this->assertEquals(
|
|
[
|
|
'content' => ['test'],
|
|
],
|
|
$data
|
|
);
|
|
}
|
|
|
|
public function testSanitizeAnnotRefs(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeAnnotRefs($data);
|
|
$this->assertEquals(
|
|
[
|
|
'annotrefs' => [],
|
|
],
|
|
$data
|
|
);
|
|
}
|
|
|
|
public function testSanitizeRotation(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeRotation($data);
|
|
$this->assertEquals(
|
|
[
|
|
'rotation' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'rotation' => 0,
|
|
];
|
|
$page->sanitizeRotation($data);
|
|
$this->assertEquals(
|
|
[
|
|
'rotation' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'rotation' => 100,
|
|
];
|
|
$page->sanitizeRotation($data);
|
|
$this->assertEquals(
|
|
[
|
|
'rotation' => 0,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'rotation' => 90,
|
|
];
|
|
$page->sanitizeRotation($data);
|
|
$this->assertEquals(
|
|
[
|
|
'rotation' => 90,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'rotation' => 180,
|
|
];
|
|
$page->sanitizeRotation($data);
|
|
$this->assertEquals(
|
|
[
|
|
'rotation' => 180,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'rotation' => 270,
|
|
];
|
|
$page->sanitizeRotation($data);
|
|
$this->assertEquals(
|
|
[
|
|
'rotation' => 270,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'rotation' => 360,
|
|
];
|
|
$page->sanitizeRotation($data);
|
|
$this->assertEquals(
|
|
[
|
|
'rotation' => 360,
|
|
],
|
|
$data
|
|
);
|
|
}
|
|
|
|
public function testSanitizeZoom(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeZoom($data);
|
|
$this->assertEquals(
|
|
[
|
|
'zoom' => 1,
|
|
],
|
|
$data
|
|
);
|
|
|
|
$data = [
|
|
'zoom' => 1.2,
|
|
];
|
|
$page->sanitizeZoom($data);
|
|
$this->assertEquals(
|
|
[
|
|
'zoom' => 1.2,
|
|
],
|
|
$data
|
|
);
|
|
}
|
|
|
|
public function testSanitizeTransitions(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeTransitions($data);
|
|
$this->assertEquals([], $data);
|
|
|
|
$data = [
|
|
'transition' => [
|
|
'Dur' => 0,
|
|
],
|
|
];
|
|
$page->sanitizeTransitions($data);
|
|
$exp = [
|
|
'transition' => [
|
|
'S' => 'R',
|
|
'D' => 1,
|
|
'B' => false,
|
|
],
|
|
];
|
|
$this->assertEquals($exp, $data);
|
|
|
|
$data = [
|
|
'transition' => [
|
|
'Dur' => 2,
|
|
'D' => 3,
|
|
'Dm' => 'V',
|
|
'S' => 'Glitter',
|
|
'M' => 'O',
|
|
'Di' => 315,
|
|
'SS' => 1.3,
|
|
'B' => true,
|
|
],
|
|
];
|
|
$page->sanitizeTransitions($data);
|
|
$exp = [
|
|
'transition' => [
|
|
'Dur' => 2,
|
|
'D' => 3,
|
|
'S' => 'Glitter',
|
|
'Di' => 315,
|
|
'SS' => 1.3,
|
|
'B' => true,
|
|
],
|
|
];
|
|
$this->assertEquals($exp, $data);
|
|
}
|
|
|
|
public function testSanitizeMargins(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeMargins($data);
|
|
$exp = [
|
|
'margin' => [
|
|
'booklet' => false,
|
|
'PL' => 0,
|
|
'PR' => 0,
|
|
'PT' => 0,
|
|
'HB' => 0,
|
|
'CT' => 0,
|
|
'CB' => 0,
|
|
'FT' => 0,
|
|
'PB' => 0,
|
|
],
|
|
'orientation' => 'P',
|
|
'height' => 297,
|
|
'width' => 210,
|
|
'ContentWidth' => 210,
|
|
'ContentHeight' => 297,
|
|
'HeaderHeight' => 0,
|
|
'FooterHeight' => 0,
|
|
];
|
|
$this->bcAssertEqualsWithDelta($exp, $data);
|
|
|
|
$data = [
|
|
'margin' => [
|
|
'booklet' => false,
|
|
'PL' => 11,
|
|
'PR' => 12,
|
|
'PT' => 13,
|
|
'HB' => 14,
|
|
'CT' => 15,
|
|
'CB' => 15,
|
|
'FT' => 13,
|
|
'PB' => 11,
|
|
],
|
|
'orientation' => 'P',
|
|
'height' => 297,
|
|
'width' => 210,
|
|
];
|
|
$page->sanitizeMargins($data);
|
|
$exp = [
|
|
'margin' => [
|
|
'booklet' => false,
|
|
'PL' => 11,
|
|
'PR' => 12,
|
|
'PT' => 13,
|
|
'HB' => 14,
|
|
'CT' => 15,
|
|
'CB' => 15,
|
|
'FT' => 13,
|
|
'PB' => 11,
|
|
],
|
|
'orientation' => 'P',
|
|
'height' => 297,
|
|
'width' => 210,
|
|
'ContentWidth' => 187,
|
|
'ContentHeight' => 267,
|
|
'HeaderHeight' => 1,
|
|
'FooterHeight' => 2,
|
|
];
|
|
$this->bcAssertEqualsWithDelta($exp, $data);
|
|
}
|
|
|
|
public function testSanitizeBoxData(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizeBoxData($data);
|
|
$exp = [
|
|
'orientation' => 'P',
|
|
'pheight' => 841.890,
|
|
'pwidth' => 595.276,
|
|
'box' => [
|
|
'MediaBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'CropBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'BleedBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'TrimBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'ArtBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
],
|
|
];
|
|
$this->bcAssertEqualsWithDelta($exp, $data);
|
|
|
|
$data = [
|
|
'format' => 'MediaBox',
|
|
'orientation' => 'L',
|
|
'box' => [
|
|
'MediaBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
],
|
|
];
|
|
$page->sanitizeBoxData($data);
|
|
$exp = [
|
|
'format' => 'CUSTOM',
|
|
'orientation' => 'L',
|
|
'box' => [
|
|
'MediaBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 841.890,
|
|
'ury' => 595.276,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'CropBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 841.890,
|
|
'ury' => 595.276,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'BleedBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 841.890,
|
|
'ury' => 595.276,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'TrimBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 841.890,
|
|
'ury' => 595.276,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'ArtBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 841.890,
|
|
'ury' => 595.276,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
],
|
|
'width' => 297,
|
|
'height' => 210,
|
|
'pwidth' => 841.890,
|
|
'pheight' => 595.276,
|
|
];
|
|
$this->bcAssertEqualsWithDelta($exp, $data);
|
|
|
|
$data = [
|
|
'width' => 210,
|
|
'height' => 297,
|
|
'pwidth' => 595.276,
|
|
'pheight' => 841.890,
|
|
'box' => [
|
|
'CropBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
],
|
|
];
|
|
$page->sanitizeBoxData($data);
|
|
$exp = [
|
|
'width' => 210,
|
|
'height' => 297,
|
|
'pwidth' => 595.276,
|
|
'pheight' => 841.890,
|
|
'box' => [
|
|
'CropBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'MediaBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'BleedBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'TrimBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
'ArtBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
],
|
|
'orientation' => 'P',
|
|
];
|
|
$this->bcAssertEqualsWithDelta($exp, $data);
|
|
}
|
|
|
|
public function testSanitizePageFormat(): void
|
|
{
|
|
$page = $this->getTestObject();
|
|
$data = [];
|
|
$page->sanitizePageFormat($data);
|
|
$exp = [
|
|
'orientation' => 'P',
|
|
'format' => 'A4',
|
|
'pheight' => 841.890,
|
|
'pwidth' => 595.276,
|
|
'width' => 210,
|
|
'height' => 297,
|
|
];
|
|
$this->bcAssertEqualsWithDelta($exp, $data);
|
|
|
|
$data = [
|
|
'box' => [
|
|
'MediaBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
],
|
|
];
|
|
$page->sanitizePageFormat($data);
|
|
$exp = [
|
|
'box' => [
|
|
'MediaBox' => [
|
|
'llx' => 0,
|
|
'lly' => 0,
|
|
'urx' => 595.276,
|
|
'ury' => 841.890,
|
|
'bci' => [
|
|
'color' => '#000000',
|
|
'width' => 0.353,
|
|
'style' => 'S',
|
|
'dash' => [
|
|
0 => 3,
|
|
],
|
|
],
|
|
],
|
|
],
|
|
'orientation' => 'P',
|
|
'format' => 'A4',
|
|
'pwidth' => 595.276,
|
|
'pheight' => 841.890,
|
|
'width' => 210.000,
|
|
'height' => 297.000,
|
|
];
|
|
$this->bcAssertEqualsWithDelta($exp, $data);
|
|
}
|
|
}
|