WorkspacePreviewCheckTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 21
c 0
b 0
f 0
dl 0
loc 46
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testWorkspacePreviewListener() 0 13 1
A data() 0 18 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Lochmueller\LanguageDetection\Tests\Unit\Check;
6
7
use GuzzleHttp\Psr7\Query;
8
use Lochmueller\LanguageDetection\Check\WorkspacePreviewCheck;
9
use Lochmueller\LanguageDetection\Event\CheckLanguageDetectionEvent;
10
use Lochmueller\LanguageDetection\Tests\Unit\AbstractUnitTest;
11
use TYPO3\CMS\Core\Http\ServerRequest;
12
use TYPO3\CMS\Core\Site\Entity\SiteInterface;
13
14
/**
15
 * @internal
16
 *
17
 * @coversNothing
18
 */
19
class WorkspacePreviewCheckTest extends AbstractUnitTest
20
{
21
    /**
22
     * @covers \Lochmueller\LanguageDetection\Check\WorkspacePreviewCheck
23
     * @covers \Lochmueller\LanguageDetection\Event\CheckLanguageDetectionEvent
24
     *
25
     * @dataProvider data
26
     *
27
     * @param mixed[]|array<string, string> $queryParams
28
     */
29
    public function testWorkspacePreviewListener(array $queryParams, bool $result): void
30
    {
31
        $site = $this->createMock(SiteInterface::class);
32
        $uri = 'https://www.google.de/test-page?' . Query::build($queryParams);
33
        $request = new ServerRequest($uri, null, 'php://input', []);
34
        $request = $request->withQueryParams($queryParams);
35
36
        $event = new CheckLanguageDetectionEvent($site, $request);
37
38
        $workspacePreviewCheck = new WorkspacePreviewCheck();
39
        $workspacePreviewCheck($event);
40
41
        self::assertEquals($result, $event->isLanguageDetectionEnable());
42
    }
43
44
    /**
45
     * @return array<string, array<array<string, string>|bool>>
46
     */
47
    public static function data(): array
48
    {
49
        return [
50
            'no param' => [
51
                [],
52
                true,
53
            ],
54
            'other param' => [
55
                ['otherParam' => 'value'],
56
                true,
57
            ],
58
            'ws param 1' => [
59
                ['ADMCMD_prev' => 'value'],
60
                false,
61
            ],
62
            'ws param 2' => [
63
                ['ADMCMD_previewWS' => 'value'],
64
                false,
65
            ],
66
        ];
67
    }
68
}
69