diff options
Diffstat (limited to 'vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension')
14 files changed, 0 insertions, 797 deletions
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php deleted file mode 100644 index d9356514..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension; | ||
13 | |||
14 | use Symfony\Bridge\Twig\Extension\CodeExtension; | ||
15 | |||
16 | class CodeExtensionTest extends \PHPUnit_Framework_TestCase | ||
17 | { | ||
18 | protected $helper; | ||
19 | |||
20 | public function testFormatFile() | ||
21 | { | ||
22 | $expected = sprintf('<a href="txmt://open?url=file://%s&line=25" title="Click to open this file" class="file_link">%s at line 25</a>', __FILE__, __FILE__); | ||
23 | $this->assertEquals($expected, $this->getExtension()->formatFile(__FILE__, 25)); | ||
24 | } | ||
25 | |||
26 | /** | ||
27 | * @dataProvider getClassNameProvider | ||
28 | */ | ||
29 | public function testGettingClassAbbreviation($class, $abbr) | ||
30 | { | ||
31 | $this->assertEquals($this->getExtension()->abbrClass($class), $abbr); | ||
32 | } | ||
33 | |||
34 | /** | ||
35 | * @dataProvider getMethodNameProvider | ||
36 | */ | ||
37 | public function testGettingMethodAbbreviation($method, $abbr) | ||
38 | { | ||
39 | $this->assertEquals($this->getExtension()->abbrMethod($method), $abbr); | ||
40 | } | ||
41 | |||
42 | public function getClassNameProvider() | ||
43 | { | ||
44 | return array( | ||
45 | array('F\Q\N\Foo', '<abbr title="F\Q\N\Foo">Foo</abbr>'), | ||
46 | array('Bare', '<abbr title="Bare">Bare</abbr>'), | ||
47 | ); | ||
48 | } | ||
49 | |||
50 | public function getMethodNameProvider() | ||
51 | { | ||
52 | return array( | ||
53 | array('F\Q\N\Foo::Method', '<abbr title="F\Q\N\Foo">Foo</abbr>::Method()'), | ||
54 | array('Bare::Method', '<abbr title="Bare">Bare</abbr>::Method()'), | ||
55 | array('Closure', '<abbr title="Closure">Closure</abbr>'), | ||
56 | array('Method', '<abbr title="Method">Method</abbr>()') | ||
57 | ); | ||
58 | } | ||
59 | |||
60 | public function testGetName() | ||
61 | { | ||
62 | $this->assertEquals('code', $this->getExtension()->getName()); | ||
63 | } | ||
64 | |||
65 | protected function getExtension() | ||
66 | { | ||
67 | return new CodeExtension('txmt://open?url=file://%f&line=%l', '/root', 'UTF-8'); | ||
68 | } | ||
69 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubFilesystemLoader.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubFilesystemLoader.php deleted file mode 100644 index 36c61cd6..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubFilesystemLoader.php +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension\Fixtures; | ||
13 | |||
14 | // Preventing autoloader throwing E_FATAL when Twig is now available | ||
15 | if (!class_exists('Twig_Environment')) { | ||
16 | class StubFilesystemLoader | ||
17 | { | ||
18 | } | ||
19 | } else { | ||
20 | class StubFilesystemLoader extends \Twig_Loader_Filesystem | ||
21 | { | ||
22 | protected function findTemplate($name) | ||
23 | { | ||
24 | // strip away bundle name | ||
25 | $parts = explode(':', $name); | ||
26 | |||
27 | return parent::findTemplate(end($parts)); | ||
28 | } | ||
29 | } | ||
30 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubTranslator.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubTranslator.php deleted file mode 100644 index b7d011b5..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/Fixtures/StubTranslator.php +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension\Fixtures; | ||
13 | |||
14 | use Symfony\Component\Translation\TranslatorInterface; | ||
15 | |||
16 | class StubTranslator implements TranslatorInterface | ||
17 | { | ||
18 | public function trans($id, array $parameters = array(), $domain = null, $locale = null) | ||
19 | { | ||
20 | return '[trans]'.$id.'[/trans]'; | ||
21 | } | ||
22 | |||
23 | public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null) | ||
24 | { | ||
25 | return '[trans]'.$id.'[/trans]'; | ||
26 | } | ||
27 | |||
28 | public function setLocale($locale) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public function getLocale() | ||
33 | { | ||
34 | } | ||
35 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php deleted file mode 100644 index c5c134bc..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php +++ /dev/null | |||
@@ -1,209 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension; | ||
13 | |||
14 | use Symfony\Bridge\Twig\Extension\FormExtension; | ||
15 | use Symfony\Bridge\Twig\Form\TwigRenderer; | ||
16 | use Symfony\Bridge\Twig\Form\TwigRendererEngine; | ||
17 | use Symfony\Bridge\Twig\Extension\TranslationExtension; | ||
18 | use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator; | ||
19 | use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader; | ||
20 | use Symfony\Component\Form\FormView; | ||
21 | use Symfony\Component\Form\Extension\Core\View\ChoiceView; | ||
22 | use Symfony\Component\Form\Tests\AbstractDivLayoutTest; | ||
23 | |||
24 | class FormExtensionDivLayoutTest extends AbstractDivLayoutTest | ||
25 | { | ||
26 | /** | ||
27 | * @var FormExtension | ||
28 | */ | ||
29 | protected $extension; | ||
30 | |||
31 | protected function setUp() | ||
32 | { | ||
33 | if (!class_exists('Symfony\Component\Locale\Locale')) { | ||
34 | $this->markTestSkipped('The "Locale" component is not available'); | ||
35 | } | ||
36 | |||
37 | if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) { | ||
38 | $this->markTestSkipped('The "EventDispatcher" component is not available'); | ||
39 | } | ||
40 | |||
41 | if (!class_exists('Symfony\Component\Form\Form')) { | ||
42 | $this->markTestSkipped('The "Form" component is not available'); | ||
43 | } | ||
44 | |||
45 | if (!class_exists('Twig_Environment')) { | ||
46 | $this->markTestSkipped('Twig is not available.'); | ||
47 | } | ||
48 | |||
49 | parent::setUp(); | ||
50 | |||
51 | $rendererEngine = new TwigRendererEngine(array( | ||
52 | 'form_div_layout.html.twig', | ||
53 | 'custom_widgets.html.twig', | ||
54 | )); | ||
55 | $renderer = new TwigRenderer($rendererEngine, $this->getMock('Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface')); | ||
56 | |||
57 | $this->extension = new FormExtension($renderer); | ||
58 | |||
59 | $loader = new StubFilesystemLoader(array( | ||
60 | __DIR__.'/../../Resources/views/Form', | ||
61 | __DIR__, | ||
62 | )); | ||
63 | |||
64 | $environment = new \Twig_Environment($loader, array('strict_variables' => true)); | ||
65 | $environment->addExtension(new TranslationExtension(new StubTranslator())); | ||
66 | $environment->addGlobal('global', ''); | ||
67 | $environment->addExtension($this->extension); | ||
68 | |||
69 | $this->extension->initRuntime($environment); | ||
70 | } | ||
71 | |||
72 | protected function tearDown() | ||
73 | { | ||
74 | parent::tearDown(); | ||
75 | |||
76 | $this->extension = null; | ||
77 | } | ||
78 | |||
79 | public function testThemeBlockInheritanceUsingUse() | ||
80 | { | ||
81 | $view = $this->factory | ||
82 | ->createNamed('name', 'email') | ||
83 | ->createView() | ||
84 | ; | ||
85 | |||
86 | $this->setTheme($view, array('theme_use.html.twig')); | ||
87 | |||
88 | $this->assertMatchesXpath( | ||
89 | $this->renderWidget($view), | ||
90 | '/input[@type="email"][@rel="theme"]' | ||
91 | ); | ||
92 | } | ||
93 | |||
94 | public function testThemeBlockInheritanceUsingExtend() | ||
95 | { | ||
96 | $view = $this->factory | ||
97 | ->createNamed('name', 'email') | ||
98 | ->createView() | ||
99 | ; | ||
100 | |||
101 | $this->setTheme($view, array('theme_extends.html.twig')); | ||
102 | |||
103 | $this->assertMatchesXpath( | ||
104 | $this->renderWidget($view), | ||
105 | '/input[@type="email"][@rel="theme"]' | ||
106 | ); | ||
107 | } | ||
108 | |||
109 | public function isSelectedChoiceProvider() | ||
110 | { | ||
111 | // The commented cases should not be necessary anymore, because the | ||
112 | // choice lists should assure that both values passed here are always | ||
113 | // strings | ||
114 | return array( | ||
115 | // array(true, 0, 0), | ||
116 | array(true, '0', '0'), | ||
117 | array(true, '1', '1'), | ||
118 | // array(true, false, 0), | ||
119 | // array(true, true, 1), | ||
120 | array(true, '', ''), | ||
121 | // array(true, null, ''), | ||
122 | array(true, '1.23', '1.23'), | ||
123 | array(true, 'foo', 'foo'), | ||
124 | array(true, 'foo10', 'foo10'), | ||
125 | array(true, 'foo', array(1, 'foo', 'foo10')), | ||
126 | |||
127 | array(false, 10, array(1, 'foo', 'foo10')), | ||
128 | array(false, 0, array(1, 'foo', 'foo10')), | ||
129 | ); | ||
130 | } | ||
131 | |||
132 | /** | ||
133 | * @dataProvider isSelectedChoiceProvider | ||
134 | */ | ||
135 | public function testIsChoiceSelected($expected, $choice, $value) | ||
136 | { | ||
137 | $choice = new ChoiceView($choice, $choice, $choice.' label'); | ||
138 | |||
139 | $this->assertSame($expected, $this->extension->isSelectedChoice($choice, $value)); | ||
140 | } | ||
141 | |||
142 | protected function renderForm(FormView $view, array $vars = array()) | ||
143 | { | ||
144 | return (string) $this->extension->renderer->renderBlock($view, 'form', $vars); | ||
145 | } | ||
146 | |||
147 | protected function renderEnctype(FormView $view) | ||
148 | { | ||
149 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'enctype'); | ||
150 | } | ||
151 | |||
152 | protected function renderLabel(FormView $view, $label = null, array $vars = array()) | ||
153 | { | ||
154 | if ($label !== null) { | ||
155 | $vars += array('label' => $label); | ||
156 | } | ||
157 | |||
158 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'label', $vars); | ||
159 | } | ||
160 | |||
161 | protected function renderErrors(FormView $view) | ||
162 | { | ||
163 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'errors'); | ||
164 | } | ||
165 | |||
166 | protected function renderWidget(FormView $view, array $vars = array()) | ||
167 | { | ||
168 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'widget', $vars); | ||
169 | } | ||
170 | |||
171 | protected function renderRow(FormView $view, array $vars = array()) | ||
172 | { | ||
173 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'row', $vars); | ||
174 | } | ||
175 | |||
176 | protected function renderRest(FormView $view, array $vars = array()) | ||
177 | { | ||
178 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'rest', $vars); | ||
179 | } | ||
180 | |||
181 | protected function renderStart(FormView $view, array $vars = array()) | ||
182 | { | ||
183 | return (string) $this->extension->renderer->renderBlock($view, 'form_start', $vars); | ||
184 | } | ||
185 | |||
186 | protected function renderEnd(FormView $view, array $vars = array()) | ||
187 | { | ||
188 | return (string) $this->extension->renderer->renderBlock($view, 'form_end', $vars); | ||
189 | } | ||
190 | |||
191 | protected function setTheme(FormView $view, array $themes) | ||
192 | { | ||
193 | $this->extension->renderer->setTheme($view, $themes); | ||
194 | } | ||
195 | |||
196 | public static function themeBlockInheritanceProvider() | ||
197 | { | ||
198 | return array( | ||
199 | array(array('theme.html.twig')) | ||
200 | ); | ||
201 | } | ||
202 | |||
203 | public static function themeInheritanceProvider() | ||
204 | { | ||
205 | return array( | ||
206 | array(array('parent_label.html.twig'), array('child_label.html.twig')) | ||
207 | ); | ||
208 | } | ||
209 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/FormExtensionTableLayoutTest.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/FormExtensionTableLayoutTest.php deleted file mode 100644 index 99a78217..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/FormExtensionTableLayoutTest.php +++ /dev/null | |||
@@ -1,131 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension; | ||
13 | |||
14 | use Symfony\Component\Form\FormView; | ||
15 | use Symfony\Bridge\Twig\Form\TwigRenderer; | ||
16 | use Symfony\Bridge\Twig\Form\TwigRendererEngine; | ||
17 | use Symfony\Bridge\Twig\Extension\FormExtension; | ||
18 | use Symfony\Bridge\Twig\Extension\TranslationExtension; | ||
19 | use Symfony\Component\Form\Tests\AbstractTableLayoutTest; | ||
20 | use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator; | ||
21 | use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader; | ||
22 | |||
23 | class FormExtensionTableLayoutTest extends AbstractTableLayoutTest | ||
24 | { | ||
25 | /** | ||
26 | * @var FormExtension | ||
27 | */ | ||
28 | protected $extension; | ||
29 | |||
30 | protected function setUp() | ||
31 | { | ||
32 | if (!class_exists('Symfony\Component\Locale\Locale')) { | ||
33 | $this->markTestSkipped('The "Locale" component is not available'); | ||
34 | } | ||
35 | |||
36 | if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) { | ||
37 | $this->markTestSkipped('The "EventDispatcher" component is not available'); | ||
38 | } | ||
39 | |||
40 | if (!class_exists('Symfony\Component\Form\Form')) { | ||
41 | $this->markTestSkipped('The "Form" component is not available'); | ||
42 | } | ||
43 | |||
44 | if (!class_exists('Twig_Environment')) { | ||
45 | $this->markTestSkipped('Twig is not available.'); | ||
46 | } | ||
47 | |||
48 | parent::setUp(); | ||
49 | |||
50 | $rendererEngine = new TwigRendererEngine(array( | ||
51 | 'form_table_layout.html.twig', | ||
52 | 'custom_widgets.html.twig', | ||
53 | )); | ||
54 | $renderer = new TwigRenderer($rendererEngine, $this->getMock('Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface')); | ||
55 | |||
56 | $this->extension = new FormExtension($renderer); | ||
57 | |||
58 | $loader = new StubFilesystemLoader(array( | ||
59 | __DIR__.'/../../Resources/views/Form', | ||
60 | __DIR__, | ||
61 | )); | ||
62 | |||
63 | $environment = new \Twig_Environment($loader, array('strict_variables' => true)); | ||
64 | $environment->addExtension(new TranslationExtension(new StubTranslator())); | ||
65 | $environment->addGlobal('global', ''); | ||
66 | $environment->addExtension($this->extension); | ||
67 | |||
68 | $this->extension->initRuntime($environment); | ||
69 | } | ||
70 | |||
71 | protected function tearDown() | ||
72 | { | ||
73 | parent::tearDown(); | ||
74 | |||
75 | $this->extension = null; | ||
76 | } | ||
77 | |||
78 | protected function renderForm(FormView $view, array $vars = array()) | ||
79 | { | ||
80 | return (string) $this->extension->renderer->renderBlock($view, 'form', $vars); | ||
81 | } | ||
82 | |||
83 | protected function renderEnctype(FormView $view) | ||
84 | { | ||
85 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'enctype'); | ||
86 | } | ||
87 | |||
88 | protected function renderLabel(FormView $view, $label = null, array $vars = array()) | ||
89 | { | ||
90 | if ($label !== null) { | ||
91 | $vars += array('label' => $label); | ||
92 | } | ||
93 | |||
94 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'label', $vars); | ||
95 | } | ||
96 | |||
97 | protected function renderErrors(FormView $view) | ||
98 | { | ||
99 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'errors'); | ||
100 | } | ||
101 | |||
102 | protected function renderWidget(FormView $view, array $vars = array()) | ||
103 | { | ||
104 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'widget', $vars); | ||
105 | } | ||
106 | |||
107 | protected function renderRow(FormView $view, array $vars = array()) | ||
108 | { | ||
109 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'row', $vars); | ||
110 | } | ||
111 | |||
112 | protected function renderRest(FormView $view, array $vars = array()) | ||
113 | { | ||
114 | return (string) $this->extension->renderer->searchAndRenderBlock($view, 'rest', $vars); | ||
115 | } | ||
116 | |||
117 | protected function renderStart(FormView $view, array $vars = array()) | ||
118 | { | ||
119 | return (string) $this->extension->renderer->renderBlock($view, 'form_start', $vars); | ||
120 | } | ||
121 | |||
122 | protected function renderEnd(FormView $view, array $vars = array()) | ||
123 | { | ||
124 | return (string) $this->extension->renderer->renderBlock($view, 'form_end', $vars); | ||
125 | } | ||
126 | |||
127 | protected function setTheme(FormView $view, array $themes) | ||
128 | { | ||
129 | $this->extension->renderer->setTheme($view, $themes); | ||
130 | } | ||
131 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php deleted file mode 100644 index 077927cd..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/HttpKernelExtensionTest.php +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension; | ||
13 | |||
14 | use Symfony\Bridge\Twig\Extension\HttpKernelExtension; | ||
15 | use Symfony\Bridge\Twig\Tests\TestCase; | ||
16 | use Symfony\Component\HttpFoundation\Request; | ||
17 | use Symfony\Component\HttpKernel\Fragment\FragmentHandler; | ||
18 | |||
19 | class HttpKernelExtensionTest extends TestCase | ||
20 | { | ||
21 | protected function setUp() | ||
22 | { | ||
23 | parent::setUp(); | ||
24 | |||
25 | if (!class_exists('Symfony\Component\HttpKernel\HttpKernel')) { | ||
26 | $this->markTestSkipped('The "HttpKernel" component is not available'); | ||
27 | } | ||
28 | |||
29 | if (!class_exists('Twig_Environment')) { | ||
30 | $this->markTestSkipped('Twig is not available.'); | ||
31 | } | ||
32 | } | ||
33 | |||
34 | /** | ||
35 | * @expectedException \Twig_Error_Runtime | ||
36 | */ | ||
37 | public function testFragmentWithError() | ||
38 | { | ||
39 | $kernel = $this->getFragmentHandler($this->throwException(new \Exception('foo'))); | ||
40 | |||
41 | $loader = new \Twig_Loader_Array(array('index' => '{{ fragment("foo") }}')); | ||
42 | $twig = new \Twig_Environment($loader, array('debug' => true, 'cache' => false)); | ||
43 | $twig->addExtension(new HttpKernelExtension($kernel)); | ||
44 | |||
45 | $this->renderTemplate($kernel); | ||
46 | } | ||
47 | |||
48 | protected function getFragmentHandler($return) | ||
49 | { | ||
50 | $strategy = $this->getMock('Symfony\\Component\\HttpKernel\\Fragment\\FragmentRendererInterface'); | ||
51 | $strategy->expects($this->once())->method('getName')->will($this->returnValue('inline')); | ||
52 | $strategy->expects($this->once())->method('render')->will($return); | ||
53 | |||
54 | $renderer = new FragmentHandler(array($strategy)); | ||
55 | $renderer->setRequest(Request::create('/')); | ||
56 | |||
57 | return $renderer; | ||
58 | } | ||
59 | |||
60 | protected function renderTemplate(FragmentHandler $renderer, $template = '{{ render("foo") }}') | ||
61 | { | ||
62 | $loader = new \Twig_Loader_Array(array('index' => $template)); | ||
63 | $twig = new \Twig_Environment($loader, array('debug' => true, 'cache' => false)); | ||
64 | $twig->addExtension(new HttpKernelExtension($renderer)); | ||
65 | |||
66 | return $twig->render('index'); | ||
67 | } | ||
68 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/RoutingExtensionTest.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/RoutingExtensionTest.php deleted file mode 100644 index 3c5d762c..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/RoutingExtensionTest.php +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension; | ||
13 | |||
14 | use Symfony\Bridge\Twig\Extension\RoutingExtension; | ||
15 | use Symfony\Bridge\Twig\Tests\TestCase; | ||
16 | |||
17 | class RoutingExtensionTest extends TestCase | ||
18 | { | ||
19 | protected function setUp() | ||
20 | { | ||
21 | parent::setUp(); | ||
22 | |||
23 | if (!class_exists('Symfony\Component\Routing\Route')) { | ||
24 | $this->markTestSkipped('The "Routing" component is not available'); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | /** | ||
29 | * @dataProvider getEscapingTemplates | ||
30 | */ | ||
31 | public function testEscaping($template, $mustBeEscaped) | ||
32 | { | ||
33 | $twig = new \Twig_Environment(null, array('debug' => true, 'cache' => false, 'autoescape' => true, 'optimizations' => 0)); | ||
34 | $twig->addExtension(new RoutingExtension($this->getMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface'))); | ||
35 | |||
36 | $nodes = $twig->parse($twig->tokenize($template)); | ||
37 | |||
38 | $this->assertSame($mustBeEscaped, $nodes->getNode('body')->getNode(0)->getNode('expr') instanceof \Twig_Node_Expression_Filter); | ||
39 | } | ||
40 | |||
41 | public function getEscapingTemplates() | ||
42 | { | ||
43 | return array( | ||
44 | array('{{ path("foo") }}', false), | ||
45 | array('{{ path("foo", {}) }}', false), | ||
46 | array('{{ path("foo", { foo: "foo" }) }}', false), | ||
47 | array('{{ path("foo", foo) }}', true), | ||
48 | array('{{ path("foo", { foo: foo }) }}', true), | ||
49 | array('{{ path("foo", { foo: ["foo", "bar"] }) }}', true), | ||
50 | array('{{ path("foo", { foo: "foo", bar: "bar" }) }}', true), | ||
51 | |||
52 | array('{{ path(name = "foo", parameters = {}) }}', false), | ||
53 | array('{{ path(name = "foo", parameters = { foo: "foo" }) }}', false), | ||
54 | array('{{ path(name = "foo", parameters = foo) }}', true), | ||
55 | array('{{ path(name = "foo", parameters = { foo: ["foo", "bar"] }) }}', true), | ||
56 | array('{{ path(name = "foo", parameters = { foo: foo }) }}', true), | ||
57 | array('{{ path(name = "foo", parameters = { foo: "foo", bar: "bar" }) }}', true), | ||
58 | ); | ||
59 | } | ||
60 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/TranslationExtensionTest.php b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/TranslationExtensionTest.php deleted file mode 100644 index 2b9c5533..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/TranslationExtensionTest.php +++ /dev/null | |||
@@ -1,151 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Bridge\Twig\Tests\Extension; | ||
13 | |||
14 | use Symfony\Bridge\Twig\Extension\TranslationExtension; | ||
15 | use Symfony\Component\Translation\Translator; | ||
16 | use Symfony\Component\Translation\MessageSelector; | ||
17 | use Symfony\Component\Translation\Loader\ArrayLoader; | ||
18 | use Symfony\Bridge\Twig\Tests\TestCase; | ||
19 | |||
20 | class TranslationExtensionTest extends TestCase | ||
21 | { | ||
22 | protected function setUp() | ||
23 | { | ||
24 | parent::setUp(); | ||
25 | |||
26 | if (!class_exists('Symfony\Component\Translation\Translator')) { | ||
27 | $this->markTestSkipped('The "Translation" component is not available'); | ||
28 | } | ||
29 | |||
30 | if (!class_exists('Twig_Environment')) { | ||
31 | $this->markTestSkipped('Twig is not available.'); | ||
32 | } | ||
33 | } | ||
34 | |||
35 | public function testEscaping() | ||
36 | { | ||
37 | $output = $this->getTemplate('{% trans %}Percent: %value%%% (%msg%){% endtrans %}')->render(array('value' => 12, 'msg' => 'approx.')); | ||
38 | |||
39 | $this->assertEquals('Percent: 12% (approx.)', $output); | ||
40 | } | ||
41 | |||
42 | /** | ||
43 | * @dataProvider getTransTests | ||
44 | */ | ||
45 | public function testTrans($template, $expected, array $variables = array()) | ||
46 | { | ||
47 | if ($expected != $this->getTemplate($template)->render($variables)) { | ||
48 | print $template."\n"; | ||
49 | $loader = new \Twig_Loader_Array(array('index' => $template)); | ||
50 | $twig = new \Twig_Environment($loader, array('debug' => true, 'cache' => false)); | ||
51 | $twig->addExtension(new TranslationExtension(new Translator('en', new MessageSelector()))); | ||
52 | |||
53 | echo $twig->compile($twig->parse($twig->tokenize($twig->getLoader()->getSource('index'), 'index')))."\n\n"; | ||
54 | $this->assertEquals($expected, $this->getTemplate($template)->render($variables)); | ||
55 | } | ||
56 | |||
57 | $this->assertEquals($expected, $this->getTemplate($template)->render($variables)); | ||
58 | } | ||
59 | |||
60 | public function getTransTests() | ||
61 | { | ||
62 | return array( | ||
63 | // trans tag | ||
64 | array('{% trans %}Hello{% endtrans %}', 'Hello'), | ||
65 | array('{% trans %}%name%{% endtrans %}', 'Symfony2', array('name' => 'Symfony2')), | ||
66 | |||
67 | array('{% trans from elsewhere %}Hello{% endtrans %}', 'Hello'), | ||
68 | |||
69 | array('{% trans %}Hello %name%{% endtrans %}', 'Hello Symfony2', array('name' => 'Symfony2')), | ||
70 | array('{% trans with { \'%name%\': \'Symfony2\' } %}Hello %name%{% endtrans %}', 'Hello Symfony2'), | ||
71 | array('{% set vars = { \'%name%\': \'Symfony2\' } %}{% trans with vars %}Hello %name%{% endtrans %}', 'Hello Symfony2'), | ||
72 | |||
73 | array('{% trans into "fr"%}Hello{% endtrans %}', 'Hello'), | ||
74 | |||
75 | // transchoice | ||
76 | array('{% transchoice count from "messages" %}{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples{% endtranschoice %}', | ||
77 | 'There is no apples', array('count' => 0)), | ||
78 | array('{% transchoice count %}{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples{% endtranschoice %}', | ||
79 | 'There is 5 apples', array('count' => 5)), | ||
80 | array('{% transchoice count %}{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples (%name%){% endtranschoice %}', | ||
81 | 'There is 5 apples (Symfony2)', array('count' => 5, 'name' => 'Symfony2')), | ||
82 | array('{% transchoice count with { \'%name%\': \'Symfony2\' } %}{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples (%name%){% endtranschoice %}', | ||
83 | 'There is 5 apples (Symfony2)', array('count' => 5)), | ||
84 | array('{% transchoice count into "fr"%}{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples{% endtranschoice %}', | ||
85 | 'There is no apples', array('count' => 0)), | ||
86 | |||
87 | // trans filter | ||
88 | array('{{ "Hello"|trans }}', 'Hello'), | ||
89 | array('{{ name|trans }}', 'Symfony2', array('name' => 'Symfony2')), | ||
90 | array('{{ hello|trans({ \'%name%\': \'Symfony2\' }) }}', 'Hello Symfony2', array('hello' => 'Hello %name%')), | ||
91 | array('{% set vars = { \'%name%\': \'Symfony2\' } %}{{ hello|trans(vars) }}', 'Hello Symfony2', array('hello' => 'Hello %name%')), | ||
92 | array('{{ "Hello"|trans({}, "messages", "fr") }}', 'Hello'), | ||
93 | |||
94 | // transchoice filter | ||
95 | array('{{ "{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples"|transchoice(count) }}', 'There is 5 apples', array('count' => 5)), | ||
96 | array('{{ text|transchoice(5, {\'%name%\': \'Symfony2\'}) }}', 'There is 5 apples (Symfony2)', array('text' => '{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples (%name%)')), | ||
97 | array('{{ "{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples"|transchoice(count, {}, "messages", "fr") }}', 'There is 5 apples', array('count' => 5)), | ||
98 | ); | ||
99 | } | ||
100 | |||
101 | public function testDefaultTranslationDomain() | ||
102 | { | ||
103 | $templates = array( | ||
104 | 'index' => ' | ||
105 | {%- extends "base" %} | ||
106 | |||
107 | {%- trans_default_domain "foo" %} | ||
108 | |||
109 | {%- block content %} | ||
110 | {%- trans %}foo{% endtrans %} | ||
111 | {%- trans from "custom" %}foo{% endtrans %} | ||
112 | {{- "foo"|trans }} | ||
113 | {{- "foo"|trans({}, "custom") }} | ||
114 | {{- "foo"|transchoice(1) }} | ||
115 | {{- "foo"|transchoice(1, {}, "custom") }} | ||
116 | {% endblock %} | ||
117 | ', | ||
118 | |||
119 | 'base' => ' | ||
120 | {%- block content "" %} | ||
121 | ', | ||
122 | ); | ||
123 | |||
124 | $translator = new Translator('en', new MessageSelector()); | ||
125 | $translator->addLoader('array', new ArrayLoader()); | ||
126 | $translator->addResource('array', array('foo' => 'foo (messages)'), 'en'); | ||
127 | $translator->addResource('array', array('foo' => 'foo (custom)'), 'en', 'custom'); | ||
128 | $translator->addResource('array', array('foo' => 'foo (foo)'), 'en', 'foo'); | ||
129 | |||
130 | $template = $this->getTemplate($templates, $translator); | ||
131 | |||
132 | $this->assertEquals('foo (foo)foo (custom)foo (foo)foo (custom)foo (foo)foo (custom)', trim($template->render(array()))); | ||
133 | } | ||
134 | |||
135 | protected function getTemplate($template, $translator = null) | ||
136 | { | ||
137 | if (null === $translator) { | ||
138 | $translator = new Translator('en', new MessageSelector()); | ||
139 | } | ||
140 | |||
141 | if (is_array($template)) { | ||
142 | $loader = new \Twig_Loader_Array($template); | ||
143 | } else { | ||
144 | $loader = new \Twig_Loader_Array(array('index' => $template)); | ||
145 | } | ||
146 | $twig = new \Twig_Environment($loader, array('debug' => true, 'cache' => false)); | ||
147 | $twig->addExtension(new TranslationExtension($translator)); | ||
148 | |||
149 | return $twig->loadTemplate('index'); | ||
150 | } | ||
151 | } | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/child_label.html.twig b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/child_label.html.twig deleted file mode 100644 index 8c7c2489..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/child_label.html.twig +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | {% block form_label %} | ||
2 | <label>{{ global }}child</label> | ||
3 | {% endblock form_label %} | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/custom_widgets.html.twig b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/custom_widgets.html.twig deleted file mode 100644 index 12fd7c66..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/custom_widgets.html.twig +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | {% block _text_id_widget %} | ||
2 | {% spaceless %} | ||
3 | <div id="container"> | ||
4 | {{ form_widget(form) }} | ||
5 | </div> | ||
6 | {% endspaceless %} | ||
7 | {% endblock _text_id_widget %} | ||
8 | |||
9 | {% block _name_entry_label %} | ||
10 | {% spaceless %} | ||
11 | {% if label is empty %} | ||
12 | {% set label = name|humanize %} | ||
13 | {% endif %} | ||
14 | <label>Custom label: {{ label|trans({}, translation_domain) }}</label> | ||
15 | {% endspaceless %} | ||
16 | {% endblock _name_entry_label %} | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/parent_label.html.twig b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/parent_label.html.twig deleted file mode 100644 index e96278b8..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/parent_label.html.twig +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | {% block form_label %} | ||
2 | <label>parent</label> | ||
3 | {% endblock form_label %} | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme.html.twig b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme.html.twig deleted file mode 100644 index da1c1b64..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme.html.twig +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | {% block form_widget_simple %} | ||
2 | {% spaceless %} | ||
3 | {% set type = type|default('text') %} | ||
4 | <input type="{{ type }}" {{ block('widget_attributes') }} value="{{ value }}" rel="theme" /> | ||
5 | {% endspaceless %} | ||
6 | {% endblock form_widget_simple %} | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme_extends.html.twig b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme_extends.html.twig deleted file mode 100644 index 8c719867..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme_extends.html.twig +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | {% extends 'form_div_layout.html.twig' %} | ||
2 | |||
3 | {% block form_widget_simple %} | ||
4 | {% spaceless %} | ||
5 | {% set type = type|default('text') %} | ||
6 | <input type="{{ type }}" {{ block('widget_attributes') }} value="{{ value }}" rel="theme" /> | ||
7 | {% endspaceless %} | ||
8 | {% endblock form_widget_simple %} | ||
diff --git a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme_use.html.twig b/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme_use.html.twig deleted file mode 100644 index d485b8d0..00000000 --- a/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Tests/Extension/theme_use.html.twig +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | {% use 'form_div_layout.html.twig' %} | ||
2 | |||
3 | {% block form_widget_simple %} | ||
4 | {% spaceless %} | ||
5 | {% set type = type|default('text') %} | ||
6 | <input type="{{ type }}" {{ block('widget_attributes') }} value="{{ value }}" rel="theme" /> | ||
7 | {% endspaceless %} | ||
8 | {% endblock form_widget_simple %} | ||