File tree Expand file tree Collapse file tree 2 files changed +30
-6
lines changed
src/Symfony/Component/Console Expand file tree Collapse file tree 2 files changed +30
-6
lines changed Original file line number Diff line number Diff line change @@ -295,6 +295,13 @@ public function setProgress(int $step)
295295 }
296296 }
297297
298+ public function setMaxSteps (int $ max )
299+ {
300+ $ this ->format = null ;
301+ $ this ->max = max (0 , $ max );
302+ $ this ->stepWidth = $ this ->max ? Helper::strlen ((string ) $ this ->max ) : 4 ;
303+ }
304+
298305 /**
299306 * Finishes the progress output.
300307 */
@@ -362,12 +369,6 @@ private function setRealFormat(string $format)
362369 $ this ->formatLineCount = substr_count ($ this ->format , "\n" );
363370 }
364371
365- private function setMaxSteps (int $ max )
366- {
367- $ this ->max = max (0 , $ max );
368- $ this ->stepWidth = $ this ->max ? Helper::strlen ((string ) $ this ->max ) : 4 ;
369- }
370-
371372 /**
372373 * Overwrites a previous message to the output.
373374 */
Original file line number Diff line number Diff line change @@ -592,6 +592,29 @@ public function testWithoutMax()
592592 );
593593 }
594594
595+ public function testSettingMaxStepsDuringProgressing ()
596+ {
597+ $ output = $ this ->getOutputStream ();
598+ $ bar = new ProgressBar ($ output );
599+ $ bar ->start ();
600+ $ bar ->setProgress (2 );
601+ $ bar ->setMaxSteps (10 );
602+ $ bar ->setProgress (5 );
603+ $ bar ->setMaxSteps (100 );
604+ $ bar ->setProgress (10 );
605+ $ bar ->finish ();
606+
607+ rewind ($ output ->getStream ());
608+ $ this ->assertEquals (
609+ rtrim (' 0 [>---------------------------] ' ).
610+ rtrim ($ this ->generateOutput (' 2 [-->-------------------------] ' )).
611+ rtrim ($ this ->generateOutput (' 5/10 [==============>-------------] 50% ' )).
612+ rtrim ($ this ->generateOutput (' 10/100 [==>-------------------------] 10% ' )).
613+ rtrim ($ this ->generateOutput (' 100/100 [============================] 100% ' )),
614+ stream_get_contents ($ output ->getStream ())
615+ );
616+ }
617+
595618 public function testWithSmallScreen ()
596619 {
597620 $ output = $ this ->getOutputStream ();
You can’t perform that action at this time.
0 commit comments