/** * Test get contributor */ public function testGetContributor() { /* @var $user1 User */ $user1 = $this->getModule('Yii2')->grabFixture('users', 'activeUser1'); /* @var $user2 User */ $user2 = $this->getModule('Yii2')->grabFixture('users', 'activeUser2'); foreach ($user1->accounts as $account) { $contributor = $this->contributorApi->getContributor($account->type, $account->username); $this->assertEquals($contributor->getId(), $user1->id); $this->assertEquals($contributor->getContributorEmail(), $user1->email); } foreach ($user2->accounts as $account) { $contributor = $this->contributorApi->getContributor($account->type, $account->username); $this->assertInstanceOf(ContributorInterface::class, $contributor); $this->assertEquals($contributor->getId(), $user2->id); $this->assertEquals($contributor->getContributorEmail(), $user2->email); } // test unregistered contributor foreach ([UserAccount::TYPE_GIT, UserAccount::TYPE_HG, UserAccount::TYPE_SVN] as $type) { $username = '******' . $type; $useremail = 'unregistered user email' . $type; $contributor = $this->contributorApi->getContributor($type, $username, $useremail); $this->assertInstanceOf(UnregisteredContributor::className(), $contributor); $this->assertEquals($username, $contributor->getContributorName()); $this->assertEquals($useremail, $contributor->getContributorEmail()); $this->assertNull($contributor->getDefaultViewerId()); $this->assertNull($contributor->getContributorId()); $this->assertNull($contributor->getAvatarUrl()); } }
/** * Test unknown contributor avatar */ public function testWithUnknownContributor() { $contributor = $this->contributorApi->getContributor('git', 'Test contributor'); $this->assertInstanceOf(UnregisteredContributor::className(), $contributor); $expectedString = '<span class="avatar avatar-test-avatar-size"></span>'; $expectedDom = new DOMDocument(); $expectedDom->loadXML($expectedString); $result = ContributorAvatar::widget(['contributor' => $contributor, 'size' => 'test-avatar-size', 'asBlock' => false]); $resultDom = new DOMDocument(); $resultDom->loadXML($result); $this->assertEqualXMLStructure($expectedDom->firstChild, $resultDom->firstChild, true); }
/** * Test unknown contributor avatar */ public function testWithUnknownContributor() { $contributor = $this->contributorApi->getContributor('git', 'Test contributor', '*****@*****.**'); $this->assertInstanceOf(UnregisteredContributor::className(), $contributor); $result = ContributorLine::widget(['contributor' => $contributor, 'avatarSize' => 'test-avatar-size', 'showEmail' => true]); $this->assertContains('<span class="avatar avatar-test-avatar-size"></span>', $result); $this->assertContains('Test contributor <test@domain.ltd>', $result); $this->assertContains('Not registered', $result); $result = ContributorLine::widget(['contributor' => $contributor, 'avatarSize' => 'test-avatar-size', 'showEmail' => false]); $this->assertContains('<span class="avatar avatar-test-avatar-size"></span>', $result); $this->assertContains('Test contributor', $result); $this->assertContains('Not registered', $result); $this->assertNotContains('<test@domain.ltd>', $result); }
/** * Test contribution review * * @depends testGetProjectContributions * * @param BaseCommit $commit */ public function testCreateContributionReview(BaseCommit $commit) { /* @var $project Project */ $project = $this->getModule('Yii2')->grabFixture('projects', 'gitProject'); /* @var $reviewer User */ $reviewer = $this->getModule('Yii2')->grabFixture('users', 'activeUser1'); /* @var $contributor User */ $contributor = $this->getModule('Yii2')->grabFixture('users', 'activeUser2'); // create review without users $contributionReview = $this->projectApi->createContributionReview($project, $commit, new UnregisteredContributor()); $this->assertInstanceOf(ContributionReview::className(), $contributionReview); $this->assertInstanceOf(Project::className(), $contributionReview->project); $this->assertEquals($contributionReview->project->id, $project->id); $this->assertNull($contributionReview->reviewer); $this->assertInstanceOf(UnregisteredContributor::className(), $contributionReview->contributor); // check unique $this->assertNull($this->projectApi->createContributionReview($project, $commit, new UnregisteredContributor())); // remove review $this->assertEquals(1, $contributionReview->delete()); // create review with users $contributionReview = $this->projectApi->createContributionReview($project, $commit, $contributor); $this->assertInstanceOf(ContributionReview::className(), $contributionReview); $this->assertInstanceOf(Project::className(), $contributionReview->project); $this->assertEquals($contributionReview->project->id, $project->id); $this->assertNull($contributionReview->reviewer); $this->assertInstanceOf(ContributorInterface::class, $contributionReview->contributor); $this->assertEquals($contributionReview->contributor->id, $contributor->id); $this->assertEquals(1, $contributionReview->delete()); $contributionReview = $this->projectApi->createContributionReview($project, $commit, $contributor, $reviewer); $this->assertInstanceOf(ContributionReview::className(), $contributionReview); $this->assertInstanceOf(Project::className(), $contributionReview->project); $this->assertEquals($contributionReview->project->id, $project->id); $this->assertInstanceOf(ContributorInterface::class, $contributionReview->reviewer); $this->assertEquals($contributionReview->reviewer->id, $reviewer->id); $this->assertInstanceOf(ContributorInterface::class, $contributionReview->contributor); $this->assertEquals($contributionReview->contributor->id, $contributor->id); }