Browse Source
Lack of curl should not skip all Feed tests, just those that require curl to be reliable.microsub
J. King
7 years ago
3 changed files with 71 additions and 49 deletions
@ -0,0 +1,70 @@ |
|||||
|
<?php |
||||
|
declare(strict_types=1); |
||||
|
namespace JKingWeb\Arsse; |
||||
|
Use Phake; |
||||
|
|
||||
|
|
||||
|
class TestFeedFetching extends \PHPUnit\Framework\TestCase { |
||||
|
use Test\Tools; |
||||
|
|
||||
|
protected static $host = "http://localhost:8000/"; |
||||
|
protected $base = ""; |
||||
|
|
||||
|
function setUp() { |
||||
|
if(!extension_loaded('curl')) { |
||||
|
$this->markTestSkipped("Feed fetching tests are only accurate with curl enabled."); |
||||
|
} else if(!@file_get_contents(self::$host."IsUp")) { |
||||
|
$this->markTestSkipped("Test Web server is not accepting requests"); |
||||
|
} |
||||
|
$this->base = self::$host."Feed/"; |
||||
|
$this->clearData(); |
||||
|
Data::$conf = new Conf(); |
||||
|
} |
||||
|
|
||||
|
function testHandle400() { |
||||
|
$this->assertException("unsupportedFeedFormat", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/Error?code=400"); |
||||
|
} |
||||
|
|
||||
|
function testHandle401() { |
||||
|
$this->assertException("unauthorized", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/Error?code=401"); |
||||
|
} |
||||
|
|
||||
|
function testHandle403() { |
||||
|
$this->assertException("forbidden", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/Error?code=403"); |
||||
|
} |
||||
|
|
||||
|
function testHandle404() { |
||||
|
$this->assertException("invalidUrl", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/Error?code=404"); |
||||
|
} |
||||
|
|
||||
|
function testHandle500() { |
||||
|
$this->assertException("unsupportedFeedFormat", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/Error?code=500"); |
||||
|
} |
||||
|
|
||||
|
function testHandleARedirectLoop() { |
||||
|
$this->assertException("maxRedirect", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/EndlessLoop?i=0"); |
||||
|
} |
||||
|
|
||||
|
function testHandleATimeout() { |
||||
|
Data::$conf->fetchTimeout = 1; |
||||
|
$this->assertException("timeout", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/Timeout"); |
||||
|
} |
||||
|
|
||||
|
function testHandleAnOverlyLargeFeed() { |
||||
|
Data::$conf->fetchSizeLimit = 512; |
||||
|
$this->assertException("maxSize", "Feed"); |
||||
|
new Feed(null, $this->base."Fetching/TooLarge"); |
||||
|
} |
||||
|
|
||||
|
function testHandleACertificateError() { |
||||
|
$this->assertException("invalidCertificate", "Feed"); |
||||
|
new Feed(null, "https://localhost:8000/"); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue