]>
git.immae.eu Git - github/shaarli/Shaarli.git/blob - tests/http/UrlUtils/WhitelistProtocolsTest.php
3 namespace Shaarli\Http
;
5 require_once 'application/http/UrlUtils.php';
8 * Class WhitelistProtocolsTest
10 * Test whitelist_protocols() function of UrlUtils.
12 class WhitelistProtocolsTest
extends \Shaarli\TestCase
15 * Test whitelist_protocols() on a note (relative URL).
17 public function testWhitelistProtocolsRelative()
19 $whitelist = ['ftp', 'magnet'];
21 $this->assertEquals($url, whitelist_protocols($url, $whitelist));
23 $this->assertEquals($url, whitelist_protocols($url, $whitelist));
27 * Test whitelist_protocols() on a note (relative URL).
29 public function testWhitelistProtocolMissing()
31 $whitelist = ['ftp', 'magnet'];
32 $url = 'test.tld/path/?query=value#hash';
33 $this->assertEquals('http://'. $url, whitelist_protocols($url, $whitelist));
37 * Test whitelist_protocols() with allowed protocols.
39 public function testWhitelistAllowedProtocol()
41 $whitelist = ['ftp', 'magnet'];
42 $url = 'http://test.tld/path/?query=value#hash';
43 $this->assertEquals($url, whitelist_protocols($url, $whitelist));
44 $url = 'https://test.tld/path/?query=value#hash';
45 $this->assertEquals($url, whitelist_protocols($url, $whitelist));
46 $url = 'ftp://test.tld/path/?query=value#hash';
47 $this->assertEquals($url, whitelist_protocols($url, $whitelist));
48 $url = 'magnet:test.tld/path/?query=value#hash';
49 $this->assertEquals($url, whitelist_protocols($url, $whitelist));
53 * Test whitelist_protocols() with allowed protocols.
55 public function testWhitelistDisallowedProtocol()
57 $whitelist = ['ftp', 'magnet'];
58 $url = 'javascript:alert("xss");';
59 $this->assertEquals('http://alert("xss");', whitelist_protocols($url, $whitelist));
60 $url = 'other://test.tld/path/?query=value#hash';
61 $this->assertEquals('http://test.tld/path/?query=value#hash', whitelist_protocols($url, $whitelist));