Skip to content

Commit 90b3b9e

Browse files
committed
TokenizeTest: add additional tests for keywords and operators
1 parent cbd7580 commit 90b3b9e

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

tests/TokenizeTest.php

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,84 @@ function plus($a, $b) {
675675
<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>
676676
<token_keyword> return </token_keyword><token_default>$a </token_default><token_keyword>+ </token_keyword><token_default>$b</token_default><token_keyword>;</token_keyword>
677677
<token_keyword>}</token_keyword>
678+
EOL
679+
),
680+
'Keywords: while, empty, exit' => array(
681+
'original' => <<<'EOL'
682+
<?php
683+
while(empty($a)) { exit; }
684+
EOL
685+
,
686+
'expected' => <<<'EOL'
687+
<token_default><?php</token_default>
688+
<token_keyword>while(empty(</token_keyword><token_default>$a</token_default><token_keyword>)) { exit; }</token_keyword>
689+
EOL
690+
),
691+
'Keywords: type casts' => array(
692+
'original' => <<<'EOL'
693+
<?php
694+
$a = (int) (bool) $a . (string) $b;
695+
EOL
696+
,
697+
'expected' => <<<'EOL'
698+
<token_default><?php</token_default>
699+
<token_default>$a </token_default><token_keyword>= (int) (bool) </token_keyword><token_default>$a </token_default><token_keyword>. (string) </token_keyword><token_default>$b</token_default><token_keyword>;</token_keyword>
700+
EOL
701+
),
702+
'Keywords: new, clone' => array(
703+
'original' => <<<'EOL'
704+
<?php
705+
$obj = new stdClass;
706+
$clone = clone $obj;
707+
EOL
708+
,
709+
'expected' => <<<'EOL'
710+
<token_default><?php</token_default>
711+
<token_default>$obj </token_default><token_keyword>= new </token_keyword><token_default>stdClass</token_default><token_keyword>;</token_keyword>
712+
<token_default>$clone </token_default><token_keyword>= clone </token_keyword><token_default>$obj</token_default><token_keyword>;</token_keyword>
713+
EOL
714+
),
715+
'Operators: arithmetic operators' => array(
716+
'original' => <<<'EOL'
717+
<?php
718+
echo 1 + 2 - 2 * 10 / 5 ** 1;
719+
EOL
720+
,
721+
'expected' => <<<'EOL'
722+
<token_default><?php</token_default>
723+
<token_keyword>echo </token_keyword><token_default>1 </token_default><token_keyword>+ </token_keyword><token_default>2 </token_default><token_keyword>- </token_keyword><token_default>2 </token_default><token_keyword>* </token_keyword><token_default>10 </token_default><token_keyword>/ </token_keyword><token_default>5 </token_default><token_keyword>** </token_keyword><token_default>1</token_default><token_keyword>;</token_keyword>
724+
EOL
725+
),
726+
'Operators: assignment operators' => array(
727+
'original' => <<<'EOL'
728+
<?php
729+
$a = 10;
730+
$a *= 10;
731+
$a ^= 10;
732+
$a ??= $b;
733+
EOL
734+
,
735+
'expected' => <<<'EOL'
736+
<token_default><?php</token_default>
737+
<token_default>$a </token_default><token_keyword>= </token_keyword><token_default>10</token_default><token_keyword>;</token_keyword>
738+
<token_default>$a </token_default><token_keyword>*= </token_keyword><token_default>10</token_default><token_keyword>;</token_keyword>
739+
<token_default>$a </token_default><token_keyword>^= </token_keyword><token_default>10</token_default><token_keyword>;</token_keyword>
740+
<token_default>$a </token_default><token_keyword>??= </token_keyword><token_default>$b</token_default><token_keyword>;</token_keyword>
741+
EOL
742+
),
743+
'Operators: comparison, boolean and logical operators' => array(
744+
'original' => <<<'EOL'
745+
<?php
746+
echo '' === '' && '' !== '';
747+
echo true || '' > '';
748+
echo '' <=> '' and '' or ! '';
749+
EOL
750+
,
751+
'expected' => <<<'EOL'
752+
<token_default><?php</token_default>
753+
<token_keyword>echo </token_keyword><token_string>'' </token_string><token_keyword>=== </token_keyword><token_string>'' </token_string><token_keyword>&& </token_keyword><token_string>'' </token_string><token_keyword>!== </token_keyword><token_string>''</token_string><token_keyword>;</token_keyword>
754+
<token_keyword>echo </token_keyword><token_default>true </token_default><token_keyword>|| </token_keyword><token_string>'' </token_string><token_keyword>> </token_keyword><token_string>''</token_string><token_keyword>;</token_keyword>
755+
<token_keyword>echo </token_keyword><token_string>'' </token_string><token_keyword><=> </token_keyword><token_string>'' </token_string><token_keyword>and </token_keyword><token_string>'' </token_string><token_keyword>or ! </token_keyword><token_string>''</token_string><token_keyword>;</token_keyword>
678756
EOL
679757
),
680758
);

0 commit comments

Comments
 (0)