github.com/mboersma/deis@v1.13.4/tests/auth_test.go (about)

     1  // +build integration
     2  
     3  package tests
     4  
     5  import (
     6  	"testing"
     7  
     8  	"github.com/deis/deis/tests/utils"
     9  )
    10  
    11  var (
    12  	authLoginCmd         = "auth:login http://deis.{{.Domain}} --username={{.UserName}} --password={{.Password}}"
    13  	authLogoutCmd        = "auth:logout"
    14  	authRegisterCmd      = "auth:register http://deis.{{.Domain}} --username={{.UserName}} --password={{.Password}} --email={{.Email}}"
    15  	authCancelCmd        = "auth:cancel --username={{.UserName}} --password={{.Password}} --yes"
    16  	authCancelAdminCmd   = "auth:cancel --username={{.UserName}} --yes"
    17  	authRegenerateCmd    = "auth:regenerate"
    18  	authRegenerateUsrCmd = "auth:regenerate -u {{.UserName}}"
    19  	authRegenerateAllCmd = "auth:regenerate --all"
    20  	checkTokenCmd        = "apps:list"
    21  	authPasswdCmd        = "auth:passwd --username={{.UserName}} --password={{.Password}} --new-password={{.NewPassword}}"
    22  	authWhoamiCmd        = "auth:whoami"
    23  )
    24  
    25  func TestAuth(t *testing.T) {
    26  	params := authSetup(t)
    27  	authRegisterTest(t, params)
    28  	authLogoutTest(t, params)
    29  	authRegenerateTest(t)
    30  	authLoginTest(t, params)
    31  	authWhoamiTest(t, params)
    32  	authPasswdTest(t, params)
    33  	authCancel(t, params)
    34  }
    35  
    36  func authSetup(t *testing.T) *utils.DeisTestConfig {
    37  	user := utils.GetGlobalConfig()
    38  	user.UserName, user.Password = utils.NewID(), utils.NewID()
    39  	return user
    40  }
    41  
    42  func authCancel(t *testing.T, params *utils.DeisTestConfig) {
    43  	utils.Execute(t, authCancelCmd, params, false, "Account cancelled")
    44  	user := utils.GetGlobalConfig()
    45  
    46  	// Admins can delete other users.
    47  	user.UserName, user.Password = "cancel-test", "test"
    48  	utils.Execute(t, authRegisterCmd, user, false, "")
    49  	admin := utils.GetGlobalConfig()
    50  	utils.Execute(t, authLoginCmd, admin, false, "")
    51  	utils.Execute(t, authCancelAdminCmd, user, false, "Account cancelled")
    52  	// Make sure the user's config was not purged after auth:cancel --username
    53  	utils.Execute(t, authWhoamiCmd, admin, false, "You are "+admin.UserName)
    54  }
    55  
    56  func authLoginTest(t *testing.T, params *utils.DeisTestConfig) {
    57  	cmd := authLoginCmd
    58  	utils.Execute(t, cmd, params, false, "")
    59  	params = authSetup(t)
    60  	utils.Execute(t, cmd, params, true, "400 BAD REQUEST")
    61  }
    62  
    63  func authLogoutTest(t *testing.T, params *utils.DeisTestConfig) {
    64  	utils.Execute(t, authLogoutCmd, params, false, "")
    65  }
    66  
    67  func authPasswdTest(t *testing.T, params *utils.DeisTestConfig) {
    68  	password := "aNewPassword"
    69  	params.NewPassword = password
    70  	cmd := authPasswdCmd
    71  	utils.Execute(t, cmd, params, false, "")
    72  	params.Password = "wrong-password"
    73  	utils.Execute(t, cmd, params, true, "Password change failed")
    74  
    75  	cmd = authLoginCmd
    76  	utils.Execute(t, cmd, params, true, "400 BAD REQUEST")
    77  	params.Password = password
    78  	utils.Execute(t, cmd, params, false, "")
    79  }
    80  
    81  func authRegisterTest(t *testing.T, params *utils.DeisTestConfig) {
    82  	cmd := authRegisterCmd
    83  	utils.Execute(t, cmd, params, false, "")
    84  	utils.Execute(t, cmd, params, true, "Registration failed")
    85  }
    86  
    87  func authWhoamiTest(t *testing.T, params *utils.DeisTestConfig) {
    88  	utils.Execute(t, "auth:whoami", params, true, params.UserName)
    89  }
    90  
    91  func authRegenerateTest(t *testing.T) {
    92  	params := utils.GetGlobalConfig()
    93  	regenCmd := authRegenerateUsrCmd
    94  	loginCmd := authLoginCmd
    95  
    96  	utils.Execute(t, loginCmd, params, false, "")
    97  	utils.Execute(t, authRegenerateCmd, params, false, "")
    98  	utils.Execute(t, loginCmd, params, false, "")
    99  	utils.Execute(t, regenCmd, params, false, "")
   100  	utils.Execute(t, checkTokenCmd, params, true, "401 UNAUTHORIZED")
   101  	utils.Execute(t, loginCmd, params, false, "")
   102  	utils.Execute(t, authRegenerateAllCmd, params, false, "")
   103  	utils.Execute(t, checkTokenCmd, params, true, "401 UNAUTHORIZED")
   104  }