forked from hhvm/hhast
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFixtureRewritingTest.hack
More file actions
36 lines (32 loc) · 1.02 KB
/
FixtureRewritingTest.hack
File metadata and controls
36 lines (32 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
* Copyright (c) 2017-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
namespace Facebook\HHAST;
use function Facebook\HHAST\TestLib\expect;
use namespace HH\Lib\Str;
final class FixtureRewritingTest extends TestCase {
public async function testRewriteComments(): Awaitable<void> {
$rewriter = (Node $node, ?vec<Node> $_parents) ==> {
if ($node is SingleLineComment) {
return $node->withText('// blah blah blah');
}
if ($node is DelimitedComment) {
if (Str\contains($node->getText(), 'Copyright')) {
return $node;
}
return $node->withText('/* blah blah blah */');
}
return $node;
};
$ast = await from_file_async(
File::fromPath(__DIR__.'/examples/rewrite_comments.php.in'),
);
$code = $ast->rewrite($rewriter)->getCode();
expect($code)->toMatchExpectFile('rewrite_comments.php.expect');
}
}