annotate vendor/jakub-onderka/php-console-highlighter/tests/HigligterTest.php @ 19:fa3358dc1485 tip

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