InitStateMiddlewareTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 14
c 2
b 0
f 0
dl 0
loc 30
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetIsFrontend() 0 5 1
A isFrontendProvider() 0 12 1
1
<?php
2
3
namespace TractorCow\Fluent\Tests\Middleware;
4
5
use SilverStripe\Dev\SapphireTest;
6
use SilverStripe\Control\HTTPRequest;
7
use TractorCow\Fluent\Middleware\InitStateMiddleware;
8
9
class InitStateMiddlewareTest extends SapphireTest
10
{
11
    /**
12
     * @dataProvider isFrontendProvider
13
     * @param string $url
14
     * @param array $getVars
15
     * @param string $expected
16
     */
17
    public function testGetIsFrontend($url, $getVars, $expected)
18
    {
19
        $request = new HTTPRequest('GET', $url, $getVars);
20
        $result = (new InitStateMiddleware)->getIsFrontend($request);
21
        $this->assertSame($expected, $result, 'isFrontend detects whether a request is for the frontend website');
22
    }
23
24
    /**
25
     * @return array[]
26
     */
27
    public function isFrontendProvider()
28
    {
29
        return [
30
            ['admin', [], false],
31
            ['admin/', [], false],
32
            ['dev/build', [], false],
33
            ['admin/graphql', [], false],
34
            ['graphql', [], true],
35
            ['/', [], true],
36
            ['foo', [], true],
37
            ['my-blog/my-post', [], true],
38
            ['my-blog/my-post', ['CMSPreview' => 1], false],
39
        ];
40
    }
41
}
42