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 */ 836340418SAndreas Gohrclass Test_resolveInterwiki extends DokuWikiTest { 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'; 156496c33fSGerrit Uitslag $Renderer->interwiki['onlytext'] = ':onlytext{NAME}'; //with {URL} double urlencoded 166496c33fSGerrit Uitslag $Renderer->interwiki['withquery'] = ':anyns:{NAME}?do=edit'; 172d6df795SGerrit Uitslag 182d6df795SGerrit Uitslag $tests = array( 192d6df795SGerrit Uitslag // shortcut, reference and expected 20*ccee93d9SPatrick Brown array('wp', 'foo [\\]^`{|}~@+#%?/#txt', 'https://en.wikipedia.org/wiki/foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25%3F/#txt'), 21*ccee93d9SPatrick Brown array('amazon', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.amazon.com/exec/obidos/ASIN/foo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F/splitbrain-20/#txt'), 22*ccee93d9SPatrick Brown array('doku', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.dokuwiki.org/foo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F#txt'), 23*ccee93d9SPatrick Brown array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%3F%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%3F%2F'), 242345e871SGerrit Uitslag array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'), 252d6df795SGerrit Uitslag //relative url 26*ccee93d9SPatrick Brown array('withslash', 'foo [\\]^`{|}~@+#%?/#txt', '/testfoo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F#txt'), 27*ccee93d9SPatrick Brown array('skype', 'foo [\\]^`{|}~@+#%?/#txt', 'skype:foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25?/#txt'), 282d6df795SGerrit Uitslag //dokuwiki id's 29*ccee93d9SPatrick Brown array('onlytext', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), 30*ccee93d9SPatrick Brown array('user', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), 31*ccee93d9SPatrick Brown array('withquery', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') 322d6df795SGerrit Uitslag ); 332d6df795SGerrit Uitslag 342d6df795SGerrit Uitslag foreach($tests as $test) { 352d6df795SGerrit Uitslag $url = $Renderer->_resolveInterWiki($test[0], $test[1]); 362d6df795SGerrit Uitslag 372d6df795SGerrit Uitslag $this->assertEquals($test[2], $url); 382d6df795SGerrit Uitslag } 392d6df795SGerrit Uitslag } 402d6df795SGerrit Uitslag 412d6df795SGerrit Uitslag function testNonexisting() { 422d6df795SGerrit Uitslag $Renderer = new Doku_Renderer(); 432d6df795SGerrit Uitslag $Renderer->interwiki = getInterwiki(); 442d6df795SGerrit Uitslag 452d6df795SGerrit Uitslag $shortcut = 'nonexisting'; 462d6df795SGerrit Uitslag $reference = 'foo @+%/'; 472d6df795SGerrit Uitslag $url = $Renderer->_resolveInterWiki($shortcut, $reference); 48*ccee93d9SPatrick Brown $expected = 'https://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky'; 492d6df795SGerrit Uitslag 502d6df795SGerrit Uitslag $this->assertEquals($expected, $url); 512d6df795SGerrit Uitslag } 522d6df795SGerrit Uitslag 532d6df795SGerrit Uitslag}