Subversion Repositories php-qbpwcf

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 liveuser 1
<?php
2
namespace Ratchet\WebSocket;
3
use Ratchet\WebSocket\VersionManager;
4
use Ratchet\WebSocket\Version\RFC6455;
5
use Ratchet\WebSocket\Version\HyBi10;
6
use Ratchet\WebSocket\Version\Hixie76;
7
use Guzzle\Http\Message\EntityEnclosingRequest;
8
 
9
/**
10
 * @covers Ratchet\WebSocket\VersionManager
11
 */
12
class VersionManagerTest extends \PHPUnit_Framework_TestCase {
13
    protected $vm;
14
 
15
    public function setUp() {
16
        $this->vm = new VersionManager;
17
    }
18
 
19
    public function testFluentInterface() {
20
        $rfc = new RFC6455;
21
 
22
        $this->assertSame($this->vm, $this->vm->enableVersion($rfc));
23
        $this->assertSame($this->vm, $this->vm->disableVersion(13));
24
    }
25
 
26
    public function testGetVersion() {
27
        $rfc = new RFC6455;
28
        $this->vm->enableVersion($rfc);
29
 
30
        $req = new EntityEnclosingRequest('get', '/', array(
31
            'Host' => 'socketo.me'
32
          , 'Sec-WebSocket-Version' => 13
33
        ));
34
 
35
        $this->assertSame($rfc, $this->vm->getVersion($req));
36
    }
37
 
38
    public function testGetNopeVersionAndDisable() {
39
        $req = new EntityEnclosingRequest('get', '/', array(
40
            'Host' => 'socketo.me'
41
          , 'Sec-WebSocket-Version' => 13
42
        ));
43
 
44
        $this->setExpectedException('InvalidArgumentException');
45
 
46
        $this->vm->getVersion($req);
47
    }
48
 
49
    public function testYesIsVersionEnabled() {
50
        $this->vm->enableVersion(new RFC6455);
51
 
52
        $this->assertTrue($this->vm->isVersionEnabled(new EntityEnclosingRequest('get', '/', array(
53
            'Host' => 'socketo.me'
54
          , 'Sec-WebSocket-Version' => 13
55
        ))));
56
    }
57
 
58
    public function testNoIsVersionEnabled() {
59
        $this->assertFalse($this->vm->isVersionEnabled(new EntityEnclosingRequest('get', '/', array(
60
            'Host' => 'socketo.me'
61
          , 'Sec-WebSocket-Version' => 9000
62
        ))));
63
    }
64
 
65
    public function testGetSupportedVersionString() {
66
        $v1 = new RFC6455;
67
        $v2 = new HyBi10;
68
 
69
        $this->vm->enableVersion($v1);
70
        $this->vm->enableVersion($v2);
71
 
72
        $string = $this->vm->getSupportedVersionString();
73
        $values = explode(',', $string);
74
 
75
        $this->assertContains($v1->getVersionNumber(), $values);
76
        $this->assertContains($v2->getVersionNumber(), $values);
77
    }
78
 
79
    public function testGetSupportedVersionAfterRemoval() {
80
        $this->vm->enableVersion(new RFC6455);
81
        $this->vm->enableVersion(new HyBi10);
82
        $this->vm->enableVersion(new Hixie76);
83
 
84
        $this->vm->disableVersion(0);
85
 
86
        $values = explode(',', $this->vm->getSupportedVersionString());
87
 
88
        $this->assertEquals(2, count($values));
89
        $this->assertFalse(array_search(0, $values));
90
    }
91
}