xref: /dokuwiki/_test/tests/inc/parser/renderer_resolveinterwiki.test.php (revision 4485a8917160fb9f955e5b8aa28c1a5499c608b0)
12d6df795SGerrit Uitslag<?php
22d6df795SGerrit Uitslag
32d6df795SGerrit Uitslagrequire_once DOKU_INC . 'inc/parser/renderer.php';
42d6df795SGerrit Uitslag
52d6df795SGerrit Uitslag/**
62d6df795SGerrit Uitslag * Tests for Doku_Renderer::_resolveInterWiki()
72d6df795SGerrit Uitslag */
82d6df795SGerrit Uitslagclass Test_resolveInterwiki extends PHPUnit_Framework_TestCase {
92d6df795SGerrit Uitslag
102d6df795SGerrit Uitslag    function testDefaults() {
112d6df795SGerrit Uitslag        $Renderer = new Doku_Renderer();
122d6df795SGerrit Uitslag        $Renderer->interwiki = getInterwiki();
132d6df795SGerrit Uitslag        $Renderer->interwiki['scheme'] = '{SCHEME}://example.com';
142345e871SGerrit Uitslag        $Renderer->interwiki['withslash'] = '/test';
152345e871SGerrit Uitslag        $Renderer->interwiki['onlytext'] = 'onlytext{NAME}'; //with {URL} double urlencoded
162345e871SGerrit Uitslag        $Renderer->interwiki['withquery'] = 'anyns:{NAME}?do=edit';
172d6df795SGerrit Uitslag
182d6df795SGerrit Uitslag        $tests = array(
192d6df795SGerrit Uitslag            // shortcut, reference and expected
202345e871SGerrit Uitslag            array('wp', 'foo @+%/#txt', 'http://en.wikipedia.org/wiki/foo @+%/#txt'),
212345e871SGerrit Uitslag            array('amazon', 'foo @+%/#txt', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/#txt'),
222345e871SGerrit Uitslag            array('doku', 'foo @+%/#txt', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F#txt'),
23*4485a891SGerrit 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'),
242345e871SGerrit Uitslag            array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'),
252d6df795SGerrit Uitslag            //relative url
262345e871SGerrit Uitslag            array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'),
272d6df795SGerrit Uitslag            //dokuwiki id's
282345e871SGerrit Uitslag            array('onlytext', 'foo @+%#txt', '/tmp/doku.php?id=onlytextfoo%20%40%2B%25#txt'),
292345e871SGerrit Uitslag            array('user', 'foo @+%#txt', '/tmp/doku.php?id=wiki:users:foo%20%40%2B%25#txt'),
302345e871SGerrit Uitslag            array('withquery', 'foo @+%#txt', '/tmp/doku.php?id=anyns:foo%20%40%2B%25&amp;do=edit#txt')
312d6df795SGerrit Uitslag        );
322d6df795SGerrit Uitslag
332d6df795SGerrit Uitslag        foreach($tests as $test) {
342d6df795SGerrit Uitslag            $url = $Renderer->_resolveInterWiki($test[0], $test[1]);
352d6df795SGerrit Uitslag
362d6df795SGerrit Uitslag            $this->assertEquals($test[2], $url);
372d6df795SGerrit Uitslag        }
382d6df795SGerrit Uitslag    }
392d6df795SGerrit Uitslag
402d6df795SGerrit Uitslag    function testNonexisting() {
412d6df795SGerrit Uitslag        $Renderer = new Doku_Renderer();
422d6df795SGerrit Uitslag        $Renderer->interwiki = getInterwiki();
432d6df795SGerrit Uitslag
442d6df795SGerrit Uitslag        $shortcut = 'nonexisting';
452d6df795SGerrit Uitslag        $reference = 'foo @+%/';
462d6df795SGerrit Uitslag        $url = $Renderer->_resolveInterWiki($shortcut, $reference);
472d6df795SGerrit Uitslag        $expected = 'http://www.google.com/search?q=foo%20%40%2B%25%2F&amp;btnI=lucky';
482d6df795SGerrit Uitslag
492d6df795SGerrit Uitslag        $this->assertEquals($expected, $url);
502d6df795SGerrit Uitslag    }
512d6df795SGerrit Uitslag
522d6df795SGerrit Uitslag}