summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDaniel Kesselberg <mail@danielkesselberg.de>2019-02-17 21:55:55 +0100
committerDaniel Kesselberg <mail@danielkesselberg.de>2019-02-17 23:53:06 +0100
commit600bc222975cb8ec41c0191150e5d0ec9ebd51d0 (patch)
tree7386ebe78337d019104c614965f2a8a9c6344385 /tests
parenta80bae398ab2dd5683ca7c80eb7648e5c3dce426 (diff)
downloadnextcloud-server-600bc222975cb8ec41c0191150e5d0ec9ebd51d0.tar.gz
nextcloud-server-600bc222975cb8ec41c0191150e5d0ec9ebd51d0.zip
Warning if x-forwarded-host present but trusted_proxies empty
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Diffstat (limited to 'tests')
-rw-r--r--tests/Settings/Controller/CheckSetupControllerTest.php41
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();