Вход Регистрация
Файл: src/vendor/jakub-onderka/php-console-color/tests/JakubOnderka/PhpConsoleColor/ConsoleColorTest.php
Строк: 113
<?php
use JakubOnderkaPhpConsoleColorConsoleColor;

class 
ConsoleColorWithForceSupport extends ConsoleColor
{
    private 
$isSupportedForce true;

    private 
$are256ColorsSupportedForce true;

    public function 
setIsSupported($isSupported)
    {
        
$this->isSupportedForce $isSupported;
    }

    public function 
isSupported()
    {
        return 
$this->isSupportedForce;
    }

    public function 
setAre256ColorsSupported($are256ColorsSupported)
    {
        
$this->are256ColorsSupportedForce $are256ColorsSupported;
    }

    public function 
are256ColorsSupported()
    {
        return 
$this->are256ColorsSupportedForce;
    }
}

class 
ConsoleColorTest extends PHPUnit_Framework_TestCase
{
    
/** @var ConsoleColorWithForceSupport */
    
private $uut;

    protected function 
setUp()
    {
        
$this->uut = new ConsoleColorWithForceSupport();
    }

    public function 
testNone()
    {
        
$output $this->uut->apply('none''text');
        
$this->assertEquals("text"$output);
    }

    public function 
testBold()
    {
        
$output $this->uut->apply('bold''text');
        
$this->assertEquals("33[1mtext33[0m"$output);
    }

    public function 
testBoldColorsAreNotSupported()
    {
        
$this->uut->setIsSupported(false);

        
$output $this->uut->apply('bold''text');
        
$this->assertEquals("text"$output);
    }

    public function 
testBoldColorsAreNotSupportedButAreForced()
    {
        
$this->uut->setIsSupported(false);
        
$this->uut->setForceStyle(true);

        
$output $this->uut->apply('bold''text');
        
$this->assertEquals("33[1mtext33[0m"$output);
    }

    public function 
testDark()
    {
        
$output $this->uut->apply('dark''text');
        
$this->assertEquals("33[2mtext33[0m"$output);
    }

    public function 
testBoldAndDark()
    {
        
$output $this->uut->apply(array('bold''dark'), 'text');
        
$this->assertEquals("33[1;2mtext33[0m"$output);
    }

    public function 
test256ColorForeground()
    {
        
$output $this->uut->apply('color_255''text');
        
$this->assertEquals("33[38;5;255mtext33[0m"$output);
    }

    public function 
test256ColorWithoutSupport()
    {
        
$this->uut->setAre256ColorsSupported(false);

        
$output $this->uut->apply('color_255''text');
        
$this->assertEquals("text"$output);
    }

    public function 
test256ColorBackground()
    {
        
$output $this->uut->apply('bg_color_255''text');
        
$this->assertEquals("33[48;5;255mtext33[0m"$output);
    }

    public function 
test256ColorForegroundAndBackground()
    {
        
$output $this->uut->apply(array('color_200''bg_color_255'), 'text');
        
$this->assertEquals("33[38;5;200;48;5;255mtext33[0m"$output);
    }

    public function 
testSetOwnTheme()
    {
        
$this->uut->setThemes(array('bold_dark' => array('bold''dark')));
        
$output $this->uut->apply(array('bold_dark'), 'text');
        
$this->assertEquals("33[1;2mtext33[0m"$output);
    }

    public function 
testAddOwnTheme()
    {
        
$this->uut->addTheme('bold_own''bold');
        
$output $this->uut->apply(array('bold_own'), 'text');
        
$this->assertEquals("33[1mtext33[0m"$output);
    }

    public function 
testAddOwnThemeArray()
    {
        
$this->uut->addTheme('bold_dark', array('bold''dark'));
        
$output $this->uut->apply(array('bold_dark'), 'text');
        
$this->assertEquals("33[1;2mtext33[0m"$output);
    }

    public function 
testOwnWithStyle()
    {
        
$this->uut->addTheme('bold_dark', array('bold''dark'));
        
$output $this->uut->apply(array('bold_dark''italic'), 'text');
        
$this->assertEquals("33[1;2;3mtext33[0m"$output);
    }

    public function 
testHasAndRemoveTheme()
    {
        
$this->assertFalse($this->uut->hasTheme('bold_dark'));

        
$this->uut->addTheme('bold_dark', array('bold''dark'));
        
$this->assertTrue($this->uut->hasTheme('bold_dark'));

        
$this->uut->removeTheme('bold_dark');
        
$this->assertFalse($this->uut->hasTheme('bold_dark'));
    }

    public function 
testApplyInvalidArgument()
    {
        
$this->setExpectedException('InvalidArgumentException');
        
$this->uut->apply(new stdClass(), 'text');
    }

    public function 
testApplyInvalidStyleName()
    {
        
$this->setExpectedException('JakubOnderkaPhpConsoleColorInvalidStyleException');
        
$this->uut->apply('invalid''text');
    }

    public function 
testApplyInvalid256Color()
    {
        
$this->setExpectedException('JakubOnderkaPhpConsoleColorInvalidStyleException');
        
$this->uut->apply('color_2134''text');
    }

    public function 
testThemeInvalidStyle()
    {
        
$this->setExpectedException('JakubOnderkaPhpConsoleColorInvalidStyleException');
        
$this->uut->addTheme('invalid', array('invalid'));
    }

    public function 
testForceStyle()
    {
        
$this->assertFalse($this->uut->isStyleForced());
        
$this->uut->setForceStyle(true);
        
$this->assertTrue($this->uut->isStyleForced());
    }

    public function 
testGetPossibleStyles()
    {
        
$this->assertInternalType('array'$this->uut->getPossibleStyles());
        
$this->assertNotEmpty($this->uut->getPossibleStyles());
    }
}
Онлайн: 1
Реклама