add unit tests for fix_url() and fix a bug I discovered because of them - protocols longer than "http" broke url fixing
This commit is contained in:
parent
8a7f576735
commit
444537736b
2 changed files with 62 additions and 1 deletions
|
@ -6622,7 +6622,7 @@
|
|||
|
||||
//prepend slash if the URL has no slash in it
|
||||
// "http://www.example" -> "http://www.example/"
|
||||
if (strpos($url, '/', 7) === false) {
|
||||
if (strpos($url, '/', strpos($url, ':') + 3) === false) {
|
||||
$url .= '/';
|
||||
}
|
||||
return $url;
|
||||
|
|
61
tests/FunctionsTest.php
Normal file
61
tests/FunctionsTest.php
Normal file
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
require_once dirname(__FILE__) . '/../functions.php';
|
||||
/**
|
||||
* Unit tests for functions.php
|
||||
*
|
||||
* @author Christian Weiske <cweiske@php.net>
|
||||
*/
|
||||
class FunctionsTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test fix_url with feed:// urls
|
||||
*/
|
||||
public function testFixUrlFeed()
|
||||
{
|
||||
$this->assertEquals('http://tt-rss.org/', fix_url('feed://tt-rss.org'));
|
||||
$this->assertEquals('http://tt-rss.org/', fix_url('feed://tt-rss.org/'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test fix_url with non-http protocols
|
||||
*/
|
||||
public function testFixUrlProtocols()
|
||||
{
|
||||
$this->assertEquals('https://tt-rss.org/', fix_url('https://tt-rss.org'));
|
||||
$this->assertEquals('ftp://tt-rss.org/', fix_url('ftp://tt-rss.org/'));
|
||||
$this->assertEquals(
|
||||
'reallylongprotocolisthat://tt-rss.org/',
|
||||
fix_url('reallylongprotocolisthat://tt-rss.org')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test fix_url with domain names only
|
||||
*/
|
||||
public function testFixUrlDomainOnly()
|
||||
{
|
||||
$this->assertEquals('http://tt-rss.org/', fix_url('tt-rss.org'));
|
||||
$this->assertEquals('http://tt-rss.org/', fix_url('tt-rss.org/'));
|
||||
$this->assertEquals('http://tt-rss.org/', fix_url('http://tt-rss.org'));
|
||||
$this->assertEquals('http://tt-rss.org/', fix_url('http://tt-rss.org/'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test fix_url with domain + paths
|
||||
*/
|
||||
public function testFixUrlWithPaths()
|
||||
{
|
||||
$this->assertEquals('http://tt-rss.org/foo', fix_url('tt-rss.org/foo'));
|
||||
|
||||
$this->assertEquals(
|
||||
'http://tt-rss.org/foo/bar/baz',
|
||||
fix_url('tt-rss.org/foo/bar/baz')
|
||||
);
|
||||
$this->assertEquals(
|
||||
'http://tt-rss.org/foo/bar/baz/',
|
||||
fix_url('tt-rss.org/foo/bar/baz/')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in a new issue