/** * @dataProvider getInitializeUrls */ public function testInitialize($url, $apiUrl) { // @link http://doc.gitlab.com/ce/api/projects.html#get-single-project $projectData = <<<JSON { "id": 17, "default_branch": "mymaster", "http_url_to_repo": "https://gitlab.com/mygroup/myproject.git", "ssh_url_to_repo": "git@gitlab.com:mygroup/myproject.git", "last_activity_at": "2014-12-01T09:17:51.000+01:00", "name": "My Project", "name_with_namespace": "My Group / My Project", "path": "myproject", "path_with_namespace": "mygroup/myproject", "web_url": "https://gitlab.com/mygroup/myproject" } JSON; $this->remoteFilesystem->getContents('gitlab.com', $apiUrl, false)->willReturn($projectData)->shouldBeCalledTimes(1); $driver = new GitLabDriver(array('url' => $url), $this->io->reveal(), $this->config, $this->process->reveal(), $this->remoteFilesystem->reveal()); $driver->initialize(); $this->assertEquals($apiUrl, $driver->getApiUrl(), 'API URL is derived from the repository URL'); $this->assertEquals('mymaster', $driver->getRootIdentifier(), 'Root identifier is the default branch in GitLab'); $this->assertEquals('git@gitlab.com:mygroup/myproject.git', $driver->getRepositoryUrl(), 'The repository URL is the SSH one by default'); $this->assertEquals('https://gitlab.com/mygroup/myproject', $driver->getUrl()); return $driver; }
public function testGitlabSubDirectory() { $url = 'https://mycompany.com/gitlab/mygroup/myproject'; $apiUrl = 'https://mycompany.com/gitlab/api/v3/projects/mygroup%2Fmyproject'; $driver = new GitLabDriver(array('url' => $url), $this->io->reveal(), $this->config, $this->process->reveal(), $this->remoteFilesystem->reveal()); $driver->initialize(); $this->assertEquals($apiUrl, $driver->getApiUrl(), 'API URL is derived from the repository URL'); }