summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2019-02-19 10:31:57 +0100
committerGitHub <noreply@github.com>2019-02-19 10:31:57 +0100
commite20292f174469fa4ab17a09cc63c2395ca60ee53 (patch)
tree90a08d2d572e99e7acbfd1773cc7a30efbee319d /tests
parent30e7d3e0e8e0c19119e8fcc29c9349f6909e630c (diff)
parent600bc222975cb8ec41c0191150e5d0ec9ebd51d0 (diff)
downloadnextcloud-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.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();