comp = new MockComponent; $this->serv = new WsServer($this->comp); } public function testIsSubProtocolSupported() { $this->comp->protocols = array('hello', 'world'); $this->assertTrue($this->serv->isSubProtocolSupported('hello')); $this->assertFalse($this->serv->isSubProtocolSupported('nope')); } public function protocolProvider() { return array( array('hello', array('hello', 'world'), array('hello', 'world')) , array('', array('hello', 'world'), array('wamp')) , array('', array(), null) , array('wamp', array('hello', 'wamp', 'world'), array('herp', 'derp', 'wamp')) , array('wamp', array('wamp'), array('wamp')) ); } /** * @dataProvider protocolProvider */ public function testGetSubProtocolString($expected, $supported, $requested) { $this->comp->protocols = $supported; $req = (null === $requested ? $requested : new \ArrayIterator($requested)); $class = new \ReflectionClass('Ratchet\\WebSocket\\WsServer'); $method = $class->getMethod('getSubProtocolString'); $method->setAccessible(true); $this->assertSame($expected, $method->invokeArgs($this->serv, array($req))); } }