public function testSVNURINormalizer()
 {
     $cases = array('file:///path/to/repo' => 'path/to/repo', 'file:///path/to/repo/' => 'path/to/repo');
     $type_svn = PhabricatorRepositoryURINormalizer::TYPE_SVN;
     foreach ($cases as $input => $expect) {
         $normal = new PhabricatorRepositoryURINormalizer($type_svn, $input);
         $this->assertEqual($expect, $normal->getNormalizedPath(), pht('Normalized SVN path for "%s".', $input));
     }
 }
 public function getNormalizedPath()
 {
     $uri = (string) $this->getCloneURIObject();
     switch ($this->getVersionControlSystem()) {
         case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT:
             $normalized_uri = new PhabricatorRepositoryURINormalizer(PhabricatorRepositoryURINormalizer::TYPE_GIT, $uri);
             break;
         case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN:
             $normalized_uri = new PhabricatorRepositoryURINormalizer(PhabricatorRepositoryURINormalizer::TYPE_SVN, $uri);
             break;
         case PhabricatorRepositoryType::REPOSITORY_TYPE_MERCURIAL:
             $normalized_uri = new PhabricatorRepositoryURINormalizer(PhabricatorRepositoryURINormalizer::TYPE_MERCURIAL, $uri);
             break;
         default:
             throw new Exception(pht('Unrecognized version control system.'));
     }
     return $normalized_uri->getNormalizedPath();
 }