I18nExtensionTest   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 79
Duplicated Lines 0 %

Importance

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

6 Methods

Rating   Name   Duplication   Size   Complexity  
A testMessage() 0 11 1
A testPlural2() 0 15 1
A setUp() 0 7 1
A tearDown() 0 5 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;
0 ignored issues
show
Bug introduced by
The type PHPUnit\Framework\Attributes\CoversClass was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

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