use of io.pivotal.cla.data.User in project pivotal-cla by pivotalsoftware.
the class AccessDeniedTests method adminForbiddenForUserRequestedAdmin.
@Test
@WithSigningUser(requestedAdmin = true)
public void adminForbiddenForUserRequestedAdmin() throws Exception {
User user = WithSigningUserFactory.create();
when(mockClaRepository.findByNameAndPrimaryTrue(cla.getName())).thenReturn(cla);
when(mockGitHub.getCurrentUser(any(CurrentUserRequest.class))).thenReturn(user);
String url = AdminLinkClaPage.url();
mockMvc.perform(get(url)).andExpect(status().isForbidden());
}
use of io.pivotal.cla.data.User in project pivotal-cla by pivotalsoftware.
the class AuthenticationTests method savedRequestUsed.
@Test
public void savedRequestUsed() throws Exception {
User user = WithAdminUserFactory.create();
when(mockGitHub.getCurrentUser(any(CurrentUserRequest.class))).thenReturn(user);
when(mockClaRepository.findAll()).thenReturn(Arrays.asList(cla));
AdminLinkClaPage page = AdminLinkClaPage.to(getDriver());
page.assertAt();
}
use of io.pivotal.cla.data.User in project pivotal-cla by pivotalsoftware.
the class AuthenticationTests method authenticateAdmin.
@Test
public void authenticateAdmin() throws Exception {
User user = WithAdminUserFactory.create();
when(mockGitHub.getCurrentUser(any(CurrentUserRequest.class))).thenReturn(user);
AdminLinkClaPage admin = AdminLinkClaPage.to(driver);
admin.assertAt();
ArgumentCaptor<CurrentUserRequest> userCaptor = ArgumentCaptor.forClass(CurrentUserRequest.class);
verify(mockGitHub).getCurrentUser(userCaptor.capture());
CurrentUserRequest userRequest = userCaptor.getValue();
OAuthAccessTokenParams oauthParams = userRequest.getOauthParams();
assertThat(userRequest.isRequestAdminAccess()).isTrue();
assertThat(oauthParams.getCallbackUrl()).isEqualTo("https://localhost/login/oauth2/github");
assertThat(oauthParams.getCode()).isEqualTo("abc");
}
use of io.pivotal.cla.data.User in project pivotal-cla by pivotalsoftware.
the class ClaControllerTests method viewSignedWithRepositoryIdAndPullRequestIdNewUser.
@Test
@WithAnonymousUser
public void viewSignedWithRepositoryIdAndPullRequestIdNewUser() throws Exception {
String repositoryId = "spring-projects/spring-security";
User signingUser = WithSigningUserFactory.create();
when(mockGitHub.getCurrentUser(any())).thenReturn(signingUser);
when(mockGitHub.getShaForPullRequest(any(PullRequestStatus.class))).thenReturn("abc123");
when(mockIndividualSignatureRepository.findSignaturesFor(any(), eq(signingUser), eq(cla.getName()))).thenReturn(Arrays.asList(individualSignature));
when(mockIndividualSignatureRepository.findSignaturesFor(any(), eq(signingUser))).thenReturn(Arrays.asList(individualSignature));
when(mockTokenRepo.findOne(repositoryId)).thenReturn(new AccessToken(repositoryId, "access-token-123"));
int pullRequestId = 123;
SignClaPage home = SignClaPage.go(driver, cla.getName(), repositoryId, pullRequestId);
home.assertAt();
home.assertClaLinksWithPullRequest(cla.getName(), repositoryId, pullRequestId);
home.assertPullRequestLink(repositoryId, pullRequestId);
home.assertImported();
ArgumentCaptor<PullRequestStatus> updatePullRequestCaptor = ArgumentCaptor.forClass(PullRequestStatus.class);
verify(mockGitHub).save(updatePullRequestCaptor.capture());
PullRequestStatus updatePr = updatePullRequestCaptor.getValue();
String commitStatusUrl = "http://localhost/sign/" + cla.getName() + "?repositoryId=" + repositoryId + "&pullRequestId=" + pullRequestId;
assertThat(updatePr.getUrl()).isEqualTo(commitStatusUrl);
assertThat(updatePr.getGitHubUsername()).isEqualTo(signingUser.getGitHubLogin());
assertThat(updatePr.getPullRequestId()).isEqualTo(pullRequestId);
assertThat(updatePr.getRepoId()).isEqualTo(repositoryId);
}
use of io.pivotal.cla.data.User in project pivotal-cla by pivotalsoftware.
the class AdminLinkClaTests method linkClaRepositories.
@Test
@SuppressWarnings("unchecked")
public void linkClaRepositories() throws Exception {
AccessToken token = new AccessToken(AccessToken.CLA_ACCESS_TOKEN_ID, "linkClaValidationRepositories_access_token_abc123");
when(mockTokenRepo.findOne(AccessToken.CLA_ACCESS_TOKEN_ID)).thenReturn(token);
when(mockGitHub.getContributingUrls(anyList())).thenReturn(new ContributingUrlsResponse());
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
AdminLinkClaPage link = AdminLinkClaPage.to(getDriver());
link = link.link("test/this", cla.getName(), AdminLinkClaPage.class);
link.assertRepositories().hasNoErrors();
link.assertClaName().hasNoErrors();
ArgumentCaptor<CreatePullRequestHookRequest> requestCaptor = ArgumentCaptor.forClass(CreatePullRequestHookRequest.class);
verify(mockGitHub).createPullRequestHooks(requestCaptor.capture());
CreatePullRequestHookRequest request = requestCaptor.getValue();
assertThat(request.getAccessToken()).isEqualTo(user.getAccessToken());
assertThat(request.getRepositoryIds()).containsOnly("test/this");
assertThat(request.getGitHubEventUrl()).isEqualTo("http://localhost/github/hooks/pull_request/" + cla.getName());
assertThat(request.getSecret()).isEqualTo(token.getToken());
assertThat(driver.getPageSource()).doesNotContain(token.getToken());
ArgumentCaptor<AccessToken> tokenCaptor = ArgumentCaptor.forClass(AccessToken.class);
verify(mockTokenRepo).save(tokenCaptor.capture());
AccessToken savedToken = tokenCaptor.getValue();
assertThat(savedToken.getId()).isEqualTo("test/this");
assertThat(savedToken.getToken()).isEqualTo(user.getAccessToken());
PullRequestStatus expectedStatus = new PullRequestStatus();
expectedStatus.setAccessToken("access-token-123");
expectedStatus.setGitHubUsername("username");
expectedStatus.setPullRequestId(1);
expectedStatus.setRepoId("repo");
expectedStatus.setSha("12345678");
expectedStatus.setUrl("https://cla.pivotal.io/sign/pivotal");
when(mockGitHub.createUpdatePullRequestStatuses(any())).thenReturn(Arrays.asList(expectedStatus));
link = link.migrate();
ArgumentCaptor<PullRequestStatus> statusCaptor = ArgumentCaptor.forClass(PullRequestStatus.class);
verify(mockGitHub).save(statusCaptor.capture());
PullRequestStatus status = statusCaptor.getValue();
assertThat(status.getAccessToken()).isEqualTo(expectedStatus.getAccessToken());
assertThat(status.getGitHubUsername()).isEqualTo(expectedStatus.getGitHubUsername());
assertThat(status.getPullRequestId()).isEqualTo(expectedStatus.getPullRequestId());
assertThat(status.getRepoId()).isEqualTo(expectedStatus.getRepoId());
assertThat(status.getSha()).isEqualTo(expectedStatus.getSha());
assertThat(status.getSuccess()).isFalse();
assertThat(status.getUrl()).isEqualTo(expectedStatus.getUrl());
}
Aggregations