3
final class ArcanistMercurialParserTestCase extends ArcanistTestCase {
5
public function testParseAll() {
6
$root = dirname(__FILE__).'/mercurial/';
7
foreach (Filesystem::listDirectory($root, $hidden = false) as $file) {
10
Filesystem::readFile($root.'/'.$file));
14
private function parseData($name, $data) {
16
case 'branches-basic.txt':
17
$output = ArcanistMercurialParser::parseMercurialBranches($data);
19
array('default', 'stable'),
22
array('a21ccf4412d5', 'ec222a29bdf0'),
23
array_values(ipull($output, 'rev')));
25
case 'branches-with-spaces.txt':
26
$output = ArcanistMercurialParser::parseMercurialBranches($data);
29
'm m m m m 2:ffffffffffff (inactive)',
36
array('0b9d8290c4e0', '78963faacfc7', '5db03c5500c6', 'ffffffffffff'),
37
array_values(ipull($output, 'rev')));
39
case 'branches-empty.txt':
40
$output = ArcanistMercurialParser::parseMercurialBranches($data);
41
$this->assertEqual(array(), $output);
44
$output = ArcanistMercurialParser::parseMercurialLog($data);
49
array('a21ccf4412d5', 'a051f8a6a7cc', 'b1f49efeab65'),
50
array_values(ipull($output, 'rev')));
53
// Empty logs (e.g., "hg parents" for a root revision) should parse
55
$output = ArcanistMercurialParser::parseMercurialLog($data);
60
case 'status-basic.txt':
61
$output = ArcanistMercurialParser::parseMercurialStatus($data);
66
array('changed', 'added', 'removed', 'untracked'),
69
case 'status-moves.txt':
70
$output = ArcanistMercurialParser::parseMercurialStatusDetails($data);
73
$output['moved_file']['from']);
76
$output['changed_file']['from']);
79
$output['copied_file']['from']);
82
idx($output, 'copy_source'));
85
throw new Exception("No test information for test data '{$name}'!");