8 class ShortEchoSyntaxSniffTest
extends \PHPUnit\Framework\TestCase
18 private $shortEchoUsageSniff;
20 protected function setUp()
22 $this->fileMock = $this->getMock(\PHP_CodeSniffer_File::class, [], [],
'',
false);
23 $this->shortEchoUsageSniff =
new ShortEchoSyntaxSniff();
31 public function testEchoTagSniff($file, $stackPtr, $incorrectUsages)
34 $tokens = $this->tokenizeString($fileContent);
36 $this->fileMock->expects($this->any())
38 ->with([T_WHITESPACE, T_COMMENT, T_DOC_COMMENT], $stackPtr + 1,
null,
true)
39 ->willReturn($stackPtr + 1);
41 $this->fileMock->expects($this->once())
45 $this->fileMock->expects($this->exactly($incorrectUsages))
47 ->with(
'Short echo tag syntax must be used; expected "<?=" but found "<?php echo"');
49 $this->shortEchoUsageSniff->process($this->fileMock, $stackPtr);
58 private function tokenizeString($fileContent)
60 $tokens = token_get_all($fileContent);
65 $snifferTokens[
$i][
'code'] =
$code;
68 return $snifferTokens;
74 public function processDataProvider()
77 [
'incorrect_echotag.txt', 1, 1],
78 [
'correct_noecho.txt', 1, 0],
79 [
'correct_echotag.txt', 1, 0]
defined('TESTS_BP')||define('TESTS_BP' __DIR__