From 8481609ba4f69ea1ef0bd43c4d9c1e78b0ebceab Mon Sep 17 00:00:00 2001 From: Michael Hawkins Date: Thu, 5 Mar 2020 13:31:32 +0800 Subject: [PATCH] MDL-67861 core: Fix getremoteaddr unit test to match new proxy setup --- lib/tests/moodlelib_test.php | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/tests/moodlelib_test.php b/lib/tests/moodlelib_test.php index 664e31b1bc1..d76ca146be2 100644 --- a/lib/tests/moodlelib_test.php +++ b/lib/tests/moodlelib_test.php @@ -3641,6 +3641,10 @@ class core_moodlelib_testcase extends advanced_testcase { * Tests the getremoteaddr() function. */ public function test_getremoteaddr() { + global $CFG; + + $this->resetAfterTest(); + $CFG->getremoteaddrconf = GETREMOTEADDR_SKIP_HTTP_CLIENT_IP; $xforwardedfor = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : null; $_SERVER['HTTP_X_FORWARDED_FOR'] = ''; @@ -3657,27 +3661,27 @@ class core_moodlelib_testcase extends advanced_testcase { $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,127.0.0.2'; $twoip = getremoteaddr(); - $this->assertEquals('127.0.0.1', $twoip); + $this->assertEquals('127.0.0.2', $twoip); - $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,127.0.0.2, 127.0.0.3'; + $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,127.0.0.2,127.0.0.3'; $threeip = getremoteaddr(); - $this->assertEquals('127.0.0.1', $threeip); + $this->assertEquals('127.0.0.3', $threeip); - $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1:65535,127.0.0.2'; + $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,127.0.0.2:65535'; $portip = getremoteaddr(); - $this->assertEquals('127.0.0.1', $portip); + $this->assertEquals('127.0.0.2', $portip); - $_SERVER['HTTP_X_FORWARDED_FOR'] = '0:0:0:0:0:0:0:1,127.0.0.2'; + $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,0:0:0:0:0:0:0:2'; $portip = getremoteaddr(); - $this->assertEquals('0:0:0:0:0:0:0:1', $portip); + $this->assertEquals('0:0:0:0:0:0:0:2', $portip); - $_SERVER['HTTP_X_FORWARDED_FOR'] = '0::1,127.0.0.2'; + $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,0::2'; $portip = getremoteaddr(); - $this->assertEquals('0:0:0:0:0:0:0:1', $portip); + $this->assertEquals('0:0:0:0:0:0:0:2', $portip); - $_SERVER['HTTP_X_FORWARDED_FOR'] = '[0:0:0:0:0:0:0:1]:65535,127.0.0.2'; + $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,[0:0:0:0:0:0:0:2]:65535'; $portip = getremoteaddr(); - $this->assertEquals('0:0:0:0:0:0:0:1', $portip); + $this->assertEquals('0:0:0:0:0:0:0:2', $portip); $_SERVER['HTTP_X_FORWARDED_FOR'] = $xforwardedfor;