*/ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { function testVideoOGVExternal() { $file = 'http://some.where.far/away.ogv'; $parser_response = p_get_instructions('{{' . $file . '}}'); $calls = array ( array('document_start',array()), array('p_open',array()), array('externalmedia',array($file,null,null,null,null,'cache','details')), array('cdata',array(null)), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file,null,null,null,null,'cache','details',true); //print_r("url: " . $url); $video = ''."\n"; $substr_start = strlen($url) - strlen($rest); $this->assertEquals($rest, substr($url, $substr_start)); } /** * unknown extension of external media file */ function testVideoVIDExternal() { $file = 'http://some.where.far/away.vid'; $parser_response = p_get_instructions('{{' . $file . '}}'); $calls = array( array('document_start', array()), array('p_open', array()), array('externalmedia', array($file, null, null, null, null, 'cache', 'details')), array('cdata', array(null)), array('p_close', array()), array('document_end', array()), ); $this->assertEquals(array_map('stripbyteindex', $parser_response), $calls); $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file, null, null, null, null, 'cache', 'details', true); // work around random token $a_first_part = ''; $substr_start = 0; $substr_len = strlen($a_first_part); $this->assertEquals($a_first_part, substr($url, $substr_start, $substr_len)); $substr_start = strpos($url, '&media', $substr_start + $substr_len); $this->assertNotSame(false, $substr_start, 'Substring not found.'); $substr_len = strlen($a_second_part); $this->assertEquals($a_second_part, substr($url, $substr_start, $substr_len)); $rest = 'away.vid'; $substr_start = strlen($url) - strlen($rest); $this->assertEquals($rest, substr($url, $substr_start)); } function testVideoOGVInternal() { $file = 'wiki:kind_zu_katze.ogv'; $parser_response = p_get_instructions('{{' . $file . '}}'); $calls = array ( array('document_start',array()), array('p_open',array()), array('internalmedia',array($file,null,null,null,null,'cache','details')), array('cdata',array(null)), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file,null,null,null,null,'cache','details',true); $video = ''."\n"; $substr_start = strlen($url) - strlen($rest); $this->assertEquals($rest, substr($url, $substr_start)); } function testVideoInternalTitle() { $file = 'wiki:kind_zu_katze.ogv'; $title = 'Single quote: \' Ampersand: &'; $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file, $title, null, null, null, 'cache', 'details', true); // make sure the title is escaped just once $this->assertEquals(hsc($title), substr($url, 28, 37)); } function testSimpleLinkText() { $file = 'wiki:dokuwiki-128.png'; $parser_response = p_get_instructions('{{' . $file . '|This is a simple text.}}'); $calls = array ( array('document_start',array()), array('p_open',array()), array('internalmedia',array($file,'This is a simple text.',null,null,null,'cache','details')), array('cdata',array(null)), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); } function testLinkTextWithWavedBrackets_1() { $file = 'wiki:dokuwiki-128.png'; $parser_response = p_get_instructions('{{' . $file . '|We got a { here.}}'); $calls = array ( array('document_start',array()), array('p_open',array()), array('internalmedia',array($file,'We got a { here.',null,null,null,'cache','details')), array('cdata',array(null)), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); } function testLinkTextWithWavedBrackets_2() { $file = 'wiki:dokuwiki-128.png'; $parser_response = p_get_instructions('{{' . $file . '|We got a } here.}}'); $calls = array ( array('document_start',array()), array('p_open',array()), array('internalmedia',array($file,'We got a } here.',null,null,null,'cache','details')), array('cdata',array(null)), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); } function testLinkTextWithWavedBrackets_3() { $file = 'wiki:dokuwiki-128.png'; $parser_response = p_get_instructions('{{' . $file . '|We got a { and a } here.}}'); $calls = array ( array('document_start',array()), array('p_open',array()), array('internalmedia',array($file,'We got a { and a } here.',null,null,null,'cache','details')), array('cdata',array(null)), array('p_close',array()), array('document_end',array()), ); $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); } }