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  }