xref: /dokuwiki/_test/tests/inc/pageutils_getid.test.php (revision 4f9b023c452c95faf51105ed8af6b100ba42d3bb)
1f8369d7dSTobias Sarnowski<?php
2f8369d7dSTobias Sarnowski
3f8369d7dSTobias Sarnowskiclass init_getID_test extends DokuWikiTest {
4f8369d7dSTobias Sarnowski
5f8369d7dSTobias Sarnowski    /**
6*4f9b023cSPhy     * id=0 case
7*4f9b023cSPhy     */
8*4f9b023cSPhy    function test_zero_id(){
9*4f9b023cSPhy        global $conf;
10*4f9b023cSPhy        $conf['basedir'] = '/';
11*4f9b023cSPhy        $conf['userewrite'] = 0;
12*4f9b023cSPhy
13*4f9b023cSPhy        $_SERVER['SCRIPT_FILENAME'] = '/doku.php';
14*4f9b023cSPhy        $_SERVER['REQUEST_URI'] = '/doku.php?id=0&do=edit';
15*4f9b023cSPhy        $_REQUEST['id'] = '0';
16*4f9b023cSPhy
17*4f9b023cSPhy        $this->assertSame('0', getID('id'));
18*4f9b023cSPhy    }
19*4f9b023cSPhy
20*4f9b023cSPhy    /**
21f8369d7dSTobias Sarnowski     * fetch media files with basedir and urlrewrite=2
22f8369d7dSTobias Sarnowski     *
23f8369d7dSTobias Sarnowski     * data provided by Jan Decaluwe <jan@jandecaluwe.com>
24f8369d7dSTobias Sarnowski     */
25f8369d7dSTobias Sarnowski    function test1(){
26f8369d7dSTobias Sarnowski        global $conf;
27f8369d7dSTobias Sarnowski        $conf['basedir'] = '//';
28f8369d7dSTobias Sarnowski        $conf['userewrite'] = 2;
29f8369d7dSTobias Sarnowski        $conf['deaccent'] = 0; // the default (1) gives me strange exceptions
30f8369d7dSTobias Sarnowski
31f8369d7dSTobias Sarnowski
32f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_FILENAME'] = '/lib/exe/fetch.php';
33f8369d7dSTobias Sarnowski        $_SERVER['REQUEST_URI'] = '/lib/exe/fetch.php/myhdl-0.5dev1.tar.gz?id=snapshots&cache=cache';
34f8369d7dSTobias Sarnowski
35f8369d7dSTobias Sarnowski        $this->assertEquals(getID('media'), 'myhdl-0.5dev1.tar.gz');
36f8369d7dSTobias Sarnowski    }
37f8369d7dSTobias Sarnowski
38f8369d7dSTobias Sarnowski
39f8369d7dSTobias Sarnowski    /**
40f8369d7dSTobias Sarnowski     * getID with internal mediafile, urlrewrite=2, no basedir set, apache, mod_php
41f8369d7dSTobias Sarnowski     */
42f8369d7dSTobias Sarnowski    function test2(){
43f8369d7dSTobias Sarnowski        global $conf;
44f8369d7dSTobias Sarnowski        $conf['basedir'] = '';
45f8369d7dSTobias Sarnowski        $conf['userewrite'] = '2';
46f8369d7dSTobias Sarnowski        $conf['baseurl'] = '';
47f8369d7dSTobias Sarnowski        $conf['useslash'] = '1';
48f8369d7dSTobias Sarnowski        $_SERVER['DOCUMENT_ROOT'] = '/var/www/';
49f8369d7dSTobias Sarnowski        $_SERVER['HTTP_HOST'] = 'xerxes.my.home';
50f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/lib/exe/detail.php';
51f8369d7dSTobias Sarnowski        $_SERVER['PHP_SELF'] = '/dokuwiki/lib/exe/detail.php/wiki/discussion/button-dw.png';
52f8369d7dSTobias Sarnowski        $_SERVER['REQUEST_URI'] = '/dokuwiki/lib/exe/detail.php/wiki/discussion/button-dw.png?id=test&debug=1';
53f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_NAME'] = '/dokuwiki/lib/exe/detail.php';
54f8369d7dSTobias Sarnowski        $_SERVER['PATH_INFO'] = '/wiki/discussion/button-dw.png';
55f8369d7dSTobias Sarnowski        $_SERVER['PATH_TRANSLATED'] = '/var/www/wiki/discussion/button-dw.png';
56f8369d7dSTobias Sarnowski
57f8369d7dSTobias Sarnowski        $this->assertEquals(getID('media',true), 'wiki:discussion:button-dw.png');
58f8369d7dSTobias Sarnowski        $this->assertEquals(getID('media',false), 'wiki/discussion/button-dw.png');
59f8369d7dSTobias Sarnowski    }
60f8369d7dSTobias Sarnowski
61f8369d7dSTobias Sarnowski    /**
62f8369d7dSTobias Sarnowski     * getID with given id in url and userewrite=2, no basedir set, dokuwiki not in document root.
63f8369d7dSTobias Sarnowski     */
64f8369d7dSTobias Sarnowski    function test3() {
65f8369d7dSTobias Sarnowski        global $conf;
66f8369d7dSTobias Sarnowski        $conf['basedir'] = '';
67f8369d7dSTobias Sarnowski        $conf['userewrite'] = '2';
68f8369d7dSTobias Sarnowski        $conf['baseurl'] = '';
69f8369d7dSTobias Sarnowski        $_SERVER['DOCUMENT_ROOT'] = '/var/www/';
70f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_FILENAME'] = '/usr/share/dokuwiki/doku.php';
71f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php';
72f8369d7dSTobias Sarnowski        $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php/wiki:dokuwiki';
73f8369d7dSTobias Sarnowski        $_SERVER['PATH_INFO'] = '/wiki:dokuwiki';
74f8369d7dSTobias Sarnowski        $_SERVER['PATH_TRANSLATED'] = '/var/www/wiki:dokuwiki';
75f8369d7dSTobias Sarnowski        $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php/wiki:dokuwiki';
76f8369d7dSTobias Sarnowski
77f8369d7dSTobias Sarnowski        $this->assertEquals(getID(), 'wiki:dokuwiki');
78f8369d7dSTobias Sarnowski    }
79f8369d7dSTobias Sarnowski
80f8369d7dSTobias Sarnowski    /**
81f8369d7dSTobias Sarnowski     * getID with given id in url and userewrite=2, no basedir set, Apache and CGI.
82f8369d7dSTobias Sarnowski     */
83f8369d7dSTobias Sarnowski    function test4() {
84f8369d7dSTobias Sarnowski        global $conf;
85f8369d7dSTobias Sarnowski        $conf['basedir'] = '';
86f8369d7dSTobias Sarnowski        $conf['userewrite'] = '2';
87f8369d7dSTobias Sarnowski        $conf['baseurl'] = '';
88f8369d7dSTobias Sarnowski        $conf['useslash'] = '1';
89f8369d7dSTobias Sarnowski
90f8369d7dSTobias Sarnowski        $_SERVER['DOCUMENT_ROOT'] = '/var/www/vhosts/example.com/htdocs';
91f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_FILENAME'] = '/var/www/vhosts/example.com/htdocs/doku.php';
92f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_NAME'] = '/doku.php';
93f8369d7dSTobias Sarnowski        $_SERVER['REQUEST_URI'] = '/doku.php/wiki/dokuwiki';
94f8369d7dSTobias Sarnowski        $_SERVER['PATH_INFO'] = '/wiki/dokuwiki';
95f8369d7dSTobias Sarnowski        $_SERVER['PATH_TRANSLATED'] = '/var/www/vhosts/example.com/htdocs/doku.php';
96f8369d7dSTobias Sarnowski        $_SERVER['PHP_SELF'] = '/doku.php/wiki/dokuwiki';
97f8369d7dSTobias Sarnowski
98f8369d7dSTobias Sarnowski        $this->assertEquals(getID(), 'wiki:dokuwiki');
99f8369d7dSTobias Sarnowski    }
100f8369d7dSTobias Sarnowski
101f8369d7dSTobias Sarnowski    /**
102f8369d7dSTobias Sarnowski     * getID with given id / in url and userewrite=2, no basedir set, Apache and CGI.
103f8369d7dSTobias Sarnowski     */
104f8369d7dSTobias Sarnowski    function test5() {
105f8369d7dSTobias Sarnowski        global $conf;
106f8369d7dSTobias Sarnowski        $conf['basedir'] = '';
107f8369d7dSTobias Sarnowski        $conf['userewrite'] = '2';
108f8369d7dSTobias Sarnowski        $conf['baseurl'] = '';
109f8369d7dSTobias Sarnowski        $_SERVER['DOCUMENT_ROOT'] = '/var/www/';
110f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php';
111f8369d7dSTobias Sarnowski        $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php';
112f8369d7dSTobias Sarnowski        $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php/?do=debug';
113f8369d7dSTobias Sarnowski        $_SERVER['PATH_INFO'] = '/';
114f8369d7dSTobias Sarnowski        $_SERVER['PATH_TRANSLATED'] = '/var/www/index.html';
115f8369d7dSTobias Sarnowski        $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php/';
116f8369d7dSTobias Sarnowski
117f8369d7dSTobias Sarnowski        $this->assertEquals(getID(), cleanID($conf['start']));
118f8369d7dSTobias Sarnowski    }
119f8369d7dSTobias Sarnowski
120f8369d7dSTobias Sarnowski}
121f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 :
122