I18nExtensionTest   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 79
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 6
eloc 49
c 2
b 0
f 0
dl 0
loc 79
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 7 1
A tearDown() 0 5 1
A testMessage() 0 11 1
A testPlural2() 0 15 1
A testContext() 0 11 1
A testPlural() 0 15 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpMyAdmin\Tests\Twig;
6
7
use PhpMyAdmin\Config;
8
use PhpMyAdmin\Template;
9
use PhpMyAdmin\Tests\AbstractTestCase;
10
use PhpMyAdmin\Twig\I18nExtension;
11
use PhpMyAdmin\Twig\Node\Expression\TransExpression;
12
use PHPUnit\Framework\Attributes\CoversClass;
13
use ReflectionProperty;
14
use Twig\Loader\FilesystemLoader;
15
16
use const TEST_PATH;
17
18
#[CoversClass(I18nExtension::class)]
19
#[CoversClass(TransExpression::class)]
20
final class I18nExtensionTest extends AbstractTestCase
21
{
22
    protected function setUp(): void
23
    {
24
        parent::setUp();
25
26
        $twigEnvironment = Template::getTwigEnvironment(null, true);
27
        $twigEnvironment->setLoader(new FilesystemLoader(TEST_PATH . 'tests/unit/_data/templates'));
28
        (new ReflectionProperty(Template::class, 'twig'))->setValue(null, $twigEnvironment);
29
    }
30
31
    protected function tearDown(): void
32
    {
33
        parent::tearDown();
34
35
        (new ReflectionProperty(Template::class, 'twig'))->setValue(null, null);
36
    }
37
38
    public function testMessage(): void
39
    {
40
        $expected = <<<'HTML'
41
            Message
42
            Message
43
            Message
44
            Message
45
46
            HTML;
47
48
        self::assertSame($expected, (new Template(new Config()))->render('i18n_extension/message', []));
49
    }
50
51
    public function testContext(): void
52
    {
53
        $expected = <<<'HTML'
54
            Message
55
            Message
56
            Message
57
            Message
58
59
            HTML;
60
61
        self::assertSame($expected, (new Template(new Config()))->render('i18n_extension/context', []));
62
    }
63
64
    public function testPlural(): void
65
    {
66
        $expected = <<<'HTML'
67
            One apple
68
            One apple
69
            One apple
70
            One apple
71
            One apple
72
            One apple
73
74
            HTML;
75
76
        self::assertSame(
77
            $expected,
78
            (new Template(new Config()))->render('i18n_extension/plural', ['number_of_apples' => 1]),
79
        );
80
    }
81
82
    public function testPlural2(): void
83
    {
84
        $expected = <<<'HTML'
85
            2 apples
86
            2 apples
87
            2 apples
88
            2 apples
89
            2 apples
90
            2 apples
91
92
            HTML;
93
94
        self::assertSame(
95
            $expected,
96
            (new Template(new Config()))->render('i18n_extension/plural', ['number_of_apples' => 2]),
97
        );
98
    }
99
}
100