public void ShowsHelpfulTooltipWhenForbiddenResponseReceived()
        {
            var response = Substitute.For <IResponse>();

            response.StatusCode.Returns(HttpStatusCode.Forbidden);
            var repositoryHosts = Substitute.For <IRepositoryHosts>();

            repositoryHosts.LogIn(HostAddress.GitHubDotComHostAddress, Args.String, Args.String)
            .Returns(_ => Observable.Throw <AuthenticationResult>(new ForbiddenException(response)));
            var browser        = Substitute.For <IVisualStudioBrowser>();
            var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);
            var message        = "";

            using (UserError.RegisterHandler <UserError>(x =>
            {
                message = x.ErrorMessage;
                return(Observable.Return(RecoveryOptionResult.RetryOperation));
            }))
            {
                loginViewModel.Login.Execute(null);
            }

            Assert.Equal("Make sure to use your password and not a Personal Access token to log in.",
                         message);
        }
Beispiel #2
0
        public void LaunchesBrowserToForgotPasswordPage()
        {
            var repositoryHosts = Substitute.For <IRepositoryHosts>();
            var gitHubHost      = Substitute.For <IRepositoryHost>();

            gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress);
            repositoryHosts.GitHubHost.Returns(gitHubHost);
            var browser        = Substitute.For <IVisualStudioBrowser>();
            var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);

            loginViewModel.NavigateForgotPassword.Execute(null);

            browser.Received().OpenUrl(new Uri(HostAddress.GitHubDotComHostAddress.WebUri, GitHubUrls.ForgotPasswordPath));
        }
Beispiel #3
0
        public void LaunchesBrowserToSignUpPage()
        {
            var repositoryHosts = Substitute.For <IRepositoryHosts>();
            var gitHubHost      = Substitute.For <IRepositoryHost>();

            gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress);
            repositoryHosts.GitHubHost.Returns(gitHubHost);
            var browser        = Substitute.For <IVisualStudioBrowser>();
            var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);

            loginViewModel.SignUp.Execute(null);

            browser.Received().OpenUrl(GitHubUrls.Plans);
        }
Beispiel #4
0
        public void ShowsHelpfulTooltipWhenForbiddenResponseReceived()
        {
            var response = Substitute.For <IResponse>();

            response.StatusCode.Returns(HttpStatusCode.Forbidden);
            var repositoryHosts = Substitute.For <IRepositoryHosts>();

            repositoryHosts.LogIn(HostAddress.GitHubDotComHostAddress, Args.String, Args.String)
            .Returns(_ => Observable.Throw <AuthenticationResult>(new ForbiddenException(response)));
            var browser        = Substitute.For <IVisualStudioBrowser>();
            var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);

            loginViewModel.Login.Execute(null);

            Assert.True(loginViewModel.ShowLogInFailedError);
            Assert.Equal("Make sure to use your password and not a Personal Access token to log in.",
                         loginViewModel.LoginFailedMessage);
        }