github.com/greenboxal/deis@v1.12.1/tests/perms_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 permsListAppCmd = "perms:list --app={{.AppName}}" 13 permsListAdminCmd = "perms:list --admin" 14 permsCreateAppCmd = "perms:create {{.AppUser}} --app={{.AppName}}" 15 permsCreateAdminCmd = "perms:create {{.AppUser}} --admin" 16 permsDeleteAppCmd = "perms:delete {{.AppUser}} --app={{.AppName}}" 17 permsDeleteAdminCmd = "perms:delete {{.AppUser}} --admin" 18 ) 19 20 func TestPerms(t *testing.T) { 21 params := permsSetup(t) 22 user := utils.GetGlobalConfig() 23 user.UserName, user.Password = "test1", "test1" 24 user.AppName = params.AppName 25 utils.Execute(t, authRegisterCmd, user, false, "") 26 permsCreateAppTest(t, params, user) 27 permsDeleteAppTest(t, params, user) 28 permsCreateAdminTest(t, params) 29 permsDeleteAdminTest(t, params) 30 utils.AppsDestroyTest(t, params) 31 } 32 33 func permsSetup(t *testing.T) *utils.DeisTestConfig { 34 cfg := utils.GetGlobalConfig() 35 cfg.AppName = "permssample" 36 utils.Execute(t, authLoginCmd, cfg, false, "") 37 utils.Execute(t, gitCloneCmd, cfg, false, "") 38 if err := utils.Chdir(cfg.ExampleApp); err != nil { 39 t.Fatal(err) 40 } 41 utils.Execute(t, appsCreateCmd, cfg, false, "") 42 utils.Execute(t, gitPushCmd, cfg, false, "") 43 if err := utils.Chdir(".."); err != nil { 44 t.Fatal(err) 45 } 46 return cfg 47 } 48 49 func permsCreateAdminTest(t *testing.T, params *utils.DeisTestConfig) { 50 utils.Execute(t, permsCreateAdminCmd, params, false, "") 51 utils.CheckList(t, permsListAdminCmd, params, "test1", false) 52 } 53 54 func permsCreateAppTest(t *testing.T, params, user *utils.DeisTestConfig) { 55 utils.Execute(t, authLoginCmd, user, false, "") 56 utils.Execute(t, permsCreateAppCmd, user, true, "403 FORBIDDEN") 57 utils.Execute(t, authLoginCmd, params, false, "") 58 utils.Execute(t, permsCreateAppCmd, params, false, "") 59 utils.CheckList(t, permsListAppCmd, params, "test1", false) 60 } 61 62 func permsDeleteAdminTest(t *testing.T, params *utils.DeisTestConfig) { 63 utils.Execute(t, permsDeleteAdminCmd, params, false, "") 64 utils.CheckList(t, permsListAdminCmd, params, "test1", true) 65 } 66 67 func permsDeleteAppTest(t *testing.T, params, user *utils.DeisTestConfig) { 68 utils.Execute(t, authLoginCmd, user, false, "") 69 utils.Execute(t, permsDeleteAppCmd, user, false, "") 70 utils.Execute(t, authLoginCmd, params, false, "") 71 utils.CheckList(t, permsListAppCmd, params, "test1", true) 72 }