3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests
;
7 use PhpMyAdmin\Template
;
8 use PhpMyAdmin\Twig\Extensions\Node\TransNode
;
9 use Twig\Error\LoaderError
;
12 * @covers \PhpMyAdmin\Template
14 class TemplateTest
extends AbstractTestCase
20 * Sets up the fixture.
22 protected function setUp(): void
25 $this->template
= new Template();
29 * Test that Twig Environment can be built
30 * and that all Twig extensions are loaded
32 public function testGetTwigEnvironment(): void
36 $this->loadContainerBuilder();
38 $cfg['environment'] = 'production';
39 $twig = Template
::getTwigEnvironment(null);
40 $this->assertFalse($twig->isDebug());
41 $this->assertFalse(TransNode
::$enableAddDebugInfo);
42 $cfg['environment'] = 'development';
43 $twig = Template
::getTwigEnvironment(null);
44 $this->assertTrue($twig->isDebug());
45 $this->assertTrue(TransNode
::$enableAddDebugInfo);
49 * Test for set function
51 * @param string $data Template name
53 * @dataProvider providerTestSet
55 public function testSet(string $data): void
57 $result = $this->template
->render($data, [
58 'variable1' => 'value1',
59 'variable2' => 'value2',
61 $this->assertStringContainsString('value1', $result);
62 $this->assertStringContainsString('value2', $result);
66 * Data provider for testSet
70 public function providerTestSet(): array
80 * @param string $templateFile Template name
81 * @param string $key Template variable array key
82 * @param string $value Template variable array value
84 * @dataProvider providerTestDynamicRender
86 public function testDynamicRender(string $templateFile, string $key, string $value): void
90 $this->template
->render($templateFile, [$key => $value])
95 * Data provider for testDynamicRender
99 public function providerTestDynamicRender(): array
113 public function testRenderTemplateNotFound(): void
115 $this->expectException(LoaderError
::class);
116 $this->template
->render('template not found');
122 * @param string $templateFile Template name
123 * @param string $expectedResult Expected result
125 * @dataProvider providerTestRender
127 public function testRender(string $templateFile, string $expectedResult): void
131 $this->template
->render($templateFile)
136 * Data provider for testSet
140 public function providerTestRender(): array
153 * @param string $templateFile Template name
154 * @param array $renderParams Render params
155 * @param string $expectedResult Expected result
157 * @dataProvider providerTestRenderGettext
159 public function testRenderGettext(string $templateFile, array $renderParams, string $expectedResult): void
163 $this->template
->render($templateFile, $renderParams)
168 * Data provider for testRenderGettext
172 public function providerTestRenderGettext(): array
176 'test/gettext/gettext',
181 'test/gettext/pgettext',
186 'test/gettext/notes',
191 'test/gettext/plural',
192 ['table_count' => 1],
196 'test/gettext/plural',
197 ['table_count' => 2],
201 'test/gettext/plural_notes',
202 ['table_count' => 1],
206 'test/gettext/plural_notes',
207 ['table_count' => 2],