10c4c0281SGerrit Uitslag<?php 20c4c0281SGerrit Uitslag 3*be906b56SAndreas 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); 2726506eaacSAndreas Gohr $expected = '<a href="/./doku.php?id='.$id.'" class="wikilink1" title="'.$id.'">0</a>'; 273f515db7fSAndreas Gohr $this->assertEquals($expected, trim($this->R->doc)); 274f515db7fSAndreas Gohr } 2750c4c0281SGerrit Uitslag} 276