public function testSubversionPathInfo() { $svn = PhabricatorRepositoryType::REPOSITORY_TYPE_SVN; $repo = new PhabricatorRepository(); $repo->setVersionControlSystem($svn); $repo->setDetail('remote-uri', 'http://svn.example.com/repo'); $this->assertEqual('http://svn.example.com/repo', $repo->getSubversionPathURI()); $repo->setDetail('remote-uri', 'http://svn.example.com/repo/'); $this->assertEqual('http://svn.example.com/repo', $repo->getSubversionPathURI()); $repo->setDetail('hosting-enabled', true); $repo->setLocalPath('/var/repo/SVN'); $this->assertEqual('file:///var/repo/SVN', $repo->getSubversionPathURI()); $repo->setLocalPath('/var/repo/SVN/'); $this->assertEqual('file:///var/repo/SVN', $repo->getSubversionPathURI()); $this->assertEqual('file:///var/repo/SVN/a@', $repo->getSubversionPathURI('a')); $this->assertEqual('file:///var/repo/SVN/a@1', $repo->getSubversionPathURI('a', 1)); $this->assertEqual('file:///var/repo/SVN/%3F@22', $repo->getSubversionPathURI('?', 22)); $repo->setDetail('svn-subpath', 'quack/trunk/'); $this->assertEqual('file:///var/repo/SVN/quack/trunk/@', $repo->getSubversionBaseURI()); $this->assertEqual('file:///var/repo/SVN/quack/trunk/@HEAD', $repo->getSubversionBaseURI('HEAD')); }