1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- namespace PhpParser\Node\Scalar;
- class StringTest extends \PHPUnit_Framework_TestCase
- {
- /**
- * @dataProvider provideTestParseEscapeSequences
- */
- public function testParseEscapeSequences($expected, $string, $quote) {
- $this->assertSame(
- $expected,
- String_::parseEscapeSequences($string, $quote)
- );
- }
- /**
- * @dataProvider provideTestParse
- */
- public function testCreate($expected, $string) {
- $this->assertSame(
- $expected,
- String_::parse($string)
- );
- }
- public function provideTestParseEscapeSequences() {
- return array(
- array('"', '\\"', '"'),
- array('\\"', '\\"', '`'),
- array('\\"\\`', '\\"\\`', null),
- array("\\\$\n\r\t\f\v", '\\\\\$\n\r\t\f\v', null),
- array("\x1B", '\e', null),
- array(chr(255), '\xFF', null),
- array(chr(255), '\377', null),
- array(chr(0), '\400', null),
- array("\0", '\0', null),
- array('\xFF', '\\\\xFF', null),
- );
- }
- public function provideTestParse() {
- $tests = array(
- array('A', '\'A\''),
- array('A', 'b\'A\''),
- array('A', '"A"'),
- array('A', 'b"A"'),
- array('\\', '\'\\\\\''),
- array('\'', '\'\\\'\''),
- );
- foreach ($this->provideTestParseEscapeSequences() as $i => $test) {
- // skip second and third tests, they aren't for double quotes
- if ($i != 1 && $i != 2) {
- $tests[] = array($test[0], '"' . $test[1] . '"');
- }
- }
- return $tests;
- }
- }
|