2014-12-24 03:28:26 +01:00
|
|
|
<?php
|
|
|
|
namespace PicoFeed\Client;
|
|
|
|
|
|
|
|
use PHPUnit_Framework_TestCase;
|
|
|
|
|
|
|
|
|
|
|
|
class CurlTest extends PHPUnit_Framework_TestCase
|
|
|
|
{
|
2015-03-19 23:26:02 +01:00
|
|
|
/**
|
|
|
|
* @group online
|
|
|
|
*/
|
2014-12-24 03:28:26 +01:00
|
|
|
public function testDownload()
|
|
|
|
{
|
|
|
|
$client = new Curl;
|
|
|
|
$client->setUrl('http://miniflux.net/index.html');
|
|
|
|
$result = $client->doRequest();
|
|
|
|
|
|
|
|
$this->assertTrue(is_array($result));
|
|
|
|
$this->assertEquals(200, $result['status']);
|
|
|
|
$this->assertEquals('<!DOC', substr($result['body'], 0, 5));
|
|
|
|
$this->assertEquals('text/html; charset=utf-8', $result['headers']['Content-Type']);
|
|
|
|
}
|
|
|
|
|
2015-03-01 19:56:11 +01:00
|
|
|
/**
|
|
|
|
* @runInSeparateProcess
|
2015-03-19 23:26:02 +01:00
|
|
|
* @group online
|
2015-03-01 19:56:11 +01:00
|
|
|
*/
|
|
|
|
public function testPassthrough()
|
|
|
|
{
|
|
|
|
$client = new Curl;
|
2015-08-02 20:08:21 +02:00
|
|
|
$client->setUrl('https://miniflux.net/favicon.ico');
|
2015-03-01 19:56:11 +01:00
|
|
|
$client->enablePassthroughMode();
|
|
|
|
$client->doRequest();
|
|
|
|
|
|
|
|
$this->expectOutputString(file_get_contents('tests/fixtures/miniflux_favicon.ico'));
|
|
|
|
}
|
2015-02-06 03:16:34 +01:00
|
|
|
|
2015-03-19 23:26:02 +01:00
|
|
|
/**
|
|
|
|
* @group online
|
|
|
|
*/
|
2014-12-24 03:28:26 +01:00
|
|
|
public function testRedirect()
|
|
|
|
{
|
|
|
|
$client = new Curl;
|
2015-02-01 20:48:05 +01:00
|
|
|
$client->setUrl('http://rss.feedsportal.com/c/629/f/502199/s/42e50391/sc/44/l/0L0S0A1net0N0Ceditorial0C6437220Candroid0Egoogle0Enow0Es0Eouvre0Eaux0Eapplications0Etierces0C0T0Dxtor0FRSS0E16/story01.htm');
|
2014-12-24 03:28:26 +01:00
|
|
|
$result = $client->doRequest();
|
|
|
|
|
|
|
|
$this->assertTrue(is_array($result));
|
|
|
|
$this->assertEquals(200, $result['status']);
|
|
|
|
$this->assertEquals('<!DOCTYPE', substr($result['body'], 0, 9));
|
2015-02-01 20:48:05 +01:00
|
|
|
$this->assertEquals('text/html', $result['headers']['Content-Type']);
|
|
|
|
$this->assertEquals('http://www.01net.com/editorial/643722/android-google-now-s-ouvre-aux-applications-tierces/', str_replace('#?xtor=RSS-16', '', $client->getUrl()));
|
2014-12-24 03:28:26 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @expectedException PicoFeed\Client\InvalidCertificateException
|
2015-03-19 23:26:02 +01:00
|
|
|
* @group online
|
2014-12-24 03:28:26 +01:00
|
|
|
*/
|
|
|
|
public function testSSL()
|
|
|
|
{
|
|
|
|
$client = new Curl;
|
|
|
|
$client->setUrl('https://www.mjvmobile.com.br');
|
|
|
|
$client->doRequest();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @expectedException PicoFeed\Client\InvalidUrlException
|
|
|
|
*/
|
|
|
|
public function testBadUrl()
|
|
|
|
{
|
|
|
|
$client = new Curl;
|
|
|
|
$client->setUrl('http://12345gfgfgf');
|
|
|
|
$client->doRequest();
|
|
|
|
}
|
|
|
|
}
|