diff options
author | ArthurHoaro <arthur@hoa.ro> | 2018-07-28 11:07:55 +0200 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2018-07-28 11:07:55 +0200 |
commit | 83faedadff76c5bdca036f39f13943f63b27e164 (patch) | |
tree | 6f44cede16ec6a60f10b9699e211e0818f06d2c8 /tests/HttpUtils/ServerUrlTest.php | |
parent | 1d9eb22a3df85b67fe6652c0876cd7382c2fb525 (diff) | |
parent | 658988f3aeba7a5a938783249ccf2765251e5597 (diff) | |
download | Shaarli-83faedadff76c5bdca036f39f13943f63b27e164.tar.gz Shaarli-83faedadff76c5bdca036f39f13943f63b27e164.tar.zst Shaarli-83faedadff76c5bdca036f39f13943f63b27e164.zip |
Merge tag 'v0.9.7' into stable
Release v0.9.7
Diffstat (limited to 'tests/HttpUtils/ServerUrlTest.php')
-rw-r--r-- | tests/HttpUtils/ServerUrlTest.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/HttpUtils/ServerUrlTest.php b/tests/HttpUtils/ServerUrlTest.php index 8a55a220..324b827a 100644 --- a/tests/HttpUtils/ServerUrlTest.php +++ b/tests/HttpUtils/ServerUrlTest.php | |||
@@ -39,6 +39,34 @@ class ServerUrlTest extends PHPUnit_Framework_TestCase | |||
39 | } | 39 | } |
40 | 40 | ||
41 | /** | 41 | /** |
42 | * Detect a Proxy that sets Forwarded-Host | ||
43 | */ | ||
44 | public function testHttpsProxyForwardedHost() | ||
45 | { | ||
46 | $this->assertEquals( | ||
47 | 'https://host.tld:8080', | ||
48 | server_url( | ||
49 | array( | ||
50 | 'HTTP_X_FORWARDED_PROTO' => 'https', | ||
51 | 'HTTP_X_FORWARDED_PORT' => '8080', | ||
52 | 'HTTP_X_FORWARDED_HOST' => 'host.tld' | ||
53 | ) | ||
54 | ) | ||
55 | ); | ||
56 | |||
57 | $this->assertEquals( | ||
58 | 'https://host.tld:4974', | ||
59 | server_url( | ||
60 | array( | ||
61 | 'HTTP_X_FORWARDED_PROTO' => 'https, https', | ||
62 | 'HTTP_X_FORWARDED_PORT' => '4974, 80', | ||
63 | 'HTTP_X_FORWARDED_HOST' => 'host.tld, example.com' | ||
64 | ) | ||
65 | ) | ||
66 | ); | ||
67 | } | ||
68 | |||
69 | /** | ||
42 | * Detect a Proxy with SSL enabled | 70 | * Detect a Proxy with SSL enabled |
43 | */ | 71 | */ |
44 | public function testHttpsProxyForward() | 72 | public function testHttpsProxyForward() |
@@ -69,6 +97,19 @@ class ServerUrlTest extends PHPUnit_Framework_TestCase | |||
69 | ); | 97 | ); |
70 | 98 | ||
71 | $this->assertEquals( | 99 | $this->assertEquals( |
100 | 'https://host.tld', | ||
101 | server_url( | ||
102 | array( | ||
103 | 'HTTPS' => 'Off', | ||
104 | 'SERVER_NAME' => 'host.tld', | ||
105 | 'SERVER_PORT' => '80', | ||
106 | 'HTTP_X_FORWARDED_PROTO' => 'https', | ||
107 | 'HTTP_X_FORWARDED_PORT' => '443' | ||
108 | ) | ||
109 | ) | ||
110 | ); | ||
111 | |||
112 | $this->assertEquals( | ||
72 | 'https://host.tld:4974', | 113 | 'https://host.tld:4974', |
73 | server_url( | 114 | server_url( |
74 | array( | 115 | array( |
@@ -145,4 +186,36 @@ class ServerUrlTest extends PHPUnit_Framework_TestCase | |||
145 | ) | 186 | ) |
146 | ); | 187 | ); |
147 | } | 188 | } |
189 | |||
190 | /** | ||
191 | * Misconfigured server (see #1022): Proxy HTTP but 443 | ||
192 | */ | ||
193 | public function testHttpWithPort433() | ||
194 | { | ||
195 | $this->assertEquals( | ||
196 | 'https://host.tld', | ||
197 | server_url( | ||
198 | array( | ||
199 | 'HTTPS' => 'Off', | ||
200 | 'SERVER_NAME' => 'host.tld', | ||
201 | 'SERVER_PORT' => '80', | ||
202 | 'HTTP_X_FORWARDED_PROTO' => 'http', | ||
203 | 'HTTP_X_FORWARDED_PORT' => '443' | ||
204 | ) | ||
205 | ) | ||
206 | ); | ||
207 | |||
208 | $this->assertEquals( | ||
209 | 'https://host.tld', | ||
210 | server_url( | ||
211 | array( | ||
212 | 'HTTPS' => 'Off', | ||
213 | 'SERVER_NAME' => 'host.tld', | ||
214 | 'SERVER_PORT' => '80', | ||
215 | 'HTTP_X_FORWARDED_PROTO' => 'https, http', | ||
216 | 'HTTP_X_FORWARDED_PORT' => '443, 80' | ||
217 | ) | ||
218 | ) | ||
219 | ); | ||
220 | } | ||
148 | } | 221 | } |