summaryrefslogtreecommitdiffstats
path: root/3rdparty/fguillot/picofeed/tests/StreamTest.php
blob: 49bd3d0831835fa5d6434872648e79515b4e0edd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php

require_once 'lib/PicoFeed/PicoFeed.php';
require_once 'lib/PicoFeed/Clients/Stream.php';

use PicoFeed\Clients\Stream;

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->assertNotFalse($result);
        $this->assertEquals('</rss>', substr($result['body'], -6));
    }

    public function testDownload()
    {
        $client = new Stream;
        $client->setUrl('https://github.com/fguillot/picoFeed');
        $result = $client->doRequest();

        $this->assertNotFalse($result);
        $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->assertNotFalse($result);
        $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']);
    }
/*
    public function testInfiniteRedirect()
    {
        $client = new Stream;
        $client->url = 'http://www.accupass.com/home/rss/%E8%AA%B2%E7%A8%8B%E8%AC%9B%E5%BA%A7';
        $result = $client->doRequest();

        $this->assertFalse($result);
    }
*/
    public function testBadUrl()
    {
        $client = new Stream;
        $client->setUrl('http://12345gfgfgf');
        $client->setTimeout(1);
        $result = $client->doRequest();

        $this->assertFalse($result);
    }

    /*public function testAbortOnLargeBody()
    {
        $client = new Stream;
        $client->url = 'http://duga.jp/ror.xml';
        $result = $client->doRequest();

        $this->assertFalse($result);
    }*/

    public function testDecodeGzip()
    {
        if (function_exists('gzdecode')) {
            $client = new Stream;
            $client->setUrl('https://github.com/fguillot/picoFeed');
            $result = $client->doRequest();

            $this->assertNotFalse($result);
            $this->assertEquals('gzip', $result['headers']['Content-Encoding']);
            $this->assertEquals('<!DOC', substr(trim($result['body']), 0, 5));
        }
    }
}