public function testGitCommonFilenameExtraction() { static $tests = array('a/filename.c b/filename.c' => 'filename.c', "a/filename.c b/filename.c\n" => 'filename.c', "a/filename.c b/filename.c\r\n" => 'filename.c', 'filename.c filename.c' => 'filename.c', '1/filename.c 2/filename.c' => 'filename.c', '"a/\\"quotes\\"" "b/\\"quotes\\""' => '"quotes"', '"a/\\"quotes and spaces\\"" "b/\\"quotes and spaces\\""' => '"quotes and spaces"', '"a/\\342\\230\\203" "b/\\342\\230\\203"' => "☃", 'a/Core Data/filename.c b/Core Data/filename.c' => 'Core Data/filename.c', 'some file with spaces.c some file with spaces.c' => 'some file with spaces.c', '"foo bar.c" foo bar.c' => 'foo bar.c', '"a/foo bar.c" b/foo bar.c' => 'foo bar.c', 'src/file dst/file' => 'file', 'a/foo.c b/bar.c' => null, 'a/foo bar.c b/baz troz.c' => null, '"a/foo bar.c" b/baz troz.c' => null, 'a/foo bar.c "b/baz troz.c"' => null, '"a/foo bar.c" "b/baz troz.c"' => null, 'filename file with spaces.c filename file with spaces.c' => 'filename file with spaces.c'); foreach ($tests as $input => $expect) { $result = ArcanistDiffParser::extractGitCommonFilename($input); $this->assertEqual($expect, $result, pht('Split: %s', $input)); } }