246 lines
6.2 KiB
PHP
246 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);
|
|
}
|
|
|
|
}
|