xref: /dokuwiki/_test/tests/inc/fulltext_mediause.test.php (revision 9269d0b1fb78c217069efd497734c183df9937be)
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