123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- <?php
- namespace JakubOnderka\PhpConsoleHighlighter;
- class HighlighterTest extends \PHPUnit_Framework_TestCase
- {
- /** @var Highlighter */
- private $uut;
- protected function getConsoleColorMock()
- {
- $mock = method_exists($this, 'createMock')
- ? $this->createMock('\JakubOnderka\PhpConsoleColor\ConsoleColor')
- : $this->getMock('\JakubOnderka\PhpConsoleColor\ConsoleColor');
- $mock->expects($this->any())
- ->method('apply')
- ->will($this->returnCallback(function ($style, $text) {
- return "<$style>$text</$style>";
- }));
- $mock->expects($this->any())
- ->method('hasTheme')
- ->will($this->returnValue(true));
- return $mock;
- }
- protected function setUp()
- {
- $this->uut = new Highlighter($this->getConsoleColorMock());
- }
- protected function compare($original, $expected)
- {
- $output = $this->uut->getWholeFile($original);
- $this->assertEquals($expected, $output);
- }
- public function testVariable()
- {
- $this->compare(
- <<<EOL
- <?php
- echo \$a;
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_keyword>echo </token_keyword><token_default>\$a</token_default><token_keyword>;</token_keyword>
- EOL
- );
- }
- public function testInteger()
- {
- $this->compare(
- <<<EOL
- <?php
- echo 43;
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_keyword>echo </token_keyword><token_default>43</token_default><token_keyword>;</token_keyword>
- EOL
- );
- }
- public function testFloat()
- {
- $this->compare(
- <<<EOL
- <?php
- echo 43.3;
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_keyword>echo </token_keyword><token_default>43.3</token_default><token_keyword>;</token_keyword>
- EOL
- );
- }
- public function testHex()
- {
- $this->compare(
- <<<EOL
- <?php
- echo 0x43;
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_keyword>echo </token_keyword><token_default>0x43</token_default><token_keyword>;</token_keyword>
- EOL
- );
- }
- public function testBasicFunction()
- {
- $this->compare(
- <<<EOL
- <?php
- function plus(\$a, \$b) {
- return \$a + \$b;
- }
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_keyword>function </token_keyword><token_default>plus</token_default><token_keyword>(</token_keyword><token_default>\$a</token_default><token_keyword>, </token_keyword><token_default>\$b</token_default><token_keyword>) {</token_keyword>
- <token_keyword> return </token_keyword><token_default>\$a </token_default><token_keyword>+ </token_keyword><token_default>\$b</token_default><token_keyword>;</token_keyword>
- <token_keyword>}</token_keyword>
- EOL
- );
- }
- public function testStringNormal()
- {
- $this->compare(
- <<<EOL
- <?php
- echo 'Ahoj světe';
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_keyword>echo </token_keyword><token_string>'Ahoj světe'</token_string><token_keyword>;</token_keyword>
- EOL
- );
- }
- public function testStringDouble()
- {
- $this->compare(
- <<<EOL
- <?php
- echo "Ahoj světe";
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_keyword>echo </token_keyword><token_string>"Ahoj světe"</token_string><token_keyword>;</token_keyword>
- EOL
- );
- }
- public function testInstanceof()
- {
- $this->compare(
- <<<EOL
- <?php
- \$a instanceof stdClass;
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_default>\$a </token_default><token_keyword>instanceof </token_keyword><token_default>stdClass</token_default><token_keyword>;</token_keyword>
- EOL
- );
- }
- /*
- * Constants
- */
- public function testConstant()
- {
- $constants = array(
- '__FILE__',
- '__LINE__',
- '__CLASS__',
- '__FUNCTION__',
- '__METHOD__',
- '__TRAIT__',
- '__DIR__',
- '__NAMESPACE__'
- );
- foreach ($constants as $constant) {
- $this->compare(
- <<<EOL
- <?php
- $constant;
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_default>$constant</token_default><token_keyword>;</token_keyword>
- EOL
- );
- }
- }
- /*
- * Comments
- */
- public function testComment()
- {
- $this->compare(
- <<<EOL
- <?php
- /* Ahoj */
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_comment>/* Ahoj */</token_comment>
- EOL
- );
- }
- public function testDocComment()
- {
- $this->compare(
- <<<EOL
- <?php
- /** Ahoj */
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_comment>/** Ahoj */</token_comment>
- EOL
- );
- }
- public function testInlineComment()
- {
- $this->compare(
- <<<EOL
- <?php
- // Ahoj
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_comment>// Ahoj</token_comment>
- EOL
- );
- }
- public function testHashComment()
- {
- $this->compare(
- <<<EOL
- <?php
- # Ahoj
- EOL
- ,
- <<<EOL
- <token_default><?php</token_default>
- <token_comment># Ahoj</token_comment>
- EOL
- );
- }
- public function testEmpty()
- {
- $this->compare(
- ''
- ,
- ''
- );
- }
- public function testWhitespace()
- {
- $this->compare(
- ' '
- ,
- '<token_html> </token_html>'
- );
- }
- }
|