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