// Test that the login falls back to a passphrase login if pubkey // login fails. func TestLoginWithPromptPassphrase(t *testing.T) { tc := SetupEngineTest(t, "login with prompt (passphrase)") defer tc.Cleanup() fu := CreateAndSignupFakeUser(tc, "lwpp") Logout(tc) mockGetKeybasePassphrase := &GetKeybasePassphraseMock{ Passphrase: fu.Passphrase, } if err := tc.G.LoginState().LoginWithPrompt("", nil, mockGetKeybasePassphrase, nil); err != nil { t.Error(err) } if !mockGetKeybasePassphrase.Called { t.Errorf("secretUI.GetKeybasePassphrase() unexpectedly not called") } Logout(tc) mockGetKeybasePassphrase.Called = false if err := tc.G.LoginState().LoginWithPrompt(fu.Username, nil, mockGetKeybasePassphrase, nil); err != nil { t.Error(err) } mockGetKeybasePassphrase.CheckLastErr(t) if !mockGetKeybasePassphrase.Called { t.Errorf("secretUI.GetKeybasePassphrase() unexpectedly not called") } Logout(tc) // Clear out the username stored in G.Env. // TODO: Figure out a cleaner way to do this. tc.G.Env = libkb.NewEnv(nil, nil) mockGetUsername := &GetUsernameMock{ Username: fu.Username, } mockGetKeybasePassphrase.Called = false if err := tc.G.LoginState().LoginWithPrompt("", mockGetUsername, mockGetKeybasePassphrase, nil); err != nil { t.Error(err) } mockGetUsername.CheckLastErr(t) mockGetKeybasePassphrase.CheckLastErr(t) if !mockGetUsername.Called { t.Errorf("loginUI.GetEmailOrUsername() unexpectedly not called") } if !mockGetKeybasePassphrase.Called { t.Errorf("secretUI.GetKeybasePassphrase() unexpectedly not called") } }
func setupServiceTest(tb testing.TB) { // This is an empty environment libkb.G.Env = libkb.NewEnv(nil, nil) }