PHP-Parser/test/PhpParser/CommentTest.php
Nikita Popov 1f504d2c7d Don't trim in Comment::getReformattedText()
In the past, single-line comments were stored together with the
trailing newline. Later we switched to the PHP8 comment
representation, where the trailing newline is not part of the
comment anymore. As such, there is also no need to trim here.

This is split out from GH-867.
2022-08-07 16:19:39 +02:00

82 lines
2.1 KiB
PHP

<?php declare(strict_types=1);
namespace PhpParser;
class CommentTest extends \PHPUnit\Framework\TestCase
{
public function testGetters() {
$comment = new Comment('/* Some comment */',
1, 10, 2, 1, 27, 2);
$this->assertSame('/* Some comment */', $comment->getText());
$this->assertSame('/* Some comment */', (string) $comment);
$this->assertSame(1, $comment->getLine());
$this->assertSame(10, $comment->getFilePos());
$this->assertSame(2, $comment->getTokenPos());
$this->assertSame(1, $comment->getStartLine());
$this->assertSame(10, $comment->getStartFilePos());
$this->assertSame(2, $comment->getStartTokenPos());
$this->assertSame(1, $comment->getEndLine());
$this->assertSame(27, $comment->getEndFilePos());
$this->assertSame(2, $comment->getEndTokenPos());
}
/**
* @dataProvider provideTestReformatting
*/
public function testReformatting($commentText, $reformattedText) {
$comment = new Comment($commentText);
$this->assertSame($reformattedText, $comment->getReformattedText());
}
public function provideTestReformatting() {
return [
['// Some text', '// Some text'],
['/* Some text */', '/* Some text */'],
[
'/**
* Some text.
* Some more text.
*/',
'/**
* Some text.
* Some more text.
*/'
],
[
'/*
Some text.
Some more text.
*/',
'/*
Some text.
Some more text.
*/'
],
[
'/* Some text.
More text.
Even more text. */',
'/* Some text.
More text.
Even more text. */'
],
[
'/* Some text.
More text.
Indented text. */',
'/* Some text.
More text.
Indented text. */',
],
// invalid comment -> no reformatting
[
'hallo
world',
'hallo
world',
],
];
}
}