github.com/kotovmak/go-admin@v1.1.1/tests/common/permission.go (about) 1 package common 2 3 import ( 4 "fmt" 5 "net/http" 6 7 "github.com/gavv/httpexpect" 8 "github.com/kotovmak/go-admin/modules/config" 9 "github.com/kotovmak/go-admin/plugins/admin/modules/constant" 10 "github.com/kotovmak/go-admin/plugins/admin/modules/form" 11 ) 12 13 func permissionTest(e *httpexpect.Expect, sesID *http.Cookie) { 14 15 fmt.Println() 16 printlnWithColor("Permission", "blue") 17 fmt.Println("============================") 18 19 // show 20 21 printlnWithColor("show", "green") 22 e.GET(config.Url("/info/permission")). 23 WithCookie(sesID.Name, sesID.Value). 24 Expect(). 25 Status(200). 26 Body().Contains("Dashboard").Contains("All permission") 27 28 // show new form 29 30 printlnWithColor("show new form", "green") 31 formBody := e.GET(config.Url("/info/permission/new")). 32 WithCookie(sesID.Name, sesID.Value). 33 Expect().Status(200).Body() 34 35 token := reg.FindStringSubmatch(formBody.Raw()) 36 37 // new permission tester 38 39 printlnWithColor("new permission test", "green") 40 res := e.POST(config.Url("/new/permission")). 41 WithCookie(sesID.Name, sesID.Value). 42 WithMultipart(). 43 WithFormField("http_method[]", "GET"). 44 WithForm(map[string]interface{}{ 45 "name": "tester", 46 "slug": "tester", 47 "http_path": `/ 48 /admin/info/op`, 49 form.PreviousKey: config.Url("/info/permission?__page=1&__pageSize=10&__sort=id&__sort_type=desc"), 50 form.TokenKey: token[1], 51 }).Expect().Status(200) 52 res.Header("X-Pjax-Url").Contains(config.Url("/info/")) 53 res.Body().Contains("tester").Contains("GET") 54 55 // show form: without id 56 57 //printlnWithColor("show form: without id", "green") 58 //e.GET(config.Url("/info/permission/edit")). 59 // WithCookie(sesID.Name, sesID.Value). 60 // Expect().Status(200).Body().Contains(errors.WrongID) 61 62 // show form 63 64 printlnWithColor("show form", "green") 65 formBody = e.GET(config.Url("/info/permission/edit")). 66 WithQuery(constant.EditPKKey, "3"). 67 WithCookie(sesID.Name, sesID.Value). 68 Expect().Status(200).Body() 69 70 token = reg.FindStringSubmatch(formBody.Raw()) 71 72 // edit form 73 74 printlnWithColor("edit form", "green") 75 res = e.POST(config.Url("/edit/permission")). 76 WithCookie(sesID.Name, sesID.Value). 77 WithMultipart(). 78 WithFormField("http_method[]", "GET"). 79 WithFormField("http_method[]", "POST"). 80 WithForm(map[string]interface{}{ 81 "name": "tester", 82 "slug": "tester", 83 "http_path": `/ 84 /admin/info/op`, 85 form.PreviousKey: config.Url("/info/permission?__page=1&__pageSize=10&__sort=id&__sort_type=desc"), 86 form.TokenKey: token[1], 87 "id": "3", 88 }).Expect().Status(200) 89 res.Header("X-Pjax-Url").Contains(config.Url("/info/")) 90 res.Body().Contains("tester").Contains("GET,POST") 91 92 // show new form 93 94 printlnWithColor("show new form", "green") 95 formBody = e.GET(config.Url("/info/permission/new")). 96 WithCookie(sesID.Name, sesID.Value). 97 Expect().Status(200).Body() 98 99 token = reg.FindStringSubmatch(formBody.Raw()) 100 101 // new tester2 102 103 printlnWithColor("new tester2", "green") 104 e.POST(config.Url("/new/permission")). 105 WithCookie(sesID.Name, sesID.Value). 106 WithMultipart(). 107 WithFormField("http_method[]", "GET"). 108 WithForm(map[string]interface{}{ 109 "name": "tester2", 110 "slug": "tester2", 111 "http_path": `/ 112 /admin/info/op`, 113 form.PreviousKey: config.Url("/info/permission?__page=1&__pageSize=10&__sort=id&__sort_type=desc"), 114 form.TokenKey: token[1], 115 }).Expect().Status(200) 116 117 // delete tester2 118 119 printlnWithColor("delete permission tester2", "green") 120 e.POST(config.Url("/delete/permission")). 121 WithCookie(sesID.Name, sesID.Value). 122 WithMultipart(). 123 WithFormField("id", "4"). 124 Expect().Status(200).JSON().Object(). 125 ValueEqual("code", 200). 126 ValueEqual("msg", "ok") 127 }