Completed
Push — master ( ed73fa...7bd139 )
by Damian
02:38 queued 14s
created

CloudflareLocaleDetectorTest::testPositives()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 10
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 16
rs 9.9332
1
<?php
2
3
namespace TractorCow\Fluent\Tests\State;
4
5
use SilverStripe\Control\HTTPRequest;
6
use SilverStripe\Dev\SapphireTest;
7
use TractorCow\Fluent\Model\Locale;
8
use TractorCow\Fluent\State\CloudflareLocaleDetector;
9
10
class CloudflareLocaleDetectorTest extends SapphireTest
11
{
12
    protected static $fixture_file = 'CloudflareLocaleDetectorTest.yml';
13
14
    public function testPositives()
15
    {
16
        $middleware = CloudflareLocaleDetector::create();
17
        $request = new HTTPRequest('GET', 'about-us/');
18
19
        // NZ
20
        $request->addHeader('CF-IPCountry', 'NZ');
21
        $result = $middleware->detectLocale($request);
22
        $this->assertInstanceOf(Locale::class, $result);
23
        $this->assertEquals('en_NZ', $result->Locale);
24
25
        // US
26
        $request->addHeader('CF-IPCountry', 'us');
27
        $result = $middleware->detectLocale($request);
28
        $this->assertInstanceOf(Locale::class, $result);
29
        $this->assertEquals('es_US', $result->Locale);
30
    }
31
32
    public function testNegatives()
33
    {
34
        $middleware = CloudflareLocaleDetector::create();
35
        $request = new HTTPRequest('GET', 'about-us/');
36
37
        // AU
38
        $request->addHeader('CF-IPCountry', 'AU');
39
        $result = $middleware->detectLocale($request);
40
        $this->assertNull($result);
41
42
        // XX (unknown)
43
        $request->addHeader('CF-IPCountry', 'XX');
44
        $result = $middleware->detectLocale($request);
45
        $this->assertNull($result);
46
47
        // T1 (tor)
48
        $request->addHeader('CF-IPCountry', 'T1');
49
        $result = $middleware->detectLocale($request);
50
        $this->assertNull($result);
51
    }
52
}
53