Skip to content
Snippets Groups Projects
Commit ccee93d9 authored by Patrick Brown's avatar Patrick Brown
Browse files

Unit test for interwiki URL encoding bug

parent 282d636f
No related branches found
No related tags found
No related merge requests found
......@@ -17,18 +17,18 @@ class Test_resolveInterwiki extends DokuWikiTest {
$tests = array(
// shortcut, reference and expected
array('wp', 'foo @+%/#txt', 'http://en.wikipedia.org/wiki/foo @+%/#txt'),
array('amazon', 'foo @+%/#txt', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/#txt'),
array('doku', 'foo @+%/#txt', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F#txt'),
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'),
array('wp', 'foo [\\]^`{|}~@+#%?/#txt', 'https://en.wikipedia.org/wiki/foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25%3F/#txt'),
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'),
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'),
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'),
array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'),
//relative url
array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'),
array('skype', 'foo @+%/#txt', 'skype:foo @+%/#txt'),
array('withslash', 'foo [\\]^`{|}~@+#%?/#txt', '/testfoo%20%7E%5B%5C%5D%5E%60%7B%7C%7D%7E%40%2B%23%25%3F%2F#txt'),
array('skype', 'foo [\\]^`{|}~@+#%?/#txt', 'skype:foo %7E%5B%5C%5D%5E%60%7B%7C%7D%7E@+%23%25?/#txt'),
//dokuwiki id's
array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'),
array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=user:foo#txt'),
array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt')
array('onlytext', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'),
array('user', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=user:foo#txt'),
array('withquery', 'foo [\\]^`{|}~@+#%?/#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt')
);
foreach($tests as $test) {
......@@ -45,7 +45,7 @@ class Test_resolveInterwiki extends DokuWikiTest {
$shortcut = 'nonexisting';
$reference = 'foo @+%/';
$url = $Renderer->_resolveInterWiki($shortcut, $reference);
$expected = 'http://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky';
$expected = 'https://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky';
$this->assertEquals($expected, $url);
}
......
......@@ -20,7 +20,7 @@ dokubug https://bugs.dokuwiki.org/index.php?do=details&task_id=
dokugit https://github.com/splitbrain/dokuwiki/issues/
rfc https://tools.ietf.org/html/rfc
man http://man.cx/
amazon http://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/
amazon https://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/
amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/
amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/
paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=
......
......@@ -806,7 +806,7 @@ class Doku_Renderer extends DokuWiki_Plugin {
$url = $this->interwiki[$shortcut];
} else {
// Default to Google I'm feeling lucky
$url = 'http://www.google.com/search?q={URL}&btnI=lucky';
$url = 'https://www.google.com/search?q={URL}&btnI=lucky';
$shortcut = 'go';
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment