diff options
author | Morris Jobke <hey@morrisjobke.de> | 2019-02-19 10:31:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-19 10:31:57 +0100 |
commit | e20292f174469fa4ab17a09cc63c2395ca60ee53 (patch) | |
tree | 90a08d2d572e99e7acbfd1773cc7a30efbee319d /tests | |
parent | 30e7d3e0e8e0c19119e8fcc29c9349f6909e630c (diff) | |
parent | 600bc222975cb8ec41c0191150e5d0ec9ebd51d0 (diff) | |
download | nextcloud-server-e20292f174469fa4ab17a09cc63c2395ca60ee53.tar.gz nextcloud-server-e20292f174469fa4ab17a09cc63c2395ca60ee53.zip |
Merge pull request #14261 from nextcloud/show-warning-if-x-forwarded-set-with-empty-trusted-proxies
Warning if x-forwarded-host present but trusted_proxies empty
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Settings/Controller/CheckSetupControllerTest.php | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/tests/Settings/Controller/CheckSetupControllerTest.php b/tests/Settings/Controller/CheckSetupControllerTest.php index 7efc6c56bc4..b1b451aa9e2 100644 --- a/tests/Settings/Controller/CheckSetupControllerTest.php +++ b/tests/Settings/Controller/CheckSetupControllerTest.php @@ -310,19 +310,21 @@ class CheckSetupControllerTest extends TestCase { * @dataProvider dataForwardedForHeadersWorking * * @param array $trustedProxies - * @param string $remoteAddrNoForwarded + * @param string $remoteAddrNotForwarded * @param string $remoteAddr * @param bool $result */ - public function testForwardedForHeadersWorking(array $trustedProxies, string $remoteAddrNoForwarded, string $remoteAddr, bool $result) { + public function testForwardedForHeadersWorking(array $trustedProxies, string $remoteAddrNotForwarded, string $remoteAddr, bool $result) { $this->config->expects($this->once()) ->method('getSystemValue') ->with('trusted_proxies', []) ->willReturn($trustedProxies); - $this->request->expects($this->once()) + $this->request->expects($this->atLeastOnce()) ->method('getHeader') - ->with('REMOTE_ADDR') - ->willReturn($remoteAddrNoForwarded); + ->willReturnMap([ + ['REMOTE_ADDR', $remoteAddrNotForwarded], + ['X-Forwarded-Host', ''] + ]); $this->request->expects($this->any()) ->method('getRemoteAddress') ->willReturn($remoteAddr); @@ -343,6 +345,27 @@ class CheckSetupControllerTest extends TestCase { ]; } + public function testForwardedHostPresentButTrustedProxiesEmpty() { + $this->config->expects($this->once()) + ->method('getSystemValue') + ->with('trusted_proxies', []) + ->willReturn([]); + $this->request->expects($this->atLeastOnce()) + ->method('getHeader') + ->willReturnMap([ + ['REMOTE_ADDR', '1.1.1.1'], + ['X-Forwarded-Host', 'nextcloud.test'] + ]); + $this->request->expects($this->any()) + ->method('getRemoteAddress') + ->willReturn('1.1.1.1'); + + $this->assertEquals( + false, + self::invokePrivate($this->checkSetupController, 'forwardedForHeadersWorking') + ); + } + public function testCheck() { $this->config->expects($this->at(0)) ->method('getAppValue') @@ -365,10 +388,12 @@ class CheckSetupControllerTest extends TestCase { ->with('appstoreenabled', true) ->will($this->returnValue(false)); - $this->request->expects($this->once()) + $this->request->expects($this->atLeastOnce()) ->method('getHeader') - ->with('REMOTE_ADDR') - ->willReturn('4.3.2.1'); + ->willReturnMap([ + ['REMOTE_ADDR', '4.3.2.1'], + ['X-Forwarded-Host', ''] + ]); $client = $this->getMockBuilder('\OCP\Http\Client\IClient') ->disableOriginalConstructor()->getMock(); |