Server IP : 127.0.0.2 / Your IP : 3.145.71.192 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/vendor/symfony/console/Tests/Helper/ |
Upload File : |
<?php namespace Symfony\Component\Console\Tests\Helper; use Symfony\Component\Console\Helper\ProgressIndicator; use Symfony\Component\Console\Output\StreamOutput; /** * @group time-sensitive */ class ProgressIndicatorTest extends \PHPUnit_Framework_TestCase { public function testDefaultIndicator() { $bar = new ProgressIndicator($output = $this->getOutputStream()); $bar->start('Starting...'); usleep(101000); $bar->advance(); usleep(101000); $bar->advance(); usleep(101000); $bar->advance(); usleep(101000); $bar->advance(); usleep(101000); $bar->advance(); usleep(101000); $bar->setMessage('Advancing...'); $bar->advance(); $bar->finish('Done...'); $bar->start('Starting Again...'); usleep(101000); $bar->advance(); $bar->finish('Done Again...'); rewind($output->getStream()); $this->assertEquals( $this->generateOutput(' - Starting...'). $this->generateOutput(' \\ Starting...'). $this->generateOutput(' | Starting...'). $this->generateOutput(' / Starting...'). $this->generateOutput(' - Starting...'). $this->generateOutput(' \\ Starting...'). $this->generateOutput(' \\ Advancing...'). $this->generateOutput(' | Advancing...'). $this->generateOutput(' | Done...'). PHP_EOL. $this->generateOutput(' - Starting Again...'). $this->generateOutput(' \\ Starting Again...'). $this->generateOutput(' \\ Done Again...'). PHP_EOL, stream_get_contents($output->getStream()) ); } public function testNonDecoratedOutput() { $bar = new ProgressIndicator($output = $this->getOutputStream(false)); $bar->start('Starting...'); $bar->advance(); $bar->advance(); $bar->setMessage('Midway...'); $bar->advance(); $bar->advance(); $bar->finish('Done...'); rewind($output->getStream()); $this->assertEquals( ' Starting...'.PHP_EOL. ' Midway...'.PHP_EOL. ' Done...'.PHP_EOL.PHP_EOL, stream_get_contents($output->getStream()) ); } public function testCustomIndicatorValues() { $bar = new ProgressIndicator($output = $this->getOutputStream(), null, 100, array('a', 'b', 'c')); $bar->start('Starting...'); usleep(101000); $bar->advance(); usleep(101000); $bar->advance(); usleep(101000); $bar->advance(); rewind($output->getStream()); $this->assertEquals( $this->generateOutput(' a Starting...'). $this->generateOutput(' b Starting...'). $this->generateOutput(' c Starting...'). $this->generateOutput(' a Starting...'), stream_get_contents($output->getStream()) ); } /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage Must have at least 2 indicator value characters. */ public function testCannotSetInvalidIndicatorCharacters() { $bar = new ProgressIndicator($this->getOutputStream(), null, 100, array('1')); } /** * @expectedException \LogicException * @expectedExceptionMessage Progress indicator already started. */ public function testCannotStartAlreadyStartedIndicator() { $bar = new ProgressIndicator($this->getOutputStream()); $bar->start('Starting...'); $bar->start('Starting Again.'); } /** * @expectedException \LogicException * @expectedExceptionMessage Progress indicator has not yet been started. */ public function testCannotAdvanceUnstartedIndicator() { $bar = new ProgressIndicator($this->getOutputStream()); $bar->advance(); } /** * @expectedException \LogicException * @expectedExceptionMessage Progress indicator has not yet been started. */ public function testCannotFinishUnstartedIndicator() { $bar = new ProgressIndicator($this->getOutputStream()); $bar->finish('Finished'); } /** * @dataProvider provideFormat */ public function testFormats($format) { $bar = new ProgressIndicator($output = $this->getOutputStream(), $format); $bar->start('Starting...'); $bar->advance(); rewind($output->getStream()); $this->assertNotEmpty(stream_get_contents($output->getStream())); } /** * Provides each defined format. * * @return array */ public function provideFormat() { return array( array('normal'), array('verbose'), array('very_verbose'), array('debug'), ); } protected function getOutputStream($decorated = true, $verbosity = StreamOutput::VERBOSITY_NORMAL) { return new StreamOutput(fopen('php://memory', 'r+', false), $verbosity, $decorated); } protected function generateOutput($expected) { $count = substr_count($expected, "\n"); return "\x0D\x1B[2K".($count ? sprintf("\033[%dA", $count) : '').$expected; } }