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:
Christian Weiske 2010-11-10 22:18:41 +01:00 committed by Andrew Dolgov
parent 8a7f576735
commit 444537736b
2 changed files with 62 additions and 1 deletions

View File

@ -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
View 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/')
);
}
}
?>