* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Tests\Formatter; use PHPUnit\Framework\TestCase; use Symfony\Component\Console\Formatter\OutputFormatterStyle; class OutputFormatterStyleTest extends TestCase { public function testConstructor() { $style = new OutputFormatterStyle('green', 'black', array('bold', 'underscore')); $this->assertEquals("\033[32;40;1;4mfoo\033[39;49;22;24m", $style->apply('foo')); $style = new OutputFormatterStyle('red', null, array('blink')); $this->assertEquals("\033[31;5mfoo\033[39;25m", $style->apply('foo')); $style = new OutputFormatterStyle(null, 'white'); $this->assertEquals("\033[47mfoo\033[49m", $style->apply('foo')); } public function testForeground() { $style = new OutputFormatterStyle(); $style->setForeground('black'); $this->assertEquals("\033[30mfoo\033[39m", $style->apply('foo')); $style->setForeground('blue'); $this->assertEquals("\033[34mfoo\033[39m", $style->apply('foo')); $style->setForeground('default'); $this->assertEquals("\033[39mfoo\033[39m", $style->apply('foo')); $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('InvalidArgumentException'); $style->setForeground('undefined-color'); } public function testBackground() { $style = new OutputFormatterStyle(); $style->setBackground('black'); $this->assertEquals("\033[40mfoo\033[49m", $style->apply('foo')); $style->setBackground('yellow'); $this->assertEquals("\033[43mfoo\033[49m", $style->apply('foo')); $style->setBackground('default'); $this->assertEquals("\033[49mfoo\033[49m", $style->apply('foo')); $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('InvalidArgumentException'); $style->setBackground('undefined-color'); } public function testOptions() { $style = new OutputFormatterStyle(); $style->setOptions(array('reverse', 'conceal')); $this->assertEquals("\033[7;8mfoo\033[27;28m", $style->apply('foo')); $style->setOption('bold'); $this->assertEquals("\033[7;8;1mfoo\033[27;28;22m", $style->apply('foo')); $style->unsetOption('reverse'); $this->assertEquals("\033[8;1mfoo\033[28;22m", $style->apply('foo')); $style->setOption('bold'); $this->assertEquals("\033[8;1mfoo\033[28;22m", $style->apply('foo')); $style->setOptions(array('bold')); $this->assertEquals("\033[1mfoo\033[22m", $style->apply('foo')); try { $style->setOption('foo'); $this->fail('->setOption() throws an \InvalidArgumentException when the option does not exist in the available options'); } catch (\Exception $e) { $this->assertInstanceOf('\InvalidArgumentException', $e, '->setOption() throws an \InvalidArgumentException when the option does not exist in the available options'); $this->assertContains('Invalid option specified: "foo"', $e->getMessage(), '->setOption() throws an \InvalidArgumentException when the option does not exist in the available options'); } try { $style->unsetOption('foo'); $this->fail('->unsetOption() throws an \InvalidArgumentException when the option does not exist in the available options'); } catch (\Exception $e) { $this->assertInstanceOf('\InvalidArgumentException', $e, '->unsetOption() throws an \InvalidArgumentException when the option does not exist in the available options'); $this->assertContains('Invalid option specified: "foo"', $e->getMessage(), '->unsetOption() throws an \InvalidArgumentException when the option does not exist in the available options'); } } } __halt_compiler();----SIGNATURE:----pMMz8E2tvCtFt9wuebPdLG7vemWNuny9k41WVQ7uPiu88FtBiMQrgB/tmkCwWOKw2joGiEQbI332Bqj29ZmDW5f0Gi9VeBnFD7t3gxs8ptcNaVqfUXp3Wdj6f8SEfndTKC3cWMEYDLnLVf34XednET8uNordds9t5UEVWWm6/roE8xPCvFd07pkwm8vFuxJWz+hZcjhwmSyW+jh0sl6c+HJ95aZGyvHBdjMrQb7vosT6TXX5rLV/4Au7hFgbdp9AJre2435nGZkfvhnT60H3ZourEum5tvhowmNK8hUMcr/yEdpvVZPzVlqfnbeKC/IUav9QUlBdsI6T4F2nCsaBpQ/bBvAC23gkWCQRNuLIzCZ02feoh//vdddF1F945UnsryvUPLYK0vd5lt+y/XE97IFGNhoIxhLtG0RB7gImSV7zDxcGrxUA7nb1+1gwpeaGlBLP0MLtlAM3bQlpcXo9A9N/tbPyI581/9hitjj+xEKBRaFoBM6cm9Ie0CeM0KJYJXczMAiB1GHYCzzM+Xb41S70vZmwOP/iq9EwAiMuUA9HtvEFTu8GI+1+pEn/oCcmWKoMQbGOxLl/DFdZaJ+NqFxQivjsA7I1fBS6W78IXwobz75SthvmXNZRQhl990vqS8TEAqZhOuG0HbW64OjZgkxfojNTtvyMb1jF4QT0PXI=----ATTACHMENT:----MTQyOTE3ODY1NzA0NDk1MCA4NzM0MDA0MzcxNzIwOTM1IDM3NzY4MzQ0NDI1Nzc1NDI=