Differential D20185 Diff 48213 src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
Show All 25 Lines | foreach (Filesystem::listDirectory($dir, $show_hidden = false) as $file) { | ||||
} | } | ||||
} else { | } else { | ||||
$options = array(); | $options = array(); | ||||
} | } | ||||
foreach (array('one', 'two') as $type) { | foreach (array('one', 'two') as $type) { | ||||
$this->runParser($type, $data, $file, 'expect'); | $this->runParser($type, $data, $file, 'expect'); | ||||
$this->runParser($type, $data, $file, 'unshielded'); | $this->runParser($type, $data, $file, 'unshielded'); | ||||
$this->runParser($type, $data, $file, 'whitespace'); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
private function runParser($type, $data, $file, $extension) { | private function runParser($type, $data, $file, $extension) { | ||||
$dir = $this->getTestDataDirectory(); | $dir = $this->getTestDataDirectory(); | ||||
$test_file = $dir.$file.'.'.$type.'.'.$extension; | $test_file = $dir.$file.'.'.$type.'.'.$extension; | ||||
if (!Filesystem::pathExists($test_file)) { | if (!Filesystem::pathExists($test_file)) { | ||||
return; | return; | ||||
} | } | ||||
$unshielded = false; | $unshielded = false; | ||||
$whitespace = false; | |||||
switch ($extension) { | switch ($extension) { | ||||
case 'unshielded': | case 'unshielded': | ||||
$unshielded = true; | $unshielded = true; | ||||
break; | break; | ||||
case 'whitespace'; | |||||
$unshielded = true; | |||||
$whitespace = true; | |||||
break; | |||||
} | } | ||||
$parsers = $this->buildChangesetParsers($type, $data, $file); | $parsers = $this->buildChangesetParsers($type, $data, $file); | ||||
$actual = $this->renderParsers($parsers, $unshielded, $whitespace); | $actual = $this->renderParsers($parsers, $unshielded); | ||||
$expect = Filesystem::readFile($test_file); | $expect = Filesystem::readFile($test_file); | ||||
$this->assertEqual($expect, $actual, basename($test_file)); | $this->assertEqual($expect, $actual, basename($test_file)); | ||||
} | } | ||||
private function renderParsers(array $parsers, $unshield, $whitespace) { | private function renderParsers(array $parsers, $unshield) { | ||||
$result = array(); | $result = array(); | ||||
foreach ($parsers as $parser) { | foreach ($parsers as $parser) { | ||||
if ($unshield) { | if ($unshield) { | ||||
$s_range = 0; | $s_range = 0; | ||||
$e_range = 0xFFFF; | $e_range = 0xFFFF; | ||||
} else { | } else { | ||||
$s_range = null; | $s_range = null; | ||||
$e_range = null; | $e_range = null; | ||||
} | } | ||||
if ($whitespace) { | |||||
$parser->setWhitespaceMode( | |||||
DifferentialChangesetParser::WHITESPACE_SHOW_ALL); | |||||
} | |||||
$result[] = $parser->render($s_range, $e_range, array()); | $result[] = $parser->render($s_range, $e_range, array()); | ||||
} | } | ||||
return implode(str_repeat('~', 80)."\n", $result); | return implode(str_repeat('~', 80)."\n", $result); | ||||
} | } | ||||
private function buildChangesetParsers($type, $data, $file) { | private function buildChangesetParsers($type, $data, $file) { | ||||
$parser = new ArcanistDiffParser(); | $parser = new ArcanistDiffParser(); | ||||
$changes = $parser->parseDiff($data); | $changes = $parser->parseDiff($data); | ||||
Show All 33 Lines |