1*ffec1009SMichael Hamann<?php 2*ffec1009SMichael Hamann 3*ffec1009SMichael Hamann// must be run within Dokuwiki 4*ffec1009SMichael Hamannif (!defined('DOKU_INC')) die(); 5*ffec1009SMichael Hamann 6*ffec1009SMichael Hamann/** 7*ffec1009SMichael Hamann * Test cases for the media usage index 8*ffec1009SMichael Hamann * 9*ffec1009SMichael Hamann * @author Michael Hamann <michael@content-space.de> 10*ffec1009SMichael Hamann */ 11*ffec1009SMichael Hamannclass fultext_mediause_test extends DokuWikiTest { 12*ffec1009SMichael Hamann 13*ffec1009SMichael Hamann public function test_internalmedia() { 14*ffec1009SMichael Hamann saveWikiText('test:internalmedia_usage', '{{internalmedia.png}} {{..:internal media.png}}', 'Test initialization'); 15*ffec1009SMichael Hamann idx_addPage('test:internalmedia_usage'); 16*ffec1009SMichael Hamann 17*ffec1009SMichael Hamann $this->assertEquals(array('test:internalmedia_usage'), ft_mediause('internal_media.png')); 18*ffec1009SMichael Hamann $this->assertEquals(array('test:internalmedia_usage'), ft_mediause('test:internalmedia.png')); 19*ffec1009SMichael Hamann } 20*ffec1009SMichael Hamann 21*ffec1009SMichael Hamann public function test_media_in_links() { 22*ffec1009SMichael Hamann saveWikiText('test:medialinks', '[[doku>wiki:dokuwiki|{{wiki:logo.png}}]] [[http://www.example.com|{{example.png?200x800}}]]', 'Test init'); 23*ffec1009SMichael Hamann idx_addPage('test:medialinks'); 24*ffec1009SMichael Hamann 25*ffec1009SMichael Hamann $this->assertEquals(array('test:medialinks'), ft_mediause('wiki:logo.png')); 26*ffec1009SMichael Hamann $this->assertEquals(array('test:medialinks'), ft_mediause('test:example.png')); 27*ffec1009SMichael Hamann } 28*ffec1009SMichael Hamann 29*ffec1009SMichael Hamann public function test_media_in_footnotes() { 30*ffec1009SMichael Hamann saveWikiText('test:media_footnotes', '(({{footnote.png?20x50}} [[foonote|{{:footlink.png}}]]))', 'Test initialization'); 31*ffec1009SMichael Hamann idx_addPage('test:media_footnotes'); 32*ffec1009SMichael Hamann 33*ffec1009SMichael Hamann $this->assertEquals(array('test:media_footnotes'), ft_mediause('test:footnote.png')); 34*ffec1009SMichael Hamann $this->assertEquals(array('test:media_footnotes'), ft_mediause('footlink.png')); 35*ffec1009SMichael Hamann } 36*ffec1009SMichael Hamann 37*ffec1009SMichael Hamann public function test_media_in_hidden_pages() { 38*ffec1009SMichael Hamann global $conf; 39*ffec1009SMichael Hamann $conf['hidepages'] = 'hidden:.*'; 40*ffec1009SMichael Hamann saveWikiText('hidden:medias', '[[doku>wiki:dokuwiki|{{wiki:hiddenlogo.png}}]]', 'Test initialization'); 41*ffec1009SMichael Hamann idx_addPage('hidden:medias'); 42*ffec1009SMichael Hamann 43*ffec1009SMichael Hamann $this->assertEquals(array(), ft_mediause('wiki:hiddenlogo.png')); 44*ffec1009SMichael Hamann $this->assertEquals(array(), ft_mediause('wiki:hiddenlogo.png', false)); 45*ffec1009SMichael Hamann $this->assertEquals(array('hidden:medias'), ft_mediause('wiki:hiddenlogo.png', true)); 46*ffec1009SMichael Hamann } 47*ffec1009SMichael Hamann 48*ffec1009SMichael Hamann public function test_media_in_protected_pages() { 49*ffec1009SMichael Hamann global $conf; 50*ffec1009SMichael Hamann global $AUTH_ACL; 51*ffec1009SMichael Hamann $conf['superuser'] = 'alice'; 52*ffec1009SMichael Hamann $conf['useacl'] = 1; 53*ffec1009SMichael Hamann 54*ffec1009SMichael Hamann $AUTH_ACL = array( 55*ffec1009SMichael Hamann '* @ALL 8', 56*ffec1009SMichael Hamann 'secret:* @ALL 0', 57*ffec1009SMichael Hamann ); 58*ffec1009SMichael Hamann 59*ffec1009SMichael Hamann $_SERVER['REMOTE_USER'] = 'eve'; 60*ffec1009SMichael Hamann 61*ffec1009SMichael Hamann saveWikiText('secret:medias', '[[doku>wiki:dokuwiki|{{wiki:secretlogo.png}}]]', 'Test initialization'); 62*ffec1009SMichael Hamann idx_addPage('secret:medias'); 63*ffec1009SMichael Hamann 64*ffec1009SMichael Hamann $this->assertEquals(array(), ft_mediause('wiki:secretlogo.png')); 65*ffec1009SMichael Hamann $this->assertEquals(array(), ft_mediause('wiki:secretlogo.png', false)); 66*ffec1009SMichael Hamann $this->assertEquals(array('secret:medias'), ft_mediause('wiki:secretlogo.png', true)); 67*ffec1009SMichael Hamann } 68*ffec1009SMichael Hamann 69*ffec1009SMichael Hamann public function test_media_in_deleted_pages() { 70*ffec1009SMichael Hamann saveWikiText('test:internalmedia_usage', '{{internalmedia.png}} {{..:internal media.png}}', 'Test initialization'); 71*ffec1009SMichael Hamann idx_addPage('test:internalmedia_usage'); 72*ffec1009SMichael Hamann saveWikiText('test:internalmedia_usage', '', 'Deleted'); 73*ffec1009SMichael Hamann 74*ffec1009SMichael Hamann $this->assertEquals(array(), ft_mediause('internal_media.png')); 75*ffec1009SMichael Hamann $this->assertEquals(array(), ft_mediause('test:internalmedia.png')); 76*ffec1009SMichael Hamann } 77*ffec1009SMichael Hamann} 78