12 namespace Symfony\Component\Console\Tests\Helper;
27 rewind($output->getStream());
32 stream_get_contents($output->getStream())
42 rewind($output->getStream());
46 stream_get_contents($output->getStream())
56 rewind($output->getStream());
60 stream_get_contents($output->getStream())
71 rewind($output->getStream());
76 stream_get_contents($output->getStream())
87 rewind($output->getStream());
90 $this->
generateOutput(
' 10/10 [============================] 100%').
91 $this->
generateOutput(
' 11/11 [============================] 100%'),
92 stream_get_contents($output->getStream())
99 $bar->setBarWidth(10);
100 $bar->setBarCharacter(
'_');
101 $bar->setEmptyBarCharacter(
' ');
102 $bar->setProgressCharacter(
'/');
103 $bar->setFormat(
' %current%/%max% [%bar%] %percent:3s%%');
107 rewind($output->getStream());
111 stream_get_contents($output->getStream())
120 rewind($output->getStream());
123 stream_get_contents($output->getStream())
132 rewind($output->getStream());
135 stream_get_contents($output->getStream())
144 rewind($output->getStream());
146 $this->
generateOutput(
' 50/50 [============================] 100%'),
147 stream_get_contents($output->getStream())
159 rewind($output->getStream());
165 stream_get_contents($output->getStream())
172 $bar->setFormat(
' %current%/%max% [%bar%] %percent:3s%%');
178 $bar->setFormat(
' %current%/%max% [%bar%]');
181 rewind($output->getStream());
187 stream_get_contents($output->getStream())
194 $bar->setFormat(
'%current%/%max% [%bar%]');
198 rewind($output->getStream());
202 stream_get_contents($output->getStream())
212 $bar->setProgress(15);
213 $bar->setProgress(25);
215 rewind($output->getStream());
220 $this->
generateOutput(
' 15/50 [========>-------------------] 30%').
221 $this->
generateOutput(
' 25/50 [==============>-------------] 50%'),
222 stream_get_contents($output->getStream())
231 $bar->setProgress(15);
232 $this->assertNotNull($bar->getStartTime());
243 $bar->setProgress(15);
244 $bar->setProgress(10);
249 $bar = $this->getMock(
'Symfony\Component\Console\Helper\ProgressBar', array(
'display'), array($output = $this->
getOutputStream(), 6));
250 $bar->expects($this->exactly(4))->method(
'display');
252 $bar->setRedrawFrequency(2);
254 $bar->setProgress(1);
262 if (!function_exists(
'mb_strlen') || (
false === $encoding = mb_detect_encoding(
'■'))) {
263 $this->markTestSkipped(
'The mbstring extension is needed for multi-byte support');
268 $bar->setBarCharacter(
'■');
271 rewind($output->getStream());
275 stream_get_contents($output->getStream())
283 $bar->setProgress(25);
286 rewind($output->getStream());
289 $this->
generateOutput(
' 25/50 [==============>-------------] 50%').
291 stream_get_contents($output->getStream())
303 rewind($output->getStream());
305 $this->
generateOutput(
' 0/200 [>---------------------------] 0%').
306 $this->
generateOutput(
' 0/200 [>---------------------------] 0%').
307 $this->
generateOutput(
' 199/200 [===========================>] 99%').
308 $this->
generateOutput(
' 200/200 [============================] 100%'),
309 stream_get_contents($output->getStream())
318 for ($i = 0; $i < 200; ++$i) {
324 rewind($output->getStream());
326 ' 0/200 [>---------------------------] 0%'.PHP_EOL.
327 ' 20/200 [==>-------------------------] 10%'.PHP_EOL.
328 ' 40/200 [=====>----------------------] 20%'.PHP_EOL.
329 ' 60/200 [========>-------------------] 30%'.PHP_EOL.
330 ' 80/200 [===========>----------------] 40%'.PHP_EOL.
331 ' 100/200 [==============>-------------] 50%'.PHP_EOL.
332 ' 120/200 [================>-----------] 60%'.PHP_EOL.
333 ' 140/200 [===================>--------] 70%'.PHP_EOL.
334 ' 160/200 [======================>-----] 80%'.PHP_EOL.
335 ' 180/200 [=========================>--] 90%'.PHP_EOL.
336 ' 200/200 [============================] 100%',
337 stream_get_contents($output->getStream())
345 $bar->setProgress(25);
347 $bar->setProgress(50);
350 rewind($output->getStream());
352 ' 0/50 [>---------------------------] 0%'.PHP_EOL.
353 ' 25/50 [==============>-------------] 50%'.PHP_EOL.
354 ' 50/50 [============================] 100%',
355 stream_get_contents($output->getStream())
365 rewind($output->getStream());
367 ' 0 [>---------------------------]'.PHP_EOL.
368 ' 1 [->--------------------------]',
369 stream_get_contents($output->getStream())
378 $bar2->setProgressCharacter(
'#');
382 $output->write(
"\n");
384 $output->write(
"\n");
387 for ($i = 1; $i <= 3; ++$i) {
389 $output->write(
"\033[2A");
393 $output->write(
"\n");
395 $output->write(
"\n");
398 $output->write(
"\033[2A");
399 $output->write(
"\n");
400 $output->write(
"\n");
403 rewind($output->getStream());
405 $this->
generateOutput(
' 0/2 [>---------------------------] 0%').
"\n".
406 $this->
generateOutput(
' 0/3 [#---------------------------] 0%').
"\n".
407 rtrim($this->
generateOutput(
' 0 [>---------------------------]')).
410 $this->
generateOutput(
' 1/2 [==============>-------------] 50%').
"\n".
411 $this->
generateOutput(
' 1/3 [=========#------------------] 33%').
"\n".
412 rtrim($this->
generateOutput(
' 1 [->--------------------------]')).
415 $this->
generateOutput(
' 2/2 [============================] 100%').
"\n".
416 $this->
generateOutput(
' 2/3 [==================#---------] 66%').
"\n".
417 rtrim($this->
generateOutput(
' 2 [-->-------------------------]')).
421 $this->
generateOutput(
' 3/3 [============================] 100%').
"\n".
422 rtrim($this->
generateOutput(
' 3 [--->------------------------]')).
427 rtrim($this->
generateOutput(
' 3 [============================]')),
428 stream_get_contents($output->getStream())
443 rewind($output->getStream());
445 rtrim($this->
generateOutput(
' 0 [>---------------------------]')).
446 rtrim($this->
generateOutput(
' 1 [->--------------------------]')).
447 rtrim($this->
generateOutput(
' 2 [-->-------------------------]')).
448 rtrim($this->
generateOutput(
' 3 [--->------------------------]')).
449 rtrim($this->
generateOutput(
' 3 [============================]')),
450 stream_get_contents($output->getStream())
460 $bar->setFormat(
' %remaining_steps% [%bar%]');
466 rewind($output->getStream());
471 stream_get_contents($output->getStream())
478 $bar->setFormat(
"%bar%\nfoobar");
485 rewind($output->getStream());
491 stream_get_contents($output->getStream())
504 $colors = $i++ ?
'41;37' :
'44;37';
508 $bar->
setFormat(
" \033[44;37m %title:-37s% \033[0m\n %current%/%max% %bar% %percent:3s%%\n 🏁 %remaining:-10s% %memory:37s%");
513 $bar->
setMessage(
'Starting the demo... fingers crossed',
'title');
515 $bar->
setMessage(
'Looks good to me...',
'title');
520 rewind($output->getStream());
523 " \033[44;37m Starting the demo... fingers crossed \033[0m\n".
524 ' 0/15 '.$progress.str_repeat($empty, 26).
" 0%\n".
525 " \xf0\x9f\x8f\x81 1 sec \033[44;37m 0 B \033[0m"
528 " \033[44;37m Looks good to me... \033[0m\n".
529 ' 4/15 '.str_repeat($done, 7).$progress.str_repeat($empty, 19).
" 26%\n".
530 " \xf0\x9f\x8f\x81 1 sec \033[41;37m 97 KiB \033[0m"
533 " \033[44;37m Thanks, bye \033[0m\n".
534 ' 15/15 '.str_repeat($done, 28).
" 100%\n".
535 " \xf0\x9f\x8f\x81 1 sec \033[41;37m 195 KiB \033[0m"
537 stream_get_contents($output->getStream())
544 $bar->setFormat(
'normal');
546 rewind($output->getStream());
549 stream_get_contents($output->getStream())
553 $bar->setFormat(
'normal');
555 rewind($output->getStream());
558 stream_get_contents($output->getStream())
568 $bar->setFormat($format);
571 rewind($output->getStream());
572 $this->assertNotEmpty(stream_get_contents($output->getStream()));
585 array(
'very_verbose'),
592 return new StreamOutput(fopen(
'php://memory',
'r+',
false), $verbosity, $decorated);
597 $count = substr_count($expected,
"\n");
599 return "\x0D".($count ? sprintf(
"\033[%dA", $count) :
'').$expected;