Translated using Weblate (Lithuanian)
[phpmyadmin.git] / test / classes / TemplateTest.php
blob6c915f42ba460eed36203c6cc07bb2b600bdded9
1 <?php
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;
11 /**
12 * @covers \PhpMyAdmin\Template
14 class TemplateTest extends AbstractTestCase
16 /** @var Template */
17 protected $template;
19 /**
20 * Sets up the fixture.
22 protected function setUp(): void
24 parent::setUp();
25 $this->template = new Template();
28 /**
29 * Test that Twig Environment can be built
30 * and that all Twig extensions are loaded
32 public function testGetTwigEnvironment(): void
34 global $cfg;
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);
48 /**
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',
60 ]);
61 $this->assertStringContainsString('value1', $result);
62 $this->assertStringContainsString('value2', $result);
65 /**
66 * Data provider for testSet
68 * @return array
70 public function providerTestSet(): array
72 return [
73 ['test/add_data'],
77 /**
78 * Test for render
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
88 $this->assertEquals(
89 $value,
90 $this->template->render($templateFile, [$key => $value])
94 /**
95 * Data provider for testDynamicRender
97 * @return array
99 public function providerTestDynamicRender(): array
101 return [
103 'test/echo',
104 'variable',
105 'value',
111 * Test for render
113 public function testRenderTemplateNotFound(): void
115 $this->expectException(LoaderError::class);
116 $this->template->render('template not found');
120 * Test for render
122 * @param string $templateFile Template name
123 * @param string $expectedResult Expected result
125 * @dataProvider providerTestRender
127 public function testRender(string $templateFile, string $expectedResult): void
129 $this->assertEquals(
130 $expectedResult,
131 $this->template->render($templateFile)
136 * Data provider for testSet
138 * @return array
140 public function providerTestRender(): array
142 return [
144 'test/static',
145 'static content',
151 * Test for render
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
161 $this->assertEquals(
162 $expectedResult,
163 $this->template->render($templateFile, $renderParams)
168 * Data provider for testRenderGettext
170 * @return array
172 public function providerTestRenderGettext(): array
174 return [
176 'test/gettext/gettext',
178 'Text',
181 'test/gettext/pgettext',
183 'Text',
186 'test/gettext/notes',
188 'Text',
191 'test/gettext/plural',
192 ['table_count' => 1],
193 'One table',
196 'test/gettext/plural',
197 ['table_count' => 2],
198 '2 tables',
201 'test/gettext/plural_notes',
202 ['table_count' => 1],
203 'One table',
206 'test/gettext/plural_notes',
207 ['table_count' => 2],
208 '2 tables',