| Server IP : 54.94.228.101 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/vendor/nikic/php-parser/test/PhpParser/ |
Upload File : |
<?php declare(strict_types=1);
namespace PhpParser;
use PHPUnit\Framework\TestCase;
class JsonDecoderTest extends TestCase
{
public function testRoundTrip() {
$code = <<<'PHP'
<?php
// comment
/** doc comment */
function functionName(&$a = 0, $b = 1.0) {
echo 'Foo';
}
PHP;
$parser = new Parser\Php7(new Lexer());
$stmts = $parser->parse($code);
$json = json_encode($stmts);
$jsonDecoder = new JsonDecoder();
$decodedStmts = $jsonDecoder->decode($json);
$this->assertEquals($stmts, $decodedStmts);
}
/** @dataProvider provideTestDecodingError */
public function testDecodingError($json, $expectedMessage) {
$jsonDecoder = new JsonDecoder();
$this->expectException(\RuntimeException::class);
$this->expectExceptionMessage($expectedMessage);
$jsonDecoder->decode($json);
}
public function provideTestDecodingError() {
return [
['???', 'JSON decoding error: Syntax error'],
['{"nodeType":123}', 'Node type must be a string'],
['{"nodeType":"Name","attributes":123}', 'Attributes must be an array'],
['{"nodeType":"Comment"}', 'Comment must have text'],
['{"nodeType":"xxx"}', 'Unknown node type "xxx"'],
];
}
}