xref: /dokuwiki/_test/tests/inc/parser/renderer_xhtml.test.php (revision 90d36bec4240d860ffd71a9a50c4a97264db61c4)
10c4c0281SGerrit Uitslag<?php
20c4c0281SGerrit Uitslag
3be906b56SAndreas Gohruse dokuwiki\Parsing\Handler\Lists;
45c2aad12SAndreas Gohr
50c4c0281SGerrit Uitslag/**
60c4c0281SGerrit Uitslag * Class renderer_xhtml_test
70c4c0281SGerrit Uitslag */
80c4c0281SGerrit Uitslagclass renderer_xhtml_test extends DokuWikiTest {
90c4c0281SGerrit Uitslag    /** @var Doku_Renderer_xhtml */
100c4c0281SGerrit Uitslag    protected $R;
110c4c0281SGerrit Uitslag
120c4c0281SGerrit Uitslag    /**
130c4c0281SGerrit Uitslag     * Called for each test
140c4c0281SGerrit Uitslag     *
150c4c0281SGerrit Uitslag     * @throws Exception
160c4c0281SGerrit Uitslag     */
170c4c0281SGerrit Uitslag    function setUp() {
180c4c0281SGerrit Uitslag        parent::setUp();
190c4c0281SGerrit Uitslag        $this->R = new Doku_Renderer_xhtml();
200c4c0281SGerrit Uitslag    }
210c4c0281SGerrit Uitslag
220c4c0281SGerrit Uitslag    function tearDown() {
230c4c0281SGerrit Uitslag        unset($this->R);
240c4c0281SGerrit Uitslag    }
250c4c0281SGerrit Uitslag
260c4c0281SGerrit Uitslag    function test_tableopen_0arg() {
270c4c0281SGerrit Uitslag        $this->R->table_open();
280c4c0281SGerrit Uitslag
290c4c0281SGerrit Uitslag        $expected = '<div class="table"><table class="inline">'."\n";
300c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
310c4c0281SGerrit Uitslag    }
320c4c0281SGerrit Uitslag
330c4c0281SGerrit Uitslag    function test_tableopen_1arg() {
340c4c0281SGerrit Uitslag        $this->R->table_open(4);
350c4c0281SGerrit Uitslag
360c4c0281SGerrit Uitslag        $expected = '<div class="table"><table class="inline">'."\n";
370c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
380c4c0281SGerrit Uitslag    }
390c4c0281SGerrit Uitslag
400c4c0281SGerrit Uitslag    function test_tableopen_2arg() {
410c4c0281SGerrit Uitslag        $this->R->table_open(4, 4);
420c4c0281SGerrit Uitslag
430c4c0281SGerrit Uitslag        $expected = '<div class="table"><table class="inline">'."\n";
440c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
450c4c0281SGerrit Uitslag    }
460c4c0281SGerrit Uitslag
470c4c0281SGerrit Uitslag    function test_tableopen_3arg() {
480c4c0281SGerrit Uitslag        $this->R->table_open(4, 4, 100);
490c4c0281SGerrit Uitslag
500c4c0281SGerrit Uitslag        $expected = '<div class="table sectionedit1"><table class="inline">'."\n";
510c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
520c4c0281SGerrit Uitslag    }
530c4c0281SGerrit Uitslag
542e0ebe60SAndreas Gohr    function test_tableopen_4arg_str() {
550c4c0281SGerrit Uitslag        $this->R->table_open(4, 4, 100, 'feature');
560c4c0281SGerrit Uitslag
570c4c0281SGerrit Uitslag        $expected = '<div class="table feature sectionedit1"><table class="inline">'."\n";
580c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
590c4c0281SGerrit Uitslag    }
600c4c0281SGerrit Uitslag
612e0ebe60SAndreas Gohr    function test_tableopen_4arg_arr() {
622e0ebe60SAndreas Gohr        $this->R->table_open(4, 4, 100, array('feature', 'test'));
632e0ebe60SAndreas Gohr
642e0ebe60SAndreas Gohr        $expected = '<div class="table feature test sectionedit1"><table class="inline">'."\n";
652e0ebe60SAndreas Gohr        $this->assertEquals($expected, $this->R->doc);
662e0ebe60SAndreas Gohr    }
672e0ebe60SAndreas Gohr
680c4c0281SGerrit Uitslag    function test_table() {
690c4c0281SGerrit Uitslag        $this->R->table_open(null, null, null, 'feature');
700c4c0281SGerrit Uitslag        $this->R->tablethead_open();
710c4c0281SGerrit Uitslag
720c4c0281SGerrit Uitslag        $this->R->tablerow_open('item');
730c4c0281SGerrit Uitslag        $this->R->tableheader_open();
740c4c0281SGerrit Uitslag        $this->R->cdata('header1');
750c4c0281SGerrit Uitslag        $this->R->tableheader_close();
760c4c0281SGerrit Uitslag        $this->R->tableheader_open(1, null, 1, 'second');
770c4c0281SGerrit Uitslag        $this->R->cdata('header2');
780c4c0281SGerrit Uitslag        $this->R->tableheader_close();
790c4c0281SGerrit Uitslag        $this->R->tablerow_close();
800c4c0281SGerrit Uitslag
810c4c0281SGerrit Uitslag        $this->R->tablethead_close();
820c4c0281SGerrit Uitslag        $this->R->tabletbody_open();
830c4c0281SGerrit Uitslag
840c4c0281SGerrit Uitslag        $this->R->tablerow_open('values');
850c4c0281SGerrit Uitslag        $this->R->tablecell_open(1, null, 1, 'first value');
860c4c0281SGerrit Uitslag        $this->R->cdata('cell1,1');
870c4c0281SGerrit Uitslag        $this->R->tablecell_close();
880c4c0281SGerrit Uitslag        $this->R->tablecell_open(1, null, 1, 'second');
890c4c0281SGerrit Uitslag        $this->R->cdata('cell1,2');
900c4c0281SGerrit Uitslag        $this->R->tablecell_close();
910c4c0281SGerrit Uitslag        $this->R->tablerow_close();
920c4c0281SGerrit Uitslag
930c4c0281SGerrit Uitslag        $this->R->tablerow_open();
940c4c0281SGerrit Uitslag        $this->R->tablecell_open();
950c4c0281SGerrit Uitslag        $this->R->cdata('cell2.1');
960c4c0281SGerrit Uitslag        $this->R->tablecell_close();
970c4c0281SGerrit Uitslag        $this->R->tablecell_open();
980c4c0281SGerrit Uitslag        $this->R->cdata('cell2,2');
990c4c0281SGerrit Uitslag        $this->R->tablecell_close();
1000c4c0281SGerrit Uitslag        $this->R->tablerow_close();
1010c4c0281SGerrit Uitslag
1020c4c0281SGerrit Uitslag        $this->R->tabletbody_close();
1030c4c0281SGerrit Uitslag        $this->R->table_close();
1040c4c0281SGerrit Uitslag
1050c4c0281SGerrit Uitslag        $expected = '<div class="table feature"><table class="inline">
1060c4c0281SGerrit Uitslag	<thead>
1070c4c0281SGerrit Uitslag	<tr class="row0 item">
1080c4c0281SGerrit Uitslag		<th class="col0">header1</th><th class="col1 second">header2</th>
1090c4c0281SGerrit Uitslag	</tr>
1100c4c0281SGerrit Uitslag	</thead>
1110c4c0281SGerrit Uitslag	<tbody>
1120c4c0281SGerrit Uitslag	<tr class="row1 values">
1130c4c0281SGerrit Uitslag		<td class="col0 first value">cell1,1</td><td class="col1 second">cell1,2</td>
1140c4c0281SGerrit Uitslag	</tr>
1150c4c0281SGerrit Uitslag	<tr class="row2">
1160c4c0281SGerrit Uitslag		<td class="col0">cell2.1</td><td class="col1">cell2,2</td>
1170c4c0281SGerrit Uitslag	</tr>
1180c4c0281SGerrit Uitslag	</tbody>
1190c4c0281SGerrit Uitslag</table></div>
1200c4c0281SGerrit Uitslag';
1210c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
1220c4c0281SGerrit Uitslag    }
1230c4c0281SGerrit Uitslag
1240c4c0281SGerrit Uitslag    function test_olist() {
1250c4c0281SGerrit Uitslag        $this->R->document_start();
1260c4c0281SGerrit Uitslag        $this->R->listo_open();
1270c4c0281SGerrit Uitslag
1285c2aad12SAndreas Gohr        $this->R->listitem_open(1, Lists::NODE);
1290c4c0281SGerrit Uitslag        $this->R->listcontent_open();
1300c4c0281SGerrit Uitslag        $this->R->cdata('item1');
1310c4c0281SGerrit Uitslag        $this->R->listcontent_close();
1320c4c0281SGerrit Uitslag
1330c4c0281SGerrit Uitslag        $this->R->listo_open();
1340c4c0281SGerrit Uitslag
1350c4c0281SGerrit Uitslag        $this->R->listitem_open(2);
1360c4c0281SGerrit Uitslag        $this->R->listcontent_open();
1370c4c0281SGerrit Uitslag        $this->R->cdata('item1b');
1380c4c0281SGerrit Uitslag        $this->R->listcontent_close();
1390c4c0281SGerrit Uitslag        $this->R->listitem_close();
1400c4c0281SGerrit Uitslag
1410c4c0281SGerrit Uitslag        $this->R->listo_close();
1420c4c0281SGerrit Uitslag        $this->R->listitem_close();
1430c4c0281SGerrit Uitslag
1440c4c0281SGerrit Uitslag        $this->R->listitem_open(1);
1450c4c0281SGerrit Uitslag        $this->R->listcontent_open();
1460c4c0281SGerrit Uitslag        $this->R->cdata('item2');
1470c4c0281SGerrit Uitslag        $this->R->listcontent_close();
1480c4c0281SGerrit Uitslag        $this->R->listitem_close();
1490c4c0281SGerrit Uitslag
1505c2aad12SAndreas Gohr        $this->R->listitem_open(1, Lists::NODE);
1510c4c0281SGerrit Uitslag        $this->R->listcontent_open();
1520c4c0281SGerrit Uitslag        $this->R->cdata('item3');
1530c4c0281SGerrit Uitslag        $this->R->listcontent_close();
1540c4c0281SGerrit Uitslag
1550c4c0281SGerrit Uitslag        $this->R->listo_open('special');
1560c4c0281SGerrit Uitslag
1570c4c0281SGerrit Uitslag        $this->R->listitem_open(2);
1580c4c0281SGerrit Uitslag        $this->R->listcontent_open();
1590c4c0281SGerrit Uitslag        $this->R->cdata('item3b');
1600c4c0281SGerrit Uitslag        $this->R->listcontent_close();
1610c4c0281SGerrit Uitslag        $this->R->listitem_close();
1620c4c0281SGerrit Uitslag
1630c4c0281SGerrit Uitslag        $this->R->listo_close();
1640c4c0281SGerrit Uitslag        $this->R->listitem_close();
1650c4c0281SGerrit Uitslag
1660c4c0281SGerrit Uitslag        $this->R->listo_close();
1670c4c0281SGerrit Uitslag        $this->R->document_end();
1680c4c0281SGerrit Uitslag
1690c4c0281SGerrit Uitslag        $expected = '<ol>
1700c4c0281SGerrit Uitslag<li class="level1 node"><div class="li">item1</div>
1710c4c0281SGerrit Uitslag<ol>
1720c4c0281SGerrit Uitslag<li class="level2"><div class="li">item1b</div>
1730c4c0281SGerrit Uitslag</li>
1740c4c0281SGerrit Uitslag</ol>
1750c4c0281SGerrit Uitslag</li>
1760c4c0281SGerrit Uitslag<li class="level1"><div class="li">item2</div>
1770c4c0281SGerrit Uitslag</li>
1780c4c0281SGerrit Uitslag<li class="level1 node"><div class="li">item3</div>
1790c4c0281SGerrit Uitslag<ol class="special">
1800c4c0281SGerrit Uitslag<li class="level2"><div class="li">item3b</div>
1810c4c0281SGerrit Uitslag</li>
1820c4c0281SGerrit Uitslag</ol>
1830c4c0281SGerrit Uitslag</li>
1840c4c0281SGerrit Uitslag</ol>
1850c4c0281SGerrit Uitslag';
1860c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
1870c4c0281SGerrit Uitslag    }
1880c4c0281SGerrit Uitslag
1890c4c0281SGerrit Uitslag    function test_ulist() {
1900c4c0281SGerrit Uitslag        $this->R->document_start();
1910c4c0281SGerrit Uitslag        $this->R->listu_open();
1920c4c0281SGerrit Uitslag
1935c2aad12SAndreas Gohr        $this->R->listitem_open(1, Lists::NODE);
1940c4c0281SGerrit Uitslag        $this->R->listcontent_open();
1950c4c0281SGerrit Uitslag        $this->R->cdata('item1');
1960c4c0281SGerrit Uitslag        $this->R->listcontent_close();
1970c4c0281SGerrit Uitslag
1980c4c0281SGerrit Uitslag        $this->R->listu_open();
1990c4c0281SGerrit Uitslag
2000c4c0281SGerrit Uitslag        $this->R->listitem_open(2);
2010c4c0281SGerrit Uitslag        $this->R->listcontent_open();
2020c4c0281SGerrit Uitslag        $this->R->cdata('item1b');
2030c4c0281SGerrit Uitslag        $this->R->listcontent_close();
2040c4c0281SGerrit Uitslag        $this->R->listitem_close();
2050c4c0281SGerrit Uitslag
2060c4c0281SGerrit Uitslag        $this->R->listu_close();
2070c4c0281SGerrit Uitslag        $this->R->listitem_close();
2080c4c0281SGerrit Uitslag
2090c4c0281SGerrit Uitslag        $this->R->listitem_open(1);
2100c4c0281SGerrit Uitslag        $this->R->listcontent_open();
2110c4c0281SGerrit Uitslag        $this->R->cdata('item2');
2120c4c0281SGerrit Uitslag        $this->R->listcontent_close();
2130c4c0281SGerrit Uitslag        $this->R->listitem_close();
2140c4c0281SGerrit Uitslag
2155c2aad12SAndreas Gohr        $this->R->listitem_open(1, Lists::NODE);
2160c4c0281SGerrit Uitslag        $this->R->listcontent_open();
2170c4c0281SGerrit Uitslag        $this->R->cdata('item3');
2180c4c0281SGerrit Uitslag        $this->R->listcontent_close();
2190c4c0281SGerrit Uitslag
2200c4c0281SGerrit Uitslag        $this->R->listu_open('special');
2210c4c0281SGerrit Uitslag
2220c4c0281SGerrit Uitslag        $this->R->listitem_open(2);
2230c4c0281SGerrit Uitslag        $this->R->listcontent_open();
2240c4c0281SGerrit Uitslag        $this->R->cdata('item3b');
2250c4c0281SGerrit Uitslag        $this->R->listcontent_close();
2260c4c0281SGerrit Uitslag        $this->R->listitem_close();
2270c4c0281SGerrit Uitslag
2280c4c0281SGerrit Uitslag        $this->R->listu_close();
2290c4c0281SGerrit Uitslag        $this->R->listitem_close();
2300c4c0281SGerrit Uitslag
2310c4c0281SGerrit Uitslag        $this->R->listu_close();
2320c4c0281SGerrit Uitslag        $this->R->document_end();
2330c4c0281SGerrit Uitslag
2340c4c0281SGerrit Uitslag        $expected = '<ul>
2350c4c0281SGerrit Uitslag<li class="level1 node"><div class="li">item1</div>
2360c4c0281SGerrit Uitslag<ul>
2370c4c0281SGerrit Uitslag<li class="level2"><div class="li">item1b</div>
2380c4c0281SGerrit Uitslag</li>
2390c4c0281SGerrit Uitslag</ul>
2400c4c0281SGerrit Uitslag</li>
2410c4c0281SGerrit Uitslag<li class="level1"><div class="li">item2</div>
2420c4c0281SGerrit Uitslag</li>
2430c4c0281SGerrit Uitslag<li class="level1 node"><div class="li">item3</div>
2440c4c0281SGerrit Uitslag<ul class="special">
2450c4c0281SGerrit Uitslag<li class="level2"><div class="li">item3b</div>
2460c4c0281SGerrit Uitslag</li>
2470c4c0281SGerrit Uitslag</ul>
2480c4c0281SGerrit Uitslag</li>
2490c4c0281SGerrit Uitslag</ul>
2500c4c0281SGerrit Uitslag';
2510c4c0281SGerrit Uitslag        $this->assertEquals($expected, $this->R->doc);
2520c4c0281SGerrit Uitslag    }
253f515db7fSAndreas Gohr
254f515db7fSAndreas Gohr    public function test_blankHeader() {
255f515db7fSAndreas Gohr        $this->R->header('0', 1, 1);
256f515db7fSAndreas Gohr        $expected = '<h1 class="sectionedit1" id="section0">0</h1>';
257f515db7fSAndreas Gohr        $this->assertEquals($expected, trim($this->R->doc));
258f515db7fSAndreas Gohr    }
259f515db7fSAndreas Gohr
260f515db7fSAndreas Gohr    public function test_blankTitleLink() {
261f515db7fSAndreas Gohr        global $conf;
2626506eaacSAndreas Gohr        $id = 'blanktest';
263f515db7fSAndreas Gohr
2646506eaacSAndreas Gohr        $conf['useheading'] = 1;
2656506eaacSAndreas Gohr        saveWikiText($id,'====== 0 ======', 'test');
2666506eaacSAndreas Gohr        $this->assertTrue(page_exists($id));
2676506eaacSAndreas Gohr
2686506eaacSAndreas Gohr        $header = p_get_first_heading($id, METADATA_RENDER_UNLIMITED);
2696506eaacSAndreas Gohr        $this->assertSame('0', $header);
2706506eaacSAndreas Gohr
2716506eaacSAndreas Gohr        $this->R->internallink($id);
272*90d36becSPhy        $expected = '<a href="/./doku.php?id='.$id.'" class="wikilink1" title="'.$id.'" data-wiki-id="blanktest">0</a>';
273f515db7fSAndreas Gohr        $this->assertEquals($expected, trim($this->R->doc));
274f515db7fSAndreas Gohr    }
2750c4c0281SGerrit Uitslag}
276