Search in sources :

Example 6 with OAuthStatus

use of org.eclipse.che.security.oauth.OAuthStatus in project che by eclipse.

the class GitHubAuthenticatorImplTest method onAuthenticatedWhenGenerateKeysIsNotSelected.

@Test
public void onAuthenticatedWhenGenerateKeysIsNotSelected() throws Exception {
    String userId = "userId";
    OAuthStatus authStatus = mock(OAuthStatus.class);
    CurrentUser user = mock(CurrentUser.class);
    ProfileDto profile = mock(ProfileDto.class);
    when(view.isGenerateKeysSelected()).thenReturn(false);
    when(appContext.getCurrentUser()).thenReturn(user);
    when(user.getProfile()).thenReturn(profile);
    when(profile.getUserId()).thenReturn(userId);
    gitHubAuthenticator.authenticate(null, getCallBack());
    gitHubAuthenticator.onAuthenticated(authStatus);
    verify(view).isGenerateKeysSelected();
    verifyNoMoreInteractions(registry);
}
Also used : CurrentUser(org.eclipse.che.ide.api.app.CurrentUser) Matchers.anyString(org.mockito.Matchers.anyString) OAuthStatus(org.eclipse.che.security.oauth.OAuthStatus) ProfileDto(org.eclipse.che.api.user.shared.dto.ProfileDto) Test(org.junit.Test)

Example 7 with OAuthStatus

use of org.eclipse.che.security.oauth.OAuthStatus in project che by eclipse.

the class GitHubAuthenticatorImplTest method onAuthenticatedWhenGenerateKeysIsSuccess.

@Test
public void onAuthenticatedWhenGenerateKeysIsSuccess() throws Exception {
    String userId = "userId";
    OAuthStatus authStatus = mock(OAuthStatus.class);
    SshKeyUploader keyProvider = mock(SshKeyUploader.class);
    CurrentUser user = mock(CurrentUser.class);
    ProfileDto profile = mock(ProfileDto.class);
    when(view.isGenerateKeysSelected()).thenReturn(true);
    when(registry.getUploader(GITHUB_HOST)).thenReturn(keyProvider);
    when(appContext.getCurrentUser()).thenReturn(user);
    when(user.getProfile()).thenReturn(profile);
    when(profile.getUserId()).thenReturn(userId);
    gitHubAuthenticator.authenticate(null, getCallBack());
    gitHubAuthenticator.onAuthenticated(authStatus);
    verify(keyProvider).uploadKey(eq(userId), generateKeyCallbackCaptor.capture());
    AsyncCallback<Void> generateKeyCallback = generateKeyCallbackCaptor.getValue();
    generateKeyCallback.onSuccess(null);
    verify(view).isGenerateKeysSelected();
    verify(registry).getUploader(eq(GITHUB_HOST));
    verify(appContext).getCurrentUser();
    verify(notificationManager).notify(anyString(), eq(SUCCESS), eq(FLOAT_MODE));
}
Also used : SshKeyUploader(org.eclipse.che.plugin.ssh.key.client.SshKeyUploader) CurrentUser(org.eclipse.che.ide.api.app.CurrentUser) Matchers.anyString(org.mockito.Matchers.anyString) OAuthStatus(org.eclipse.che.security.oauth.OAuthStatus) ProfileDto(org.eclipse.che.api.user.shared.dto.ProfileDto) Test(org.junit.Test)

Example 8 with OAuthStatus

use of org.eclipse.che.security.oauth.OAuthStatus in project che by eclipse.

the class ProjectImporter method authUserAndRecallImport.

private Promise<Project> authUserAndRecallImport(final String providerName, final String authenticateUrl, final Path path, final SourceStorage sourceStorage, final ProjectNotificationSubscriber subscriber) {
    return createFromAsyncRequest(new RequestCall<Project>() {

        @Override
        public void makeCall(final AsyncCallback<Project> callback) {
            OAuth2Authenticator authenticator = oAuth2AuthenticatorRegistry.getAuthenticator(providerName);
            if (authenticator == null) {
                authenticator = oAuth2AuthenticatorRegistry.getAuthenticator("default");
            }
            authenticator.authenticate(OAuth2AuthenticatorUrlProvider.get(appContext.getMasterEndpoint(), authenticateUrl), new AsyncCallback<OAuthStatus>() {

                @Override
                public void onFailure(Throwable caught) {
                    callback.onFailure(new Exception(caught.getMessage()));
                }

                @Override
                public void onSuccess(OAuthStatus result) {
                    if (!result.equals(OAuthStatus.NOT_PERFORMED)) {
                        doImport(path, sourceStorage).then(new Operation<Project>() {

                            @Override
                            public void apply(Project project) throws OperationException {
                                callback.onSuccess(project);
                            }
                        }).catchError(new Operation<PromiseError>() {

                            @Override
                            public void apply(PromiseError error) throws OperationException {
                                callback.onFailure(error.getCause());
                            }
                        });
                    } else {
                        subscriber.onFailure("Authentication cancelled");
                        callback.onFailure(new IllegalStateException("Authentication cancelled"));
                    }
                }
            });
        }
    });
}
Also used : OAuth2Authenticator(org.eclipse.che.ide.api.oauth.OAuth2Authenticator) AsyncCallback(com.google.gwt.user.client.rpc.AsyncCallback) OAuthStatus(org.eclipse.che.security.oauth.OAuthStatus) Operation(org.eclipse.che.api.promises.client.Operation) FunctionException(org.eclipse.che.api.promises.client.FunctionException) OperationException(org.eclipse.che.api.promises.client.OperationException) Project(org.eclipse.che.ide.api.resources.Project) PromiseError(org.eclipse.che.api.promises.client.PromiseError) OperationException(org.eclipse.che.api.promises.client.OperationException)

Aggregations

OAuthStatus (org.eclipse.che.security.oauth.OAuthStatus)8 ProfileDto (org.eclipse.che.api.user.shared.dto.ProfileDto)7 CurrentUser (org.eclipse.che.ide.api.app.CurrentUser)7 Test (org.junit.Test)7 Matchers.anyString (org.mockito.Matchers.anyString)7 SshKeyUploader (org.eclipse.che.plugin.ssh.key.client.SshKeyUploader)4 Promise (org.eclipse.che.api.promises.client.Promise)2 MessageDialog (org.eclipse.che.ide.api.dialogs.MessageDialog)2 Mockito.doAnswer (org.mockito.Mockito.doAnswer)2 InvocationOnMock (org.mockito.invocation.InvocationOnMock)2 Answer (org.mockito.stubbing.Answer)2 AsyncCallback (com.google.gwt.user.client.rpc.AsyncCallback)1 ArrayList (java.util.ArrayList)1 FunctionException (org.eclipse.che.api.promises.client.FunctionException)1 Operation (org.eclipse.che.api.promises.client.Operation)1 OperationException (org.eclipse.che.api.promises.client.OperationException)1 PromiseError (org.eclipse.che.api.promises.client.PromiseError)1 SshPairDto (org.eclipse.che.api.ssh.shared.dto.SshPairDto)1 OAuth2Authenticator (org.eclipse.che.ide.api.oauth.OAuth2Authenticator)1 Project (org.eclipse.che.ide.api.resources.Project)1