PATH:
opt
/
cpanel
/
ea-wappspector
/
vendor
/
squizlabs
/
php_codesniffer
/
tests
/
Core
/
Tokenizers
/
PHP
<?php /** * Tests the conversion of square bracket tokens to short array tokens. * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Tokenizers\PHP; use PHP_CodeSniffer\Tests\Core\Tokenizers\AbstractTokenizerTestCase; final class ShortArrayTest extends AbstractTokenizerTestCase { /** * Test that real square brackets are still tokenized as square brackets. * * @param string $testMarker The comment which prefaces the target token in the test file. * * @dataProvider dataSquareBrackets * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional * * @return void */ public function testSquareBrackets($testMarker) { $tokens = $this->phpcsFile->getTokens(); $opener = $this->getTargetToken($testMarker, [T_OPEN_SQUARE_BRACKET, T_OPEN_SHORT_ARRAY]); $tokenArray = $tokens[$opener]; $this->assertSame(T_OPEN_SQUARE_BRACKET, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SQUARE_BRACKET (code)'); $this->assertSame('T_OPEN_SQUARE_BRACKET', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SQUARE_BRACKET (type)'); if (isset($tokens[$opener]['bracket_closer']) === true) { $closer = $tokens[$opener]['bracket_closer']; $tokenArray = $tokens[$closer]; $this->assertSame(T_CLOSE_SQUARE_BRACKET, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SQUARE_BRACKET (code)'); $this->assertSame('T_CLOSE_SQUARE_BRACKET', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SQUARE_BRACKET (type)'); } }//end testSquareBrackets() /** * Data provider. * * @see testSquareBrackets() * * @return array<string, array<string>> */ public static function dataSquareBrackets() { return [ 'array access 1' => ['/* testArrayAccess1 */'], 'array access 2' => ['/* testArrayAccess2 */'], 'array assignment' => ['/* testArrayAssignment */'], 'function call dereferencing' => ['/* testFunctionCallDereferencing */'], 'method call dereferencing' => ['/* testMethodCallDereferencing */'], 'static method call dereferencing' => ['/* testStaticMethodCallDereferencing */'], 'property dereferencing' => ['/* testPropertyDereferencing */'], 'property dereferencing with inaccessable name' => ['/* testPropertyDereferencingWithInaccessibleName */'], 'static property dereferencing' => ['/* testStaticPropertyDereferencing */'], 'string dereferencing single quotes' => ['/* testStringDereferencing */'], 'string dereferencing double quotes' => ['/* testStringDereferencingDoubleQuoted */'], 'global constant dereferencing' => ['/* testConstantDereferencing */'], 'class constant dereferencing' => ['/* testClassConstantDereferencing */'], 'magic constant dereferencing' => ['/* testMagicConstantDereferencing */'], 'array access with curly braces' => ['/* testArrayAccessCurlyBraces */'], 'array literal dereferencing' => ['/* testArrayLiteralDereferencing */'], 'short array literal dereferencing' => ['/* testShortArrayLiteralDereferencing */'], 'class member dereferencing on instantiation 1' => ['/* testClassMemberDereferencingOnInstantiation1 */'], 'class member dereferencing on instantiation 2' => ['/* testClassMemberDereferencingOnInstantiation2 */'], 'class member dereferencing on clone' => ['/* testClassMemberDereferencingOnClone */'], 'nullsafe method call dereferencing' => ['/* testNullsafeMethodCallDereferencing */'], 'interpolated string dereferencing' => ['/* testInterpolatedStringDereferencing */'], 'new anonymous class expression dereferencing 1' => ['/* testNewAnonClassNoParenthesesExpressionDereferencing */'], 'new anonymous class expression dereferencing 2' => ['/* testNewAnonClassParenthesesExpressionDereferencing */'], 'new anonymous class expression dereferencing 3' => ['/* testNewAnonClassExtendsExpressionDereferencing */'], 'new anonymous class expression dereferencing 4' => ['/* testNewAnonClassImplementsExpressionDereferencing */'], 'live coding' => ['/* testLiveCoding */'], ]; }//end dataSquareBrackets() /** * Test that short arrays and short lists are still tokenized as short arrays. * * @param string $testMarker The comment which prefaces the target token in the test file. * * @dataProvider dataShortArrays * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional * * @return void */ public function testShortArrays($testMarker) { $tokens = $this->phpcsFile->getTokens(); $opener = $this->getTargetToken($testMarker, [T_OPEN_SQUARE_BRACKET, T_OPEN_SHORT_ARRAY]); $tokenArray = $tokens[$opener]; $this->assertSame(T_OPEN_SHORT_ARRAY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SHORT_ARRAY (code)'); $this->assertSame('T_OPEN_SHORT_ARRAY', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SHORT_ARRAY (type)'); if (isset($tokens[$opener]['bracket_closer']) === true) { $closer = $tokens[$opener]['bracket_closer']; $tokenArray = $tokens[$closer]; $this->assertSame(T_CLOSE_SHORT_ARRAY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SHORT_ARRAY (code)'); $this->assertSame('T_CLOSE_SHORT_ARRAY', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SHORT_ARRAY (type)'); } }//end testShortArrays() /** * Data provider. * * @see testShortArrays() * * @return array<string, array<string>> */ public static function dataShortArrays() { return [ 'short array empty' => ['/* testShortArrayDeclarationEmpty */'], 'short array with value' => ['/* testShortArrayDeclarationWithOneValue */'], 'short array with values' => ['/* testShortArrayDeclarationWithMultipleValues */'], 'short array with dereferencing' => ['/* testShortArrayDeclarationWithDereferencing */'], 'short list' => ['/* testShortListDeclaration */'], 'short list nested' => ['/* testNestedListDeclaration */'], 'short array within function call' => ['/* testArrayWithinFunctionCall */'], 'short list after braced control structure' => ['/* testShortListDeclarationAfterBracedControlStructure */'], 'short list after non-braced control structure' => ['/* testShortListDeclarationAfterNonBracedControlStructure */'], 'short list after alternative control structure' => ['/* testShortListDeclarationAfterAlternativeControlStructure */'], 'short list after class declaration' => ['/* testShortListDeclarationAfterClassDeclaration */'], ]; }//end dataShortArrays() }//end class
[-] BackfillExplicitOctalNotationTest.php
[edit]
[-] PHPOpenTagEOF2Test.inc
[edit]
[-] BackfillEnumTest.inc
[edit]
[-] PHPOpenTagEOF1Test.php
[edit]
[-] BackfillAsymmetricVisibilityTest.php
[edit]
[-] EnumCaseTest.php
[edit]
[-] StableCommentWhitespaceTest.inc
[edit]
[-] HeredocNowdocTest.inc
[edit]
[-] TypeIntersectionTest.php
[edit]
[-] DNFTypesParseError2Test.php
[edit]
[-] TypeIntersectionTest.inc
[edit]
[-] NamedFunctionCallArgumentsTest.inc
[edit]
[-] TypedConstantsTest.inc
[edit]
[-] UndoNamespacedNameSingleTokenTest.php
[edit]
[-] BackfillFnTokenParseErrorTest.inc
[edit]
[+]
..
[-] StableCommentWhitespaceWinTest.php
[edit]
[-] DNFTypesTest.inc
[edit]
[-] DNFTypesParseError1Test.inc
[edit]
[-] BitwiseOrTest.php
[edit]
[-] BackfillFnTokenParseErrorTest.php
[edit]
[-] DoubleQuotedStringTest.php
[edit]
[-] BackfillReadonlyTest.inc
[edit]
[-] PHPOpenTagEOF1Test.inc
[edit]
[-] PHPOpenTagEOF2Test.php
[edit]
[-] BackfillNumericSeparatorTest.inc
[edit]
[-] ArrayKeywordTest.inc
[edit]
[-] BackfillMatchTokenTest.php
[edit]
[-] DoubleArrowTest.inc
[edit]
[-] HeredocStringTest.inc
[edit]
[-] GotoLabelTest.inc
[edit]
[-] OtherContextSensitiveKeywordsTest.php
[edit]
[-] StableCommentWhitespaceTest.php
[edit]
[-] NullsafeObjectOperatorTest.php
[edit]
[-] DNFTypesParseError1Test.php
[edit]
[-] AttributesTest.php
[edit]
[-] ExitKeywordTest.inc
[edit]
[-] HeredocParseErrorTest.php
[edit]
[-] AnonClassParenthesisOwnerTest.php
[edit]
[-] NullableVsInlineThenTest.inc
[edit]
[-] ArrayKeywordTest.php
[edit]
[-] NullsafeObjectOperatorTest.inc
[edit]
[-] BackfillExplicitOctalNotationTest.inc
[edit]
[-] ResolveSimpleTokenTest.inc
[edit]
[-] DNFTypesParseError2Test.inc
[edit]
[-] BackfillEnumTest.php
[edit]
[-] YieldTest.inc
[edit]
[-] BackfillReadonlyTest.php
[edit]
[-] HeredocNowdocTest.php
[edit]
[-] ShortArrayTest.inc
[edit]
[-] DefaultKeywordTest.php
[edit]
[-] StableCommentWhitespaceWinTest.inc
[edit]
[-] BitwiseOrTest.inc
[edit]
[-] DNFTypesTest.php
[edit]
[-] DoubleArrowTest.php
[edit]
[-] EnumCaseTest.inc
[edit]
[-] TypedConstantsTest.php
[edit]
[-] BackfillNumericSeparatorTest.php
[edit]
[-] BackfillFnTokenTest.php
[edit]
[-] FinallyTest.inc
[edit]
[-] HeredocStringTest.php
[edit]
[-] ShortArrayTest.php
[edit]
[-] BackfillMatchTokenTest.inc
[edit]
[-] NullableVsInlineThenTest.php
[edit]
[-] DoubleQuotedStringTest.inc
[edit]
[-] GotoLabelTest.php
[edit]
[-] ExitKeywordTest.php
[edit]
[-] HeredocParseErrorTest.inc
[edit]
[-] ResolveSimpleTokenTest.php
[edit]
[-] UndoNamespacedNameSingleTokenTest.inc
[edit]
[-] OtherContextSensitiveKeywordsTest.inc
[edit]
[-] NamedFunctionCallArgumentsTest.php
[edit]
[-] AnonClassParenthesisOwnerTest.inc
[edit]
[-] PHPOpenTagEOF3Test.inc
[edit]
[-] BackfillFnTokenTest.inc
[edit]
[-] BackfillAsymmetricVisibilityTest.inc
[edit]
[-] AttributesTest.inc
[edit]
[-] ContextSensitiveKeywordsTest.inc
[edit]
[-] FinallyTest.php
[edit]
[-] PHPOpenTagEOF3Test.php
[edit]
[-] YieldTest.php
[edit]
[-] DefaultKeywordTest.inc
[edit]
[-] ContextSensitiveKeywordsTest.php
[edit]