Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / symfony / console / Symfony / Component / Console / Tests / Formatter / OutputFormatterTest.php
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
13 namespace Symfony\Component\Console\Tests\Formatter;
14
15 use Symfony\Component\Console\Formatter\OutputFormatter;
16 use Symfony\Component\Console\Formatter\OutputFormatterStyle;
17
18 class FormatterStyleTest extends \PHPUnit_Framework_TestCase
19 {
20     public function testEmptyTag()
21     {
22         $formatter = new OutputFormatter(true);
23         $this->assertEquals("foo<>bar", $formatter->format('foo<>bar'));
24     }
25
26     public function testLGCharEscaping()
27     {
28         $formatter = new OutputFormatter(true);
29
30         $this->assertEquals("foo<bar", $formatter->format('foo\\<bar'));
31         $this->assertEquals("<info>some info</info>", $formatter->format('\\<info>some info\\</info>'));
32         $this->assertEquals("\\<info>some info\\</info>", OutputFormatter::escape('<info>some info</info>'));
33
34         $this->assertEquals(
35             "\033[33mSymfony\\Component\\Console does work very well!\033[0m",
36             $formatter->format('<comment>Symfony\Component\Console does work very well!</comment>')
37         );
38     }
39
40     public function testBundledStyles()
41     {
42         $formatter = new OutputFormatter(true);
43
44         $this->assertTrue($formatter->hasStyle('error'));
45         $this->assertTrue($formatter->hasStyle('info'));
46         $this->assertTrue($formatter->hasStyle('comment'));
47         $this->assertTrue($formatter->hasStyle('question'));
48
49         $this->assertEquals(
50             "\033[37;41msome error\033[0m",
51             $formatter->format('<error>some error</error>')
52         );
53         $this->assertEquals(
54             "\033[32msome info\033[0m",
55             $formatter->format('<info>some info</info>')
56         );
57         $this->assertEquals(
58             "\033[33msome comment\033[0m",
59             $formatter->format('<comment>some comment</comment>')
60         );
61         $this->assertEquals(
62             "\033[30;46msome question\033[0m",
63             $formatter->format('<question>some question</question>')
64         );
65     }
66
67     public function testNestedStyles()
68     {
69         $formatter = new OutputFormatter(true);
70
71         $this->assertEquals(
72             "\033[37;41msome \033[0m\033[32msome info\033[0m\033[37;41m error\033[0m",
73             $formatter->format('<error>some <info>some info</info> error</error>')
74         );
75     }
76
77     public function testDeepNestedStyles()
78     {
79         $formatter = new OutputFormatter(true);
80
81         $this->assertEquals(
82             "\033[37;41merror\033[0m\033[32minfo\033[0m\033[33mcomment\033[0m\033[37;41merror\033[0m",
83             $formatter->format('<error>error<info>info<comment>comment</info>error</error>')
84         );
85     }
86
87     public function testNewStyle()
88     {
89         $formatter = new OutputFormatter(true);
90
91         $style = new OutputFormatterStyle('blue', 'white');
92         $formatter->setStyle('test', $style);
93
94         $this->assertEquals($style, $formatter->getStyle('test'));
95         $this->assertNotEquals($style, $formatter->getStyle('info'));
96
97         $this->assertEquals("\033[34;47msome custom msg\033[0m", $formatter->format('<test>some custom msg</test>'));
98     }
99
100     public function testRedefineStyle()
101     {
102         $formatter = new OutputFormatter(true);
103
104         $style = new OutputFormatterStyle('blue', 'white');
105         $formatter->setStyle('info', $style);
106
107         $this->assertEquals("\033[34;47msome custom msg\033[0m", $formatter->format('<info>some custom msg</info>'));
108     }
109
110     public function testInlineStyle()
111     {
112         $formatter = new OutputFormatter(true);
113
114         $this->assertEquals("\033[34;41msome text\033[0m", $formatter->format('<fg=blue;bg=red>some text</>'));
115         $this->assertEquals("\033[34;41msome text\033[0m", $formatter->format('<fg=blue;bg=red>some text</fg=blue;bg=red>'));
116     }
117
118     public function testNonStyleTag()
119     {
120         $formatter = new OutputFormatter(true);
121         $this->assertEquals("\033[32msome \033[0m\033[32m<tag> styled\033[0m", $formatter->format('<info>some <tag> styled</info>'));
122     }
123
124     public function testNotDecoratedFormatter()
125     {
126         $formatter = new OutputFormatter(false);
127
128         $this->assertTrue($formatter->hasStyle('error'));
129         $this->assertTrue($formatter->hasStyle('info'));
130         $this->assertTrue($formatter->hasStyle('comment'));
131         $this->assertTrue($formatter->hasStyle('question'));
132
133         $this->assertEquals(
134             "some error", $formatter->format('<error>some error</error>')
135         );
136         $this->assertEquals(
137             "some info", $formatter->format('<info>some info</info>')
138         );
139         $this->assertEquals(
140             "some comment", $formatter->format('<comment>some comment</comment>')
141         );
142         $this->assertEquals(
143             "some question", $formatter->format('<question>some question</question>')
144         );
145
146         $formatter->setDecorated(true);
147
148         $this->assertEquals(
149             "\033[37;41msome error\033[0m", $formatter->format('<error>some error</error>')
150         );
151         $this->assertEquals(
152             "\033[32msome info\033[0m", $formatter->format('<info>some info</info>')
153         );
154         $this->assertEquals(
155             "\033[33msome comment\033[0m", $formatter->format('<comment>some comment</comment>')
156         );
157         $this->assertEquals(
158             "\033[30;46msome question\033[0m", $formatter->format('<question>some question</question>')
159         );
160     }
161
162     public function testContentWithLineBreaks()
163     {
164         $formatter = new OutputFormatter(true);
165
166         $this->assertEquals(<<<EOF
167 \033[32m
168 some text\033[0m
169 EOF
170             , $formatter->format(<<<EOF
171 <info>
172 some text</info>
173 EOF
174         ));
175
176         $this->assertEquals(<<<EOF
177 \033[32msome text
178 \033[0m
179 EOF
180             , $formatter->format(<<<EOF
181 <info>some text
182 </info>
183 EOF
184         ));
185
186         $this->assertEquals(<<<EOF
187 \033[32m
188 some text
189 \033[0m
190 EOF
191             , $formatter->format(<<<EOF
192 <info>
193 some text
194 </info>
195 EOF
196         ));
197
198         $this->assertEquals(<<<EOF
199 \033[32m
200 some text
201 more text
202 \033[0m
203 EOF
204             , $formatter->format(<<<EOF
205 <info>
206 some text
207 more text
208 </info>
209 EOF
210         ));
211     }
212 }