xref: /dokuwiki/_test/tests/inc/parser/renderer_resolveinterwiki.test.php (revision 2d6df7955d82d34f7a58b289fa04755c5ab9146e)
1*2d6df795SGerrit Uitslag<?php
2*2d6df795SGerrit Uitslag
3*2d6df795SGerrit Uitslagrequire_once DOKU_INC . 'inc/parser/renderer.php';
4*2d6df795SGerrit Uitslag
5*2d6df795SGerrit Uitslag/**
6*2d6df795SGerrit Uitslag * Tests for Doku_Renderer::_resolveInterWiki()
7*2d6df795SGerrit Uitslag */
8*2d6df795SGerrit Uitslagclass Test_resolveInterwiki extends PHPUnit_Framework_TestCase {
9*2d6df795SGerrit Uitslag
10*2d6df795SGerrit Uitslag
11*2d6df795SGerrit Uitslag    function testDefaults() {
12*2d6df795SGerrit Uitslag        $Renderer = new Doku_Renderer();
13*2d6df795SGerrit Uitslag        $Renderer->interwiki = getInterwiki();
14*2d6df795SGerrit Uitslag        $Renderer->interwiki['scheme'] = '{SCHEME}://example.com';
15*2d6df795SGerrit Uitslag        $Renderer->interwiki['slash'] = '/test';
16*2d6df795SGerrit Uitslag        $Renderer->interwiki['onlytext'] = 'onlytext';
17*2d6df795SGerrit Uitslag
18*2d6df795SGerrit Uitslag         //var_dump($Renderer->interwiki);
19*2d6df795SGerrit Uitslag
20*2d6df795SGerrit Uitslag        $tests = array(
21*2d6df795SGerrit Uitslag            // shortcut, reference and expected
22*2d6df795SGerrit Uitslag            array('wp', 'foo @+%/', 'http://en.wikipedia.org/wiki/foo @+%/'),
23*2d6df795SGerrit Uitslag            array('amazon', 'foo @+%/', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/'),
24*2d6df795SGerrit Uitslag            array('doku', 'foo @+%/', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F'),
25*2d6df795SGerrit Uitslag            //ToDo: Check needed, is double slash in path desired
26*2d6df795SGerrit Uitslag            array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090//path/naar/?query=foo%20%40%2B%25%2F'),
27*2d6df795SGerrit Uitslag            array('scheme', 'ftp://foo @+%/', 'ftp://example.com'),
28*2d6df795SGerrit Uitslag            //relative url
29*2d6df795SGerrit Uitslag            array('slash', 'foo @+%/', '/testfoo%20%40%2B%25%2F'),
30*2d6df795SGerrit Uitslag            //dokuwiki id's
31*2d6df795SGerrit Uitslag            array('onlytext', 'foo @+%/', 'onlytextfoo%20%40%2B%25%2F'),
32*2d6df795SGerrit Uitslag            array('user', 'foo @+%/', 'wiki:users:foo%20%40%2B%25%2F')
33*2d6df795SGerrit Uitslag        );
34*2d6df795SGerrit Uitslag
35*2d6df795SGerrit Uitslag        foreach($tests as $test) {
36*2d6df795SGerrit Uitslag            $url = $Renderer->_resolveInterWiki($test[0], $test[1]);
37*2d6df795SGerrit Uitslag
38*2d6df795SGerrit Uitslag            $this->assertEquals($test[2], $url);
39*2d6df795SGerrit Uitslag        }
40*2d6df795SGerrit Uitslag    }
41*2d6df795SGerrit Uitslag
42*2d6df795SGerrit Uitslag    function testNonexisting() {
43*2d6df795SGerrit Uitslag        $Renderer = new Doku_Renderer();
44*2d6df795SGerrit Uitslag        $Renderer->interwiki = getInterwiki();
45*2d6df795SGerrit Uitslag
46*2d6df795SGerrit Uitslag        $shortcut = 'nonexisting';
47*2d6df795SGerrit Uitslag        $reference = 'foo @+%/';
48*2d6df795SGerrit Uitslag        $url = $Renderer->_resolveInterWiki($shortcut, $reference);
49*2d6df795SGerrit Uitslag        $expected = 'http://www.google.com/search?q=foo%20%40%2B%25%2F&amp;btnI=lucky';
50*2d6df795SGerrit Uitslag
51*2d6df795SGerrit Uitslag        $this->assertEquals($expected, $url);
52*2d6df795SGerrit Uitslag    }
53*2d6df795SGerrit Uitslag
54*2d6df795SGerrit Uitslag}