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)); }
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); }
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); }
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 sign in.", message); }