1*912be8f6SMichael Große<?php 2*912be8f6SMichael Großerequire_once 'parser.inc.php'; 3*912be8f6SMichael Große 4*912be8f6SMichael Große/** 5*912be8f6SMichael Große * Tests for the implementation of audio and video files 6*912be8f6SMichael Große * 7*912be8f6SMichael Große * @author Michael Große <grosse@cosmocode.de> 8*912be8f6SMichael Große*/ 9*912be8f6SMichael Großeclass TestOfDoku_Parser_Media extends TestOfDoku_Parser { 10*912be8f6SMichael Große 11*912be8f6SMichael Große function testVideoOGVExternal() { 12*912be8f6SMichael Große $file = 'http://some.where.far/away.ogv'; 13*912be8f6SMichael Große $parser_response = p_get_instructions('{{' . $file . '}}'); 14*912be8f6SMichael Große 15*912be8f6SMichael Große $calls = array ( 16*912be8f6SMichael Große array('document_start',array()), 17*912be8f6SMichael Große array('p_open',array()), 18*912be8f6SMichael Große array('externalmedia',array($file,null,null,null,null,'cache','details')), 19*912be8f6SMichael Große array('cdata',array(null)), 20*912be8f6SMichael Große array('p_close',array()), 21*912be8f6SMichael Große array('document_end',array()), 22*912be8f6SMichael Große ); 23*912be8f6SMichael Große $this->assertEquals(array_map('stripbyteindex',$parser_response),$calls); 24*912be8f6SMichael Große 25*912be8f6SMichael Große $Renderer = new Doku_Renderer_xhtml(); 26*912be8f6SMichael Große $url = $Renderer->externalmedia($file,null,null,null,null,'cache','details',true); 27*912be8f6SMichael Große //print_r("url: " . $url); 28*912be8f6SMichael Große $video = '<video class="media" width="320" height="240" controls="controls">'; 29*912be8f6SMichael Große $this->assertEquals(substr($url,0,66),$video); 30*912be8f6SMichael Große $source = '<source src="http://some.where.far/away.ogv" type="video/ogg" />'; 31*912be8f6SMichael Große $this->assertEquals(substr($url,67,64),$source); 32*912be8f6SMichael Große // work around random token 33*912be8f6SMichael Große $a_first_part = '<a href="/./lib/exe/fetch.php?cache=&tok='; 34*912be8f6SMichael Große $a_second_part = '&media=http%3A%2F%2Fsome.where.far%2Faway.ogv" class="media mediafile mf_ogv" title="http://some.where.far/away.ogv">'; 35*912be8f6SMichael Große $this->assertEquals(substr($url,132,45),$a_first_part); 36*912be8f6SMichael Große $this->assertEquals(substr($url,183,121),$a_second_part); 37*912be8f6SMichael Große $rest = 'away.ogv</a></video>'."\n"; 38*912be8f6SMichael Große $this->assertEquals(substr($url,304),$rest); 39*912be8f6SMichael Große } 40*912be8f6SMichael Große 41*912be8f6SMichael Große /** 42*912be8f6SMichael Große * unknown extension of external media file 43*912be8f6SMichael Große */ 44*912be8f6SMichael Große function testVideoVIDExternal() { 45*912be8f6SMichael Große $file = 'http://some.where.far/away.vid'; 46*912be8f6SMichael Große $parser_response = p_get_instructions('{{' . $file . '}}'); 47*912be8f6SMichael Große 48*912be8f6SMichael Große $calls = array( 49*912be8f6SMichael Große array('document_start', array()), 50*912be8f6SMichael Große array('p_open', array()), 51*912be8f6SMichael Große array('externalmedia', array($file, null, null, null, null, 'cache', 'details')), 52*912be8f6SMichael Große array('cdata', array(null)), 53*912be8f6SMichael Große array('p_close', array()), 54*912be8f6SMichael Große array('document_end', array()), 55*912be8f6SMichael Große ); 56*912be8f6SMichael Große $this->assertEquals(array_map('stripbyteindex', $parser_response), $calls); 57*912be8f6SMichael Große 58*912be8f6SMichael Große $Renderer = new Doku_Renderer_xhtml(); 59*912be8f6SMichael Große $url = $Renderer->externalmedia($file, null, null, null, null, 'cache', 'details', true); 60*912be8f6SMichael Große // work around random token 61*912be8f6SMichael Große $a_first_part = '<a href="/./lib/exe/fetch.php?tok='; 62*912be8f6SMichael Große $a_second_part = '&media=http%3A%2F%2Fsome.where.far%2Faway.vid" class="media mediafile mf_vid" title="http://some.where.far/away.vid">'; 63*912be8f6SMichael Große $this->assertEquals(substr($url,0,34),$a_first_part); 64*912be8f6SMichael Große $this->assertEquals(substr($url,40,121),$a_second_part); 65*912be8f6SMichael Große $rest = 'away.vid</a>'; 66*912be8f6SMichael Große $this->assertEquals(substr($url,161),$rest); 67*912be8f6SMichael Große } 68*912be8f6SMichael Große} 69*912be8f6SMichael Große 70*912be8f6SMichael Große/** 71*912be8f6SMichael Große * .oga: 72*912be8f6SMichael Große * http://upload.wikimedia.org/wikipedia/commons/6/6b/Meow_of_a_pleading_cat.oga 73*912be8f6SMichael Große * 74*912be8f6SMichael Große * .wav: 75*912be8f6SMichael Große * http://upload.wikimedia.org/wikipedia/commons/8/81/Meow_of_a_Siamese_cat_-_freemaster2.wav 76*912be8f6SMichael Große * 77*912be8f6SMichael Große * 78*912be8f6SMichael Große */ 79