radarrplexorganizrnginxsonarrdashboardsabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepage
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							116 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							116 lines
						
					
					
						
							3.7 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								 * This file is part of the Symfony package.
							 | 
						|
								 *
							 | 
						|
								 * (c) Fabien Potencier <fabien@symfony.com>
							 | 
						|
								 *
							 | 
						|
								 * For the full copyright and license information, please view the LICENSE
							 | 
						|
								 * file that was distributed with this source code.
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								namespace Symfony\Component\Console\Tests\Style;
							 | 
						|
								
							 | 
						|
								use PHPUnit\Framework\TestCase;
							 | 
						|
								use Symfony\Component\Console\Command\Command;
							 | 
						|
								use Symfony\Component\Console\Tester\CommandTester;
							 | 
						|
								use Symfony\Component\Console\Formatter\OutputFormatter;
							 | 
						|
								use Symfony\Component\Console\Output\OutputInterface;
							 | 
						|
								use Symfony\Component\Console\Output\ConsoleOutputInterface;
							 | 
						|
								use Symfony\Component\Console\Input\InputInterface;
							 | 
						|
								use Symfony\Component\Console\Style\SymfonyStyle;
							 | 
						|
								
							 | 
						|
								class SymfonyStyleTest extends TestCase
							 | 
						|
								{
							 | 
						|
								    /** @var Command */
							 | 
						|
								    protected $command;
							 | 
						|
								    /** @var CommandTester */
							 | 
						|
								    protected $tester;
							 | 
						|
								
							 | 
						|
								    protected function setUp()
							 | 
						|
								    {
							 | 
						|
								        putenv('COLUMNS=121');
							 | 
						|
								        $this->command = new Command('sfstyle');
							 | 
						|
								        $this->tester = new CommandTester($this->command);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    protected function tearDown()
							 | 
						|
								    {
							 | 
						|
								        putenv('COLUMNS');
							 | 
						|
								        $this->command = null;
							 | 
						|
								        $this->tester = null;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @dataProvider inputCommandToOutputFilesProvider
							 | 
						|
								     */
							 | 
						|
								    public function testOutputs($inputCommandFilepath, $outputFilepath)
							 | 
						|
								    {
							 | 
						|
								        $code = require $inputCommandFilepath;
							 | 
						|
								        $this->command->setCode($code);
							 | 
						|
								        $this->tester->execute(array(), array('interactive' => false, 'decorated' => false));
							 | 
						|
								        $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @dataProvider inputInteractiveCommandToOutputFilesProvider
							 | 
						|
								     */
							 | 
						|
								    public function testInteractiveOutputs($inputCommandFilepath, $outputFilepath)
							 | 
						|
								    {
							 | 
						|
								        $code = require $inputCommandFilepath;
							 | 
						|
								        $this->command->setCode($code);
							 | 
						|
								        $this->tester->execute(array(), array('interactive' => true, 'decorated' => false));
							 | 
						|
								        $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function inputInteractiveCommandToOutputFilesProvider()
							 | 
						|
								    {
							 | 
						|
								        $baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle';
							 | 
						|
								
							 | 
						|
								        return array_map(null, glob($baseDir.'/command/interactive_command_*.php'), glob($baseDir.'/output/interactive_output_*.txt'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function inputCommandToOutputFilesProvider()
							 | 
						|
								    {
							 | 
						|
								        $baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle';
							 | 
						|
								
							 | 
						|
								        return array_map(null, glob($baseDir.'/command/command_*.php'), glob($baseDir.'/output/output_*.txt'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetErrorStyle()
							 | 
						|
								    {
							 | 
						|
								        $input = $this->getMockBuilder(InputInterface::class)->getMock();
							 | 
						|
								
							 | 
						|
								        $errorOutput = $this->getMockBuilder(OutputInterface::class)->getMock();
							 | 
						|
								        $errorOutput
							 | 
						|
								            ->method('getFormatter')
							 | 
						|
								            ->willReturn(new OutputFormatter());
							 | 
						|
								        $errorOutput
							 | 
						|
								            ->expects($this->once())
							 | 
						|
								            ->method('write');
							 | 
						|
								
							 | 
						|
								        $output = $this->getMockBuilder(ConsoleOutputInterface::class)->getMock();
							 | 
						|
								        $output
							 | 
						|
								            ->method('getFormatter')
							 | 
						|
								            ->willReturn(new OutputFormatter());
							 | 
						|
								        $output
							 | 
						|
								            ->expects($this->once())
							 | 
						|
								            ->method('getErrorOutput')
							 | 
						|
								            ->willReturn($errorOutput);
							 | 
						|
								
							 | 
						|
								        $io = new SymfonyStyle($input, $output);
							 | 
						|
								        $io->getErrorStyle()->write('');
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetErrorStyleUsesTheCurrentOutputIfNoErrorOutputIsAvailable()
							 | 
						|
								    {
							 | 
						|
								        $output = $this->getMockBuilder(OutputInterface::class)->getMock();
							 | 
						|
								        $output
							 | 
						|
								            ->method('getFormatter')
							 | 
						|
								            ->willReturn(new OutputFormatter());
							 | 
						|
								
							 | 
						|
								        $style = new SymfonyStyle($this->getMockBuilder(InputInterface::class)->getMock(), $output);
							 | 
						|
								
							 | 
						|
								        $this->assertInstanceOf(SymfonyStyle::class, $style->getErrorStyle());
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |