247 lines
6.2 KiB
PHP
247 lines
6.2 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace dokuwiki\plugin\wrap\test;
|
||
|
|
||
|
use DokuWikiTest;
|
||
|
|
||
|
/**
|
||
|
* Tests to ensure wrap syntax is correctly processed
|
||
|
*
|
||
|
* @group plugin_wrap
|
||
|
* @group plugins
|
||
|
*/
|
||
|
class SyntaxTest extends DokuWikiTest {
|
||
|
|
||
|
protected $pluginsEnabled = ['wrap'];
|
||
|
|
||
|
public function testNestedHeading() {
|
||
|
$instructions = p_get_instructions("<WRAP>\n==== Heading ====\n\nSome text\n</WRAP>");
|
||
|
$expected =
|
||
|
[
|
||
|
[
|
||
|
'document_start',
|
||
|
[],
|
||
|
0
|
||
|
],
|
||
|
[
|
||
|
'plugin',
|
||
|
[
|
||
|
'wrap_divwrap',
|
||
|
[
|
||
|
DOKU_LEXER_ENTER,
|
||
|
'<wrap'
|
||
|
],
|
||
|
DOKU_LEXER_ENTER,
|
||
|
'<WRAP>'
|
||
|
],
|
||
|
1
|
||
|
],
|
||
|
[
|
||
|
'header',
|
||
|
[
|
||
|
'Heading',
|
||
|
3,
|
||
|
8
|
||
|
],
|
||
|
8
|
||
|
],
|
||
|
[
|
||
|
'plugin',
|
||
|
[
|
||
|
'wrap_closesection',
|
||
|
[],
|
||
|
DOKU_LEXER_SPECIAL,
|
||
|
false
|
||
|
],
|
||
|
8
|
||
|
],
|
||
|
[
|
||
|
'p_open',
|
||
|
[],
|
||
|
8
|
||
|
],
|
||
|
[
|
||
|
'cdata',
|
||
|
[
|
||
|
'Some text'
|
||
|
],
|
||
|
27
|
||
|
],
|
||
|
[
|
||
|
'p_close',
|
||
|
[],
|
||
|
37
|
||
|
],
|
||
|
[
|
||
|
'plugin',
|
||
|
[
|
||
|
'wrap_divwrap',
|
||
|
[
|
||
|
DOKU_LEXER_EXIT,
|
||
|
''
|
||
|
],
|
||
|
DOKU_LEXER_EXIT,
|
||
|
'</WRAP>'
|
||
|
],
|
||
|
37
|
||
|
],
|
||
|
[
|
||
|
'document_end',
|
||
|
[],
|
||
|
37
|
||
|
]
|
||
|
];
|
||
|
$this->assertEquals($expected, $instructions);
|
||
|
}
|
||
|
|
||
|
public function testBlockNesting() {
|
||
|
$instructions = p_get_instructions("<WRAP>\nFoo\n\n</div> </block> Bar\n</WRAP>");
|
||
|
$expected =
|
||
|
[
|
||
|
[
|
||
|
'document_start',
|
||
|
[],
|
||
|
0
|
||
|
],
|
||
|
[
|
||
|
'plugin',
|
||
|
[
|
||
|
'wrap_divwrap',
|
||
|
[
|
||
|
DOKU_LEXER_ENTER,
|
||
|
'<wrap'
|
||
|
],
|
||
|
DOKU_LEXER_ENTER,
|
||
|
'<WRAP>'
|
||
|
],
|
||
|
1
|
||
|
],
|
||
|
[
|
||
|
'p_open',
|
||
|
[
|
||
|
],
|
||
|
1
|
||
|
],
|
||
|
[
|
||
|
'cdata',
|
||
|
[
|
||
|
'Foo'
|
||
|
],
|
||
|
8
|
||
|
],
|
||
|
[
|
||
|
'p_close',
|
||
|
[],
|
||
|
11
|
||
|
],
|
||
|
[
|
||
|
'p_open',
|
||
|
[
|
||
|
],
|
||
|
11
|
||
|
],
|
||
|
[
|
||
|
'cdata',
|
||
|
[
|
||
|
'</div> </block> Bar'
|
||
|
],
|
||
|
13
|
||
|
],
|
||
|
[
|
||
|
'p_close',
|
||
|
[],
|
||
|
33
|
||
|
],
|
||
|
[
|
||
|
'plugin',
|
||
|
[
|
||
|
'wrap_divwrap',
|
||
|
[
|
||
|
DOKU_LEXER_EXIT,
|
||
|
''
|
||
|
],
|
||
|
DOKU_LEXER_EXIT,
|
||
|
'</WRAP>'
|
||
|
],
|
||
|
33
|
||
|
],
|
||
|
[
|
||
|
'document_end',
|
||
|
[],
|
||
|
33
|
||
|
]
|
||
|
];
|
||
|
$this->assertEquals($expected, $instructions);
|
||
|
}
|
||
|
|
||
|
public function testInlineNesting() {
|
||
|
$instructions = p_get_instructions("<wrap>Foo </span> </inline> Bar</wrap>");
|
||
|
$expected =
|
||
|
[
|
||
|
[
|
||
|
'document_start',
|
||
|
[],
|
||
|
0
|
||
|
],
|
||
|
[
|
||
|
'p_open',
|
||
|
[
|
||
|
],
|
||
|
0
|
||
|
],
|
||
|
[
|
||
|
'plugin',
|
||
|
[
|
||
|
'wrap_spanwrap',
|
||
|
[
|
||
|
DOKU_LEXER_ENTER,
|
||
|
'<wrap'
|
||
|
],
|
||
|
DOKU_LEXER_ENTER,
|
||
|
'<wrap>'
|
||
|
],
|
||
|
1
|
||
|
],
|
||
|
[
|
||
|
'cdata',
|
||
|
[
|
||
|
'Foo </span> </inline> Bar'
|
||
|
],
|
||
|
7
|
||
|
],
|
||
|
[
|
||
|
'plugin',
|
||
|
[
|
||
|
'wrap_spanwrap',
|
||
|
[
|
||
|
DOKU_LEXER_EXIT,
|
||
|
''
|
||
|
],
|
||
|
DOKU_LEXER_EXIT,
|
||
|
'</wrap>'
|
||
|
],
|
||
|
32
|
||
|
],
|
||
|
[
|
||
|
'cdata',
|
||
|
[
|
||
|
''
|
||
|
],
|
||
|
39
|
||
|
],
|
||
|
[
|
||
|
'p_close',
|
||
|
[],
|
||
|
39
|
||
|
],
|
||
|
[
|
||
|
'document_end',
|
||
|
[],
|
||
|
39
|
||
|
]
|
||
|
];
|
||
|
$this->assertEquals($expected, $instructions);
|
||
|
}
|
||
|
|
||
|
}
|