1 | <?php
|
---|
2 | /**
|
---|
3 | * Html2Pdf Library - Tests
|
---|
4 | *
|
---|
5 | * HTML => PDF converter
|
---|
6 | * distributed under the OSL-3.0 License
|
---|
7 | *
|
---|
8 | * @package Html2pdf
|
---|
9 | * @author Laurent MINGUET <webmaster@html2pdf.fr>
|
---|
10 | * @copyright 2017 Laurent MINGUET
|
---|
11 | */
|
---|
12 |
|
---|
13 | namespace Spipu\Html2Pdf\Tests\Parsing;
|
---|
14 |
|
---|
15 | use Spipu\Html2Pdf\Parsing\HtmlLexer;
|
---|
16 |
|
---|
17 | /**
|
---|
18 | * Class HtmlLexerTest
|
---|
19 | */
|
---|
20 | class HtmlLexerTest extends \PHPUnit_Framework_TestCase
|
---|
21 | {
|
---|
22 | /**
|
---|
23 | * Test: tokenize
|
---|
24 | *
|
---|
25 | * @param string $html html to test
|
---|
26 | * @param array $expectedTokens expected token
|
---|
27 | *
|
---|
28 | * @dataProvider tokenizeProvider
|
---|
29 | */
|
---|
30 | public function testTokenize($html, $expectedTokens)
|
---|
31 | {
|
---|
32 | $lexer = new HtmlLexer();
|
---|
33 | $tokens = $lexer->tokenize($html);
|
---|
34 |
|
---|
35 | $this->assertEquals(count($expectedTokens), count($tokens));
|
---|
36 |
|
---|
37 | for ($i = 0; $i < count($tokens); $i++) {
|
---|
38 | $this->assertEquals($expectedTokens[$i][0], $tokens[$i]->getType());
|
---|
39 | $this->assertEquals($expectedTokens[$i][1], $tokens[$i]->getData());
|
---|
40 | $this->assertEquals($expectedTokens[$i][2], $tokens[$i]->getLine());
|
---|
41 | }
|
---|
42 | }
|
---|
43 |
|
---|
44 | /**
|
---|
45 | * provider: tokenize
|
---|
46 | *
|
---|
47 | * @return array
|
---|
48 | */
|
---|
49 | public function tokenizeProvider()
|
---|
50 | {
|
---|
51 | return array(
|
---|
52 | array(
|
---|
53 | '<p>test</p>',
|
---|
54 | array(
|
---|
55 | array('code', '<p>', 1),
|
---|
56 | array('txt', 'test', -1),
|
---|
57 | array('code', '</p>', 1),
|
---|
58 | )
|
---|
59 | ),
|
---|
60 | array(
|
---|
61 | "<a><!-- comment -->\n<b><c>test",
|
---|
62 | array(
|
---|
63 | array('code', '<a>', 1),
|
---|
64 | array('txt', "\n", -1),
|
---|
65 | array('code', '<b>', 2),
|
---|
66 | array('code', '<c>', 2),
|
---|
67 | array('txt', "test", -1),
|
---|
68 | )
|
---|
69 | )
|
---|
70 | );
|
---|
71 | }
|
---|
72 | }
|
---|