github.com/gogf/gf@v1.16.9/net/ghttp/ghttp_unit_cookie_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 package ghttp_test 8 9 import ( 10 "fmt" 11 "net/http" 12 "testing" 13 "time" 14 15 "github.com/gogf/gf/frame/g" 16 "github.com/gogf/gf/net/ghttp" 17 "github.com/gogf/gf/test/gtest" 18 ) 19 20 func Test_Cookie(t *testing.T) { 21 p, _ := ports.PopRand() 22 s := g.Server(p) 23 s.BindHandler("/set", func(r *ghttp.Request) { 24 r.Cookie.Set(r.GetString("k"), r.GetString("v")) 25 }) 26 s.BindHandler("/get", func(r *ghttp.Request) { 27 r.Response.Write(r.Cookie.Get(r.GetString("k"))) 28 }) 29 s.BindHandler("/remove", func(r *ghttp.Request) { 30 r.Cookie.Remove(r.GetString("k")) 31 }) 32 s.SetPort(p) 33 s.SetDumpRouterMap(false) 34 s.Start() 35 defer s.Shutdown() 36 37 time.Sleep(100 * time.Millisecond) 38 gtest.C(t, func(t *gtest.T) { 39 client := g.Client() 40 client.SetBrowserMode(true) 41 client.SetPrefix(fmt.Sprintf("http://127.0.0.1:%d", p)) 42 r1, e1 := client.Get("/set?k=key1&v=100") 43 if r1 != nil { 44 defer r1.Close() 45 } 46 47 t.Assert(e1, nil) 48 t.Assert(r1.ReadAllString(), "") 49 50 t.Assert(client.GetContent("/set?k=key2&v=200"), "") 51 52 t.Assert(client.GetContent("/get?k=key1"), "100") 53 t.Assert(client.GetContent("/get?k=key2"), "200") 54 t.Assert(client.GetContent("/get?k=key3"), "") 55 t.Assert(client.GetContent("/remove?k=key1"), "") 56 t.Assert(client.GetContent("/remove?k=key3"), "") 57 t.Assert(client.GetContent("/remove?k=key4"), "") 58 t.Assert(client.GetContent("/get?k=key1"), "") 59 t.Assert(client.GetContent("/get?k=key2"), "200") 60 }) 61 } 62 63 func Test_SetHttpCookie(t *testing.T) { 64 p, _ := ports.PopRand() 65 s := g.Server(p) 66 s.BindHandler("/set", func(r *ghttp.Request) { 67 r.Cookie.SetHttpCookie(&http.Cookie{ 68 Name: r.GetString("k"), 69 Value: r.GetString("v"), 70 }) 71 }) 72 s.BindHandler("/get", func(r *ghttp.Request) { 73 r.Response.Write(r.Cookie.Get(r.GetString("k"))) 74 }) 75 s.BindHandler("/remove", func(r *ghttp.Request) { 76 r.Cookie.Remove(r.GetString("k")) 77 }) 78 s.SetPort(p) 79 s.SetDumpRouterMap(false) 80 s.Start() 81 defer s.Shutdown() 82 83 time.Sleep(100 * time.Millisecond) 84 gtest.C(t, func(t *gtest.T) { 85 client := g.Client() 86 client.SetBrowserMode(true) 87 client.SetPrefix(fmt.Sprintf("http://127.0.0.1:%d", p)) 88 r1, e1 := client.Get("/set?k=key1&v=100") 89 if r1 != nil { 90 defer r1.Close() 91 } 92 t.Assert(e1, nil) 93 t.Assert(r1.ReadAllString(), "") 94 95 t.Assert(client.GetContent("/set?k=key2&v=200"), "") 96 97 t.Assert(client.GetContent("/get?k=key1"), "100") 98 //t.Assert(client.GetContent("/get?k=key2"), "200") 99 //t.Assert(client.GetContent("/get?k=key3"), "") 100 //t.Assert(client.GetContent("/remove?k=key1"), "") 101 //t.Assert(client.GetContent("/remove?k=key3"), "") 102 //t.Assert(client.GetContent("/remove?k=key4"), "") 103 //t.Assert(client.GetContent("/get?k=key1"), "") 104 //t.Assert(client.GetContent("/get?k=key2"), "200") 105 }) 106 }