Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / jakub-onderka / php-console-highlighter / tests / HigligterTest.php
diff --git a/vendor/jakub-onderka/php-console-highlighter/tests/HigligterTest.php b/vendor/jakub-onderka/php-console-highlighter/tests/HigligterTest.php
new file mode 100644 (file)
index 0000000..187beb6
--- /dev/null
@@ -0,0 +1,274 @@
+<?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>'
+        );
+    }
+}