|
|
|
|
@ -497,6 +497,57 @@ class RequestTest extends \Test\TestCase {
|
|
|
|
|
$this->assertSame('192.168.0.233', $request->getRemoteAddress());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
public function httpProtocolProvider() {
|
|
|
|
|
return [
|
|
|
|
|
// Valid HTTP 1.0
|
|
|
|
|
['HTTP/1.0', 'HTTP/1.0'],
|
|
|
|
|
['http/1.0', 'HTTP/1.0'],
|
|
|
|
|
['HTTp/1.0', 'HTTP/1.0'],
|
|
|
|
|
|
|
|
|
|
// Valid HTTP 1.1
|
|
|
|
|
['HTTP/1.1', 'HTTP/1.1'],
|
|
|
|
|
['http/1.1', 'HTTP/1.1'],
|
|
|
|
|
['HTTp/1.1', 'HTTP/1.1'],
|
|
|
|
|
|
|
|
|
|
// Valid HTTP 2.0
|
|
|
|
|
['HTTP/2', 'HTTP/2'],
|
|
|
|
|
['http/2', 'HTTP/2'],
|
|
|
|
|
['HTTp/2', 'HTTP/2'],
|
|
|
|
|
|
|
|
|
|
// Invalid
|
|
|
|
|
['HTTp/394', 'HTTP/1.1'],
|
|
|
|
|
['InvalidProvider/1.1', 'HTTP/1.1'],
|
|
|
|
|
[null, 'HTTP/1.1'],
|
|
|
|
|
['', 'HTTP/1.1'],
|
|
|
|
|
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider httpProtocolProvider
|
|
|
|
|
*
|
|
|
|
|
* @param mixed $input
|
|
|
|
|
* @param string $expected
|
|
|
|
|
*/
|
|
|
|
|
public function testGetHttpProtocol($input, $expected) {
|
|
|
|
|
$request = new Request(
|
|
|
|
|
[
|
|
|
|
|
'server' => [
|
|
|
|
|
'SERVER_PROTOCOL' => $input,
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
$this->secureRandom,
|
|
|
|
|
$this->getMock('\OCP\Security\ICrypto'),
|
|
|
|
|
$this->config,
|
|
|
|
|
$this->stream
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$this->assertSame($expected, $request->getHttpProtocol());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetServerProtocolWithOverride() {
|
|
|
|
|
$this->config
|
|
|
|
|
->expects($this->at(0))
|
|
|
|
|
|