|
5 | 5 | use DragonCode\RequestTracker\TrackerHeader; |
6 | 6 | use DragonCode\RequestTracker\TrackerRequest; |
7 | 7 |
|
8 | | -it('gets ip with correct precedence and sets header via ip()', function () { |
| 8 | +test('If telemetry header exists, it wins', function () { |
9 | 9 | $header = new TrackerHeader; |
10 | 10 |
|
11 | | - // 1) If telemetry header exists, it wins |
12 | 11 | $request = makeRequest([$header->ip => '203.0.113.10']); |
13 | 12 | $telemetry = new TrackerRequest($request, $header); |
| 13 | + |
14 | 14 | expect($telemetry->getIp())->toBe('203.0.113.10'); |
| 15 | +}); |
| 16 | + |
| 17 | +test('Else HTTP_X_REAL_IP (non-standard header name checked by the class)', function () { |
| 18 | + $header = new TrackerHeader; |
15 | 19 |
|
16 | | - // 2) Else HTTP_X_REAL_IP (non-standard header name checked by the class) |
17 | 20 | $request = makeRequest(); |
18 | 21 | $request->headers->set('HTTP_X_REAL_IP', '198.51.100.20'); |
19 | 22 | $telemetry = new TrackerRequest($request, $header); |
| 23 | + |
20 | 24 | expect($telemetry->getIp())->toBe('198.51.100.20'); |
| 25 | +}); |
| 26 | + |
| 27 | +test('Else client ip (REMOTE_ADDR)', function () { |
| 28 | + $header = new TrackerHeader; |
21 | 29 |
|
22 | | - // 3) Else client ip (REMOTE_ADDR) |
23 | 30 | $request = makeRequest([], ['REMOTE_ADDR' => '192.0.2.30']); |
24 | 31 | $telemetry = new TrackerRequest($request, $header); |
| 32 | + |
25 | 33 | expect($telemetry->getIp())->toBe('192.0.2.30'); |
| 34 | +}); |
26 | 35 |
|
27 | | - // 4) ip() without argument sets header from getIp() |
| 36 | +test('ip() without argument sets header from getIp()', function () { |
| 37 | + $header = new TrackerHeader; |
| 38 | + |
| 39 | + $request = makeRequest(); |
| 40 | + $telemetry = new TrackerRequest($request, $header); |
28 | 41 | $telemetry->ip(); |
29 | | - expect($request->headers->get($header->ip))->toBe('192.0.2.30'); |
30 | 42 |
|
31 | | - // 5) ip() with value overrides and sets header |
| 43 | + expect($request->headers->get($header->ip))->toBe('127.0.0.1'); |
| 44 | +}); |
| 45 | + |
| 46 | +test('ip() with value overrides and sets header', function () { |
| 47 | + $header = new TrackerHeader; |
| 48 | + |
| 49 | + $request = makeRequest(); |
| 50 | + $telemetry = new TrackerRequest($request, $header); |
32 | 51 | $telemetry->ip('10.0.0.1'); |
| 52 | + |
33 | 53 | expect($request->headers->get($header->ip))->toBe('10.0.0.1'); |
34 | 54 | }); |
0 commit comments