Correct ResponseVerifier logic replaces #39
This commit is contained in:
parent
d8075617ac
commit
d9df3419ba
@ -51,7 +51,13 @@ class ResponseVerifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function verifySubProtocol(array $requestHeader, array $responseHeader) {
|
public function verifySubProtocol(array $requestHeader, array $responseHeader) {
|
||||||
return 0 === count($responseHeader) || count(array_intersect($responseHeader, $requestHeader)) > 0;
|
if (0 === count($responseHeader)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$requestedProtocols = array_map('trim', explode(',', implode(',', $requestHeader)));
|
||||||
|
|
||||||
|
return count($responseHeader) === 1 && count(array_intersect($responseHeader, $requestedProtocols)) === 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function verifyExtensions(array $requestHeader, array $responseHeader) {
|
public function verifyExtensions(array $requestHeader, array $responseHeader) {
|
||||||
|
@ -21,17 +21,19 @@ class ResponseVerifierTest extends TestCase {
|
|||||||
public static function subProtocolsProvider() {
|
public static function subProtocolsProvider() {
|
||||||
return [
|
return [
|
||||||
[true, ['a'], ['a']]
|
[true, ['a'], ['a']]
|
||||||
, [true, ['b', 'a'], ['c', 'd', 'a']]
|
, [true, ['c', 'd', 'a'], ['a']]
|
||||||
, [false, ['a', 'b', 'c'], ['d']]
|
, [true, ['c, a', 'd'], ['a']]
|
||||||
, [true, [], []]
|
, [true, [], []]
|
||||||
, [true, ['a', 'b'], []]
|
, [true, ['a', 'b'], []]
|
||||||
|
, [false, ['c', 'd', 'a'], ['b', 'a']]
|
||||||
|
, [false, ['a', 'b', 'c'], ['d']]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider subProtocolsProvider
|
* @dataProvider subProtocolsProvider
|
||||||
*/
|
*/
|
||||||
public function testVerifySubProtocol($expected, $response, $request) {
|
public function testVerifySubProtocol($expected, $request, $response) {
|
||||||
$this->assertEquals($expected, $this->_v->verifySubProtocol($response, $request));
|
$this->assertEquals($expected, $this->_v->verifySubProtocol($request, $response));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user