annotate vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 5fb285c0d0e3
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace PhpParser\Node\Scalar;
Chris@0 4
Chris@0 5 class StringTest extends \PHPUnit_Framework_TestCase
Chris@0 6 {
Chris@0 7 /**
Chris@0 8 * @dataProvider provideTestParseEscapeSequences
Chris@0 9 */
Chris@0 10 public function testParseEscapeSequences($expected, $string, $quote) {
Chris@0 11 $this->assertSame(
Chris@0 12 $expected,
Chris@0 13 String_::parseEscapeSequences($string, $quote)
Chris@0 14 );
Chris@0 15 }
Chris@0 16
Chris@0 17 /**
Chris@0 18 * @dataProvider provideTestParse
Chris@0 19 */
Chris@0 20 public function testCreate($expected, $string) {
Chris@0 21 $this->assertSame(
Chris@0 22 $expected,
Chris@0 23 String_::parse($string)
Chris@0 24 );
Chris@0 25 }
Chris@0 26
Chris@0 27 public function provideTestParseEscapeSequences() {
Chris@0 28 return array(
Chris@0 29 array('"', '\\"', '"'),
Chris@0 30 array('\\"', '\\"', '`'),
Chris@0 31 array('\\"\\`', '\\"\\`', null),
Chris@0 32 array("\\\$\n\r\t\f\v", '\\\\\$\n\r\t\f\v', null),
Chris@0 33 array("\x1B", '\e', null),
Chris@0 34 array(chr(255), '\xFF', null),
Chris@0 35 array(chr(255), '\377', null),
Chris@0 36 array(chr(0), '\400', null),
Chris@0 37 array("\0", '\0', null),
Chris@0 38 array('\xFF', '\\\\xFF', null),
Chris@0 39 );
Chris@0 40 }
Chris@0 41
Chris@0 42 public function provideTestParse() {
Chris@0 43 $tests = array(
Chris@0 44 array('A', '\'A\''),
Chris@0 45 array('A', 'b\'A\''),
Chris@0 46 array('A', '"A"'),
Chris@0 47 array('A', 'b"A"'),
Chris@0 48 array('\\', '\'\\\\\''),
Chris@0 49 array('\'', '\'\\\'\''),
Chris@0 50 );
Chris@0 51
Chris@0 52 foreach ($this->provideTestParseEscapeSequences() as $i => $test) {
Chris@0 53 // skip second and third tests, they aren't for double quotes
Chris@0 54 if ($i != 1 && $i != 2) {
Chris@0 55 $tests[] = array($test[0], '"' . $test[1] . '"');
Chris@0 56 }
Chris@0 57 }
Chris@0 58
Chris@0 59 return $tests;
Chris@0 60 }
Chris@0 61 }