[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class DifferentialParseRenderTestCase extends PhabricatorTestCase { 4 5 public function testParseRender() { 6 $dir = dirname(__FILE__).'/data/'; 7 foreach (Filesystem::listDirectory($dir, $show_hidden = false) as $file) { 8 if (!preg_match('/\.diff$/', $file)) { 9 continue; 10 } 11 $data = Filesystem::readFile($dir.$file); 12 13 $opt_file = $dir.$file.'.options'; 14 if (Filesystem::pathExists($opt_file)) { 15 $options = Filesystem::readFile($opt_file); 16 $options = json_decode($options, true); 17 if (!is_array($options)) { 18 throw new Exception("Invalid options file: {$opt_file}."); 19 } 20 } else { 21 $options = array(); 22 } 23 24 foreach (array('one', 'two') as $type) { 25 $parser = $this->buildChangesetParser($type, $data, $file); 26 $actual = $parser->render(null, null, array()); 27 28 $expect = Filesystem::readFile($dir.$file.'.'.$type.'.expect'); 29 $this->assertEqual($expect, (string)$actual, $file.'.'.$type); 30 } 31 } 32 } 33 34 private function buildChangesetParser($type, $data, $file) { 35 $parser = new ArcanistDiffParser(); 36 $changes = $parser->parseDiff($data); 37 38 $diff = DifferentialDiff::newFromRawChanges( 39 PhabricatorUser::getOmnipotentUser(), 40 $changes); 41 if (count($diff->getChangesets()) !== 1) { 42 throw new Exception("Expected one changeset: {$file}"); 43 } 44 45 $changeset = head($diff->getChangesets()); 46 47 $engine = new PhabricatorMarkupEngine(); 48 $engine->setViewer(new PhabricatorUser()); 49 50 $cparser = new DifferentialChangesetParser(); 51 $cparser->setDisableCache(true); 52 $cparser->setChangeset($changeset); 53 $cparser->setMarkupEngine($engine); 54 55 if ($type == 'one') { 56 $cparser->setRenderer(new DifferentialChangesetOneUpTestRenderer()); 57 } else if ($type == 'two') { 58 $cparser->setRenderer(new DifferentialChangesetTwoUpTestRenderer()); 59 } else { 60 throw new Exception("Unknown renderer type '{$type}'!"); 61 } 62 63 return $cparser; 64 } 65 66 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |