mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-23 09:02:41 +00:00
140d608f0f
Lack of curl should not skip all Feed tests, just those that require curl to be reliable.
70 lines
No EOL
2.1 KiB
PHP
70 lines
No EOL
2.1 KiB
PHP
<?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/");
|
|
}
|
|
} |