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