12 namespace Symfony\Component\Console\Tests\Helper;
28 rewind($output->getStream());
29 $this->assertEquals($this->
generateOutput(
' 1 [->--------------------------]'), stream_get_contents($output->getStream()));
36 $progress->advance(5);
38 rewind($output->getStream());
39 $this->assertEquals($this->
generateOutput(
' 5 [----->----------------------]'), stream_get_contents($output->getStream()));
46 $progress->advance(3);
47 $progress->advance(2);
49 rewind($output->getStream());
50 $this->assertEquals($this->
generateOutput(
' 3 [--->------------------------]').$this->
generateOutput(
' 5 [----->----------------------]'), stream_get_contents($output->getStream()));
56 $progress->setBarWidth(10);
57 $progress->setBarCharacter(
'_');
58 $progress->setEmptyBarCharacter(
' ');
59 $progress->setProgressCharacter(
'/');
60 $progress->setFormat(
' %current%/%max% [%bar%] %percent%%');
64 rewind($output->getStream());
65 $this->assertEquals($this->
generateOutput(
' 1/10 [_/ ] 10%'), stream_get_contents($output->getStream()));
76 rewind($output->getStream());
77 $this->assertEquals($this->
generateOutput(
' 0/50 [>---------------------------] 0%').$this->
generateOutput(
' 1/50 [>---------------------------] 2%').$this->
generateOutput(
' 2/50 [=>--------------------------] 4%'), stream_get_contents($output->getStream()));
83 $progress->setFormat(
' %current%/%max% [%bar%] %percent%%');
89 $progress->setFormat(
' %current%/%max% [%bar%]');
92 rewind($output->getStream());
97 stream_get_contents($output->getStream())
105 $progress->display();
106 $progress->advance();
107 $progress->setCurrent(15);
108 $progress->setCurrent(25);
110 rewind($output->getStream());
114 $this->
generateOutput(
' 15/50 [========>-------------------] 30%').
115 $this->
generateOutput(
' 25/50 [==============>-------------] 50%'),
116 stream_get_contents($output->getStream())
127 $progress->setCurrent(15);
138 $progress->setCurrent(15);
139 $progress->setCurrent(10);
144 $progress = $this->getMock(
'Symfony\Component\Console\Helper\ProgressHelper', array(
'display'));
145 $progress->expects($this->exactly(4))
148 $progress->setRedrawFrequency(2);
151 $progress->setCurrent(1);
152 $progress->advance(2);
153 $progress->advance(2);
154 $progress->advance(1);
159 if (!function_exists(
'mb_strlen') || (
false === $encoding = mb_detect_encoding(
'■'))) {
160 $this->markTestSkipped(
'The mbstring extension is needed for multi-byte support');
165 $progress->setBarCharacter(
'■');
166 $progress->advance(3);
168 rewind($output->getStream());
169 $this->assertEquals($this->
generateOutput(
' 3 [■■■>------------------------]'), stream_get_contents($output->getStream()));
176 $progress->setCurrent(25);
179 rewind($output->getStream());
182 stream_get_contents($output->getStream())
190 $progress->display();
191 $progress->advance(199);
192 $progress->advance();
194 rewind($output->getStream());
195 $this->assertEquals($this->
generateOutput(
' 0/200 [>---------------------------] 0%').$this->
generateOutput(
' 199/200 [===========================>] 99%').$this->
generateOutput(
' 200/200 [============================] 100%'), stream_get_contents($output->getStream()));
202 $progress->advance();
204 rewind($output->getStream());
205 $this->assertEquals(
'', stream_get_contents($output->getStream()));
217 $expectedout = $expected;
219 if ($this->lastMessagesLength !== null) {
220 $expectedout = str_pad($expected, $this->lastMessagesLength,
"\x20", STR_PAD_RIGHT);
223 $this->lastMessagesLength = strlen($expectedout);
225 return "\x0D".$expectedout;