130 lines
4.3 KiB
PHP
130 lines
4.3 KiB
PHP
<?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\Helper;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\Console\Helper\FormatterHelper;
|
|
|
|
class FormatterHelperTest extends TestCase
|
|
{
|
|
public function testFormatSection()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
|
|
$this->assertEquals(
|
|
'<info>[cli]</info> Some text to display',
|
|
$formatter->formatSection('cli', 'Some text to display'),
|
|
'::formatSection() formats a message in a section'
|
|
);
|
|
}
|
|
|
|
public function testFormatBlock()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
|
|
$this->assertEquals(
|
|
'<error> Some text to display </error>',
|
|
$formatter->formatBlock('Some text to display', 'error'),
|
|
'::formatBlock() formats a message in a block'
|
|
);
|
|
|
|
$this->assertEquals(
|
|
'<error> Some text to display </error>'."\n".
|
|
'<error> foo bar </error>',
|
|
$formatter->formatBlock(array('Some text to display', 'foo bar'), 'error'),
|
|
'::formatBlock() formats a message in a block'
|
|
);
|
|
|
|
$this->assertEquals(
|
|
'<error> </error>'."\n".
|
|
'<error> Some text to display </error>'."\n".
|
|
'<error> </error>',
|
|
$formatter->formatBlock('Some text to display', 'error', true),
|
|
'::formatBlock() formats a message in a block'
|
|
);
|
|
}
|
|
|
|
public function testFormatBlockWithDiacriticLetters()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
|
|
$this->assertEquals(
|
|
'<error> </error>'."\n".
|
|
'<error> Du texte à afficher </error>'."\n".
|
|
'<error> </error>',
|
|
$formatter->formatBlock('Du texte à afficher', 'error', true),
|
|
'::formatBlock() formats a message in a block'
|
|
);
|
|
}
|
|
|
|
public function testFormatBlockWithDoubleWidthDiacriticLetters()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
$this->assertEquals(
|
|
'<error> </error>'."\n".
|
|
'<error> 表示するテキスト </error>'."\n".
|
|
'<error> </error>',
|
|
$formatter->formatBlock('表示するテキスト', 'error', true),
|
|
'::formatBlock() formats a message in a block'
|
|
);
|
|
}
|
|
|
|
public function testFormatBlockLGEscaping()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
|
|
$this->assertEquals(
|
|
'<error> </error>'."\n".
|
|
'<error> \<info>some info\</info> </error>'."\n".
|
|
'<error> </error>',
|
|
$formatter->formatBlock('<info>some info</info>', 'error', true),
|
|
'::formatBlock() escapes \'<\' chars'
|
|
);
|
|
}
|
|
|
|
public function testTruncatingWithShorterLengthThanMessageWithSuffix()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
$message = 'testing truncate';
|
|
|
|
$this->assertSame('test...', $formatter->truncate($message, 4));
|
|
$this->assertSame('testing truncat...', $formatter->truncate($message, 15));
|
|
$this->assertSame('testing truncate...', $formatter->truncate($message, 16));
|
|
$this->assertSame('zażółć gęślą...', $formatter->truncate('zażółć gęślą jaźń', 12));
|
|
}
|
|
|
|
public function testTruncatingMessageWithCustomSuffix()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
$message = 'testing truncate';
|
|
|
|
$this->assertSame('test!', $formatter->truncate($message, 4, '!'));
|
|
}
|
|
|
|
public function testTruncatingWithLongerLengthThanMessageWithSuffix()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
$message = 'test';
|
|
|
|
$this->assertSame($message, $formatter->truncate($message, 10));
|
|
}
|
|
|
|
public function testTruncatingWithNegativeLength()
|
|
{
|
|
$formatter = new FormatterHelper();
|
|
$message = 'testing truncate';
|
|
|
|
$this->assertSame('testing tru...', $formatter->truncate($message, -5));
|
|
$this->assertSame('...', $formatter->truncate($message, -100));
|
|
}
|
|
}
|