annotate vendor/jakub-onderka/php-console-highlighter/tests/HigligterTest.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents a9cd425dd02b
children
rev   line source
Chris@4 1 <?php
Chris@4 2 namespace JakubOnderka\PhpConsoleHighlighter;
Chris@4 3
Chris@4 4 class HighlighterTest extends \PHPUnit_Framework_TestCase
Chris@4 5 {
Chris@4 6 /** @var Highlighter */
Chris@4 7 private $uut;
Chris@4 8
Chris@4 9 protected function getConsoleColorMock()
Chris@4 10 {
Chris@4 11 $mock = method_exists($this, 'createMock')
Chris@4 12 ? $this->createMock('\JakubOnderka\PhpConsoleColor\ConsoleColor')
Chris@4 13 : $this->getMock('\JakubOnderka\PhpConsoleColor\ConsoleColor');
Chris@4 14
Chris@4 15 $mock->expects($this->any())
Chris@4 16 ->method('apply')
Chris@4 17 ->will($this->returnCallback(function ($style, $text) {
Chris@4 18 return "<$style>$text</$style>";
Chris@4 19 }));
Chris@4 20
Chris@4 21 $mock->expects($this->any())
Chris@4 22 ->method('hasTheme')
Chris@4 23 ->will($this->returnValue(true));
Chris@4 24
Chris@4 25 return $mock;
Chris@4 26 }
Chris@4 27
Chris@4 28 protected function setUp()
Chris@4 29 {
Chris@4 30 $this->uut = new Highlighter($this->getConsoleColorMock());
Chris@4 31 }
Chris@4 32
Chris@4 33 protected function compare($original, $expected)
Chris@4 34 {
Chris@4 35 $output = $this->uut->getWholeFile($original);
Chris@4 36 $this->assertEquals($expected, $output);
Chris@4 37 }
Chris@4 38
Chris@4 39 public function testVariable()
Chris@4 40 {
Chris@4 41 $this->compare(
Chris@4 42 <<<EOL
Chris@4 43 <?php
Chris@4 44 echo \$a;
Chris@4 45 EOL
Chris@4 46 ,
Chris@4 47 <<<EOL
Chris@4 48 <token_default><?php</token_default>
Chris@4 49 <token_keyword>echo </token_keyword><token_default>\$a</token_default><token_keyword>;</token_keyword>
Chris@4 50 EOL
Chris@4 51 );
Chris@4 52 }
Chris@4 53
Chris@4 54 public function testInteger()
Chris@4 55 {
Chris@4 56 $this->compare(
Chris@4 57 <<<EOL
Chris@4 58 <?php
Chris@4 59 echo 43;
Chris@4 60 EOL
Chris@4 61 ,
Chris@4 62 <<<EOL
Chris@4 63 <token_default><?php</token_default>
Chris@4 64 <token_keyword>echo </token_keyword><token_default>43</token_default><token_keyword>;</token_keyword>
Chris@4 65 EOL
Chris@4 66 );
Chris@4 67 }
Chris@4 68
Chris@4 69 public function testFloat()
Chris@4 70 {
Chris@4 71 $this->compare(
Chris@4 72 <<<EOL
Chris@4 73 <?php
Chris@4 74 echo 43.3;
Chris@4 75 EOL
Chris@4 76 ,
Chris@4 77 <<<EOL
Chris@4 78 <token_default><?php</token_default>
Chris@4 79 <token_keyword>echo </token_keyword><token_default>43.3</token_default><token_keyword>;</token_keyword>
Chris@4 80 EOL
Chris@4 81 );
Chris@4 82 }
Chris@4 83
Chris@4 84 public function testHex()
Chris@4 85 {
Chris@4 86 $this->compare(
Chris@4 87 <<<EOL
Chris@4 88 <?php
Chris@4 89 echo 0x43;
Chris@4 90 EOL
Chris@4 91 ,
Chris@4 92 <<<EOL
Chris@4 93 <token_default><?php</token_default>
Chris@4 94 <token_keyword>echo </token_keyword><token_default>0x43</token_default><token_keyword>;</token_keyword>
Chris@4 95 EOL
Chris@4 96 );
Chris@4 97 }
Chris@4 98
Chris@4 99 public function testBasicFunction()
Chris@4 100 {
Chris@4 101 $this->compare(
Chris@4 102 <<<EOL
Chris@4 103 <?php
Chris@4 104 function plus(\$a, \$b) {
Chris@4 105 return \$a + \$b;
Chris@4 106 }
Chris@4 107 EOL
Chris@4 108 ,
Chris@4 109 <<<EOL
Chris@4 110 <token_default><?php</token_default>
Chris@4 111 <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>
Chris@4 112 <token_keyword> return </token_keyword><token_default>\$a </token_default><token_keyword>+ </token_keyword><token_default>\$b</token_default><token_keyword>;</token_keyword>
Chris@4 113 <token_keyword>}</token_keyword>
Chris@4 114 EOL
Chris@4 115 );
Chris@4 116 }
Chris@4 117
Chris@4 118 public function testStringNormal()
Chris@4 119 {
Chris@4 120 $this->compare(
Chris@4 121 <<<EOL
Chris@4 122 <?php
Chris@4 123 echo 'Ahoj světe';
Chris@4 124 EOL
Chris@4 125 ,
Chris@4 126 <<<EOL
Chris@4 127 <token_default><?php</token_default>
Chris@4 128 <token_keyword>echo </token_keyword><token_string>'Ahoj světe'</token_string><token_keyword>;</token_keyword>
Chris@4 129 EOL
Chris@4 130 );
Chris@4 131 }
Chris@4 132
Chris@4 133 public function testStringDouble()
Chris@4 134 {
Chris@4 135 $this->compare(
Chris@4 136 <<<EOL
Chris@4 137 <?php
Chris@4 138 echo "Ahoj světe";
Chris@4 139 EOL
Chris@4 140 ,
Chris@4 141 <<<EOL
Chris@4 142 <token_default><?php</token_default>
Chris@4 143 <token_keyword>echo </token_keyword><token_string>"Ahoj světe"</token_string><token_keyword>;</token_keyword>
Chris@4 144 EOL
Chris@4 145 );
Chris@4 146 }
Chris@4 147
Chris@4 148 public function testInstanceof()
Chris@4 149 {
Chris@4 150 $this->compare(
Chris@4 151 <<<EOL
Chris@4 152 <?php
Chris@4 153 \$a instanceof stdClass;
Chris@4 154 EOL
Chris@4 155 ,
Chris@4 156 <<<EOL
Chris@4 157 <token_default><?php</token_default>
Chris@4 158 <token_default>\$a </token_default><token_keyword>instanceof </token_keyword><token_default>stdClass</token_default><token_keyword>;</token_keyword>
Chris@4 159 EOL
Chris@4 160 );
Chris@4 161 }
Chris@4 162
Chris@4 163 /*
Chris@4 164 * Constants
Chris@4 165 */
Chris@4 166 public function testConstant()
Chris@4 167 {
Chris@4 168 $constants = array(
Chris@4 169 '__FILE__',
Chris@4 170 '__LINE__',
Chris@4 171 '__CLASS__',
Chris@4 172 '__FUNCTION__',
Chris@4 173 '__METHOD__',
Chris@4 174 '__TRAIT__',
Chris@4 175 '__DIR__',
Chris@4 176 '__NAMESPACE__'
Chris@4 177 );
Chris@4 178
Chris@4 179 foreach ($constants as $constant) {
Chris@4 180 $this->compare(
Chris@4 181 <<<EOL
Chris@4 182 <?php
Chris@4 183 $constant;
Chris@4 184 EOL
Chris@4 185 ,
Chris@4 186 <<<EOL
Chris@4 187 <token_default><?php</token_default>
Chris@4 188 <token_default>$constant</token_default><token_keyword>;</token_keyword>
Chris@4 189 EOL
Chris@4 190 );
Chris@4 191 }
Chris@4 192 }
Chris@4 193
Chris@4 194 /*
Chris@4 195 * Comments
Chris@4 196 */
Chris@4 197 public function testComment()
Chris@4 198 {
Chris@4 199 $this->compare(
Chris@4 200 <<<EOL
Chris@4 201 <?php
Chris@4 202 /* Ahoj */
Chris@4 203 EOL
Chris@4 204 ,
Chris@4 205 <<<EOL
Chris@4 206 <token_default><?php</token_default>
Chris@4 207 <token_comment>/* Ahoj */</token_comment>
Chris@4 208 EOL
Chris@4 209 );
Chris@4 210 }
Chris@4 211
Chris@4 212 public function testDocComment()
Chris@4 213 {
Chris@4 214 $this->compare(
Chris@4 215 <<<EOL
Chris@4 216 <?php
Chris@4 217 /** Ahoj */
Chris@4 218 EOL
Chris@4 219 ,
Chris@4 220 <<<EOL
Chris@4 221 <token_default><?php</token_default>
Chris@4 222 <token_comment>/** Ahoj */</token_comment>
Chris@4 223 EOL
Chris@4 224 );
Chris@4 225 }
Chris@4 226
Chris@4 227 public function testInlineComment()
Chris@4 228 {
Chris@4 229 $this->compare(
Chris@4 230 <<<EOL
Chris@4 231 <?php
Chris@4 232 // Ahoj
Chris@4 233 EOL
Chris@4 234 ,
Chris@4 235 <<<EOL
Chris@4 236 <token_default><?php</token_default>
Chris@4 237 <token_comment>// Ahoj</token_comment>
Chris@4 238 EOL
Chris@4 239 );
Chris@4 240 }
Chris@4 241
Chris@4 242 public function testHashComment()
Chris@4 243 {
Chris@4 244 $this->compare(
Chris@4 245 <<<EOL
Chris@4 246 <?php
Chris@4 247 # Ahoj
Chris@4 248 EOL
Chris@4 249 ,
Chris@4 250 <<<EOL
Chris@4 251 <token_default><?php</token_default>
Chris@4 252 <token_comment># Ahoj</token_comment>
Chris@4 253 EOL
Chris@4 254 );
Chris@4 255 }
Chris@4 256
Chris@4 257 public function testEmpty()
Chris@4 258 {
Chris@4 259 $this->compare(
Chris@4 260 ''
Chris@4 261 ,
Chris@4 262 ''
Chris@4 263 );
Chris@4 264 }
Chris@4 265
Chris@4 266 public function testWhitespace()
Chris@4 267 {
Chris@4 268 $this->compare(
Chris@4 269 ' '
Chris@4 270 ,
Chris@4 271 '<token_html> </token_html>'
Chris@4 272 );
Chris@4 273 }
Chris@4 274 }