svgDrawer = new SvgDrawer($myPdf, $cssConverter);
}
/**
* Test IsDrawing Exception
*
* @expectedException \Spipu\Html2Pdf\Exception\HtmlParsingException
*/
public function testIsDrawingException()
{
$properties = [
'x' => 0,
'y' => 0,
'w' => '100mm',
'h' => '100mm',
];
$this->svgDrawer->startDrawing($properties);
$this->svgDrawer->startDrawing($properties);
}
/**
* Test IsDrawing
*/
public function testIsDrawingOk()
{
$properties = [
'x' => 0,
'y' => 0,
'w' => 100,
'h' => 100,
];
$this->assertFalse($this->svgDrawer->isDrawing());
$this->svgDrawer->startDrawing($properties);
$this->assertTrue($this->svgDrawer->isDrawing());
$this->svgDrawer->stopDrawing();
$this->assertFalse($this->svgDrawer->isDrawing());
}
/**
* Test properties
*/
public function testProperties()
{
$properties = [
'x' => 1,
'y' => 2,
'w' => 3,
'h' => 4,
];
$this->svgDrawer->startDrawing($properties);
$this->assertSame(1, $this->svgDrawer->getProperty('x'));
$this->assertSame(2, $this->svgDrawer->getProperty('y'));
$this->assertSame(3, $this->svgDrawer->getProperty('w'));
$this->assertSame(4, $this->svgDrawer->getProperty('h'));
}
/**
* Test: tokenize
*
* @param mixed $transform
* @param mixed $expected
*
* @dataProvider transformProvider
*/
public function testTransform($transform, $expected)
{
$properties = [
'x' => 0,
'y' => 0,
'w' => 100,
'h' => 100,
];
$this->svgDrawer->startDrawing($properties);
$result = $this->svgDrawer->prepareTransform($transform);
$this->assertArraySame($expected, $result);
}
/**
* @param array $expected
* @param array $result
*/
protected function assertArraySame($expected, $result)
{
if (is_array($expected)) {
foreach ($expected as $key => $value) {
$expected[$key] = round($value, 5);
}
}
if (is_array($result)) {
foreach ($result as $key => $value) {
$result[$key] = round($value, 5);
}
}
$this->assertSame($expected, $result);
}
/**
* provider: tokenize
*
* @return array
*/
public function transformProvider()
{
return array(
array(
false,
null
),
array(
'no instruction',
null
),
array(
'foo(1,2)',
null
),
array(
'before scale( 0.1 , 0.2 ) after',
[
0.1, 0.,
0., 0.2,
0., 0.
]
),
array(
'scale(0.1,0.2)',
[
0.1, 0.,
0., 0.2,
0., 0.
]
),
array(
'scale(0.1)',
[
0.1, 0.,
0., 0.1,
0., 0.
]
),
array(
'scale(,)',
[
1., 0.,
0., 1.,
0., 0.
]
),
array(
'scale()',
[
1., 0.,
0., 1.,
0., 0.
]
),
array(
'translate()',
[
1., 0.,
0., 1.,
0., 0.
]
),
array(
'translate(10mm)',
[
1., 0.,
0., 1.,
10., 0.
]
),
array(
'translate(10mm, 20mm)',
[
1., 0.,
0., 1.,
10., 20.
]
),
array(
'rotate()',
[
1., 0.,
0., 1.,
0., 0.
]
),
array(
'rotate(90)',
[
0., 1.,
-1., 0.,
0., 0.
]
),
array(
'rotate(180)',
[
-1., 0.,
0., -1.,
0., 0.
]
),
array(
'rotate(180, 10mm, 10mm)',
[
-1., 0.,
0., -1.,
-20., -20.
]
),
array(
'skewx()',
[
1., 0.,
0., 1.,
0., 0.
]
),
array(
'skewx(45)',
[
1., 0.,
1., 1.,
0., 0.
]
),
array(
'skewy()',
[
1., 0.,
0., 1.,
0., 0.
]
),
array(
'skewy(45)',
[
1., 1.,
0., 1.,
0., 0.
]
),
array(
'matrix()',
[
0., 0.,
0., 0.,
0., 0.
]
),
array(
'matrix(1,2,3,4,5%,6%)',
[
1., 2.,
3., 4.,
5., 6.
]
),
);
}
}