public function testGitURIParsing()
 {
     $uri = new PhutilGitURI('git@host.com:path/to/something');
     $this->assertEqual('git', $uri->getUser());
     $this->assertEqual('host.com', $uri->getDomain());
     $this->assertEqual('path/to/something', $uri->getPath());
     $this->assertEqual('git@host.com:path/to/something', (string) $uri);
     $uri = new PhutilGitURI('host.com:path/to/something');
     $this->assertEqual('', $uri->getUser());
     $this->assertEqual('host.com', $uri->getDomain());
     $this->assertEqual('path/to/something', $uri->getPath());
     $this->assertEqual('host.com:path/to/something', (string) $uri);
 }
 /**
  * @task normal
  */
 public function getPath()
 {
     switch ($this->type) {
         case self::TYPE_GIT:
             $uri = new PhutilURI($this->uri);
             if ($uri->getProtocol()) {
                 return $uri->getPath();
             }
             $uri = new PhutilGitURI($this->uri);
             if ($uri->getDomain()) {
                 return $uri->getPath();
             }
             return $this->uri;
         case self::TYPE_SVN:
         case self::TYPE_MERCURIAL:
             $uri = new PhutilURI($this->uri);
             if ($uri->getProtocol()) {
                 return $uri->getPath();
             }
             return $this->uri;
     }
 }
 public static function getRemoteURIProtocol($raw_uri)
 {
     $uri = new PhutilURI($raw_uri);
     if ($uri->getProtocol()) {
         return strtolower($uri->getProtocol());
     }
     $git_uri = new PhutilGitURI($raw_uri);
     if (strlen($git_uri->getDomain()) && strlen($git_uri->getPath())) {
         return 'ssh';
     }
     return null;
 }
 private function getRemoteURIUser($raw_uri)
 {
     $uri = new PhutilURI($raw_uri);
     if ($uri->getUser()) {
         return $uri->getUser();
     }
     $git_uri = new PhutilGitURI($raw_uri);
     if (strlen($git_uri->getDomain()) && strlen($git_uri->getPath())) {
         return $git_uri->getUser();
     }
     return null;
 }
 private static function getPathFromGitURI($raw_uri)
 {
     $uri = new PhutilURI($raw_uri);
     if ($uri->getProtocol()) {
         return $uri->getPath();
     }
     $uri = new PhutilGitURI($raw_uri);
     if ($uri->getDomain()) {
         return $uri->getPath();
     }
     return $raw_uri;
 }