63 lines
1.9 KiB
PHP
63 lines
1.9 KiB
PHP
<?php
|
|
namespace PicoFeed\Client;
|
|
|
|
use PHPUnit_Framework_TestCase;
|
|
|
|
|
|
class StreamTest extends PHPUnit_Framework_TestCase
|
|
{
|
|
public function testChunkedResponse()
|
|
{
|
|
$client = new Stream;
|
|
$client->setUrl('http://www.reddit.com/r/dwarffortress/.rss');
|
|
$result = $client->doRequest();
|
|
|
|
$this->assertEquals('</rss>', substr($result['body'], -6));
|
|
}
|
|
|
|
public function testDownload()
|
|
{
|
|
$client = new Stream;
|
|
$client->setUrl('https://github.com/fguillot/picoFeed');
|
|
$result = $client->doRequest();
|
|
|
|
$this->assertEquals(200, $result['status']);
|
|
$this->assertEquals('text/html; charset=utf-8', $result['headers']['Content-Type']);
|
|
$this->assertEquals('<!DOCTYPE html>', substr(trim($result['body']), 0, 15));
|
|
$this->assertEquals('</html>', substr(trim($result['body']), -7));
|
|
}
|
|
|
|
public function testRedirect()
|
|
{
|
|
$client = new Stream;
|
|
$client->setUrl('http://github.com/fguillot/picoFeed');
|
|
$result = $client->doRequest();
|
|
|
|
$this->assertEquals(200, $result['status']);
|
|
$this->assertEquals('<!DOCTYPE html>', substr(trim($result['body']), 0, 15));
|
|
$this->assertEquals('text/html; charset=utf-8', $result['headers']['Content-Type']);
|
|
}
|
|
|
|
/**
|
|
* @expectedException PicoFeed\Client\InvalidUrlException
|
|
*/
|
|
public function testBadUrl()
|
|
{
|
|
$client = new Stream;
|
|
$client->setUrl('http://12345gfgfgf');
|
|
$client->setTimeout(1);
|
|
$client->doRequest();
|
|
}
|
|
|
|
public function testDecodeGzip()
|
|
{
|
|
if (function_exists('gzdecode')) {
|
|
$client = new Stream;
|
|
$client->setUrl('https://github.com/fguillot/picoFeed');
|
|
$result = $client->doRequest();
|
|
|
|
$this->assertEquals('gzip', $result['headers']['Content-Encoding']);
|
|
$this->assertEquals('<!DOC', substr(trim($result['body']), 0, 5));
|
|
}
|
|
}
|
|
} |