replace zxq.co/ripple/hanayo
This commit is contained in:
219
vendor/github.com/gin-gonic/contrib/sessions/sessions_test.go
generated
vendored
Normal file
219
vendor/github.com/gin-gonic/contrib/sessions/sessions_test.go
generated
vendored
Normal file
@@ -0,0 +1,219 @@
|
||||
package sessions
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type storeFactory func(*testing.T) Store
|
||||
|
||||
const sessionName = "mysession"
|
||||
|
||||
const ok = "ok"
|
||||
|
||||
func sessionGetSet(t *testing.T, newStore storeFactory) {
|
||||
r := gin.Default()
|
||||
r.Use(Sessions(sessionName, newStore(t)))
|
||||
|
||||
r.GET("/set", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
session.Set("key", ok)
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
r.GET("/get", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
if session.Get("key") != ok {
|
||||
t.Error("Session writing failed")
|
||||
}
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
res1 := httptest.NewRecorder()
|
||||
req1, _ := http.NewRequest("GET", "/set", nil)
|
||||
r.ServeHTTP(res1, req1)
|
||||
|
||||
res2 := httptest.NewRecorder()
|
||||
req2, _ := http.NewRequest("GET", "/get", nil)
|
||||
req2.Header.Set("Cookie", res1.Header().Get("Set-Cookie"))
|
||||
r.ServeHTTP(res2, req2)
|
||||
}
|
||||
|
||||
func sessionDeleteKey(t *testing.T, newStore storeFactory) {
|
||||
r := gin.Default()
|
||||
r.Use(Sessions(sessionName, newStore(t)))
|
||||
|
||||
r.GET("/set", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
session.Set("key", ok)
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
r.GET("/delete", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
session.Delete("key")
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
r.GET("/get", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
if session.Get("key") != nil {
|
||||
t.Error("Session deleting failed")
|
||||
}
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
res1 := httptest.NewRecorder()
|
||||
req1, _ := http.NewRequest("GET", "/set", nil)
|
||||
r.ServeHTTP(res1, req1)
|
||||
|
||||
res2 := httptest.NewRecorder()
|
||||
req2, _ := http.NewRequest("GET", "/delete", nil)
|
||||
req2.Header.Set("Cookie", res1.Header().Get("Set-Cookie"))
|
||||
r.ServeHTTP(res2, req2)
|
||||
|
||||
res3 := httptest.NewRecorder()
|
||||
req3, _ := http.NewRequest("GET", "/get", nil)
|
||||
req3.Header.Set("Cookie", res2.Header().Get("Set-Cookie"))
|
||||
r.ServeHTTP(res3, req3)
|
||||
}
|
||||
|
||||
func sessionFlashes(t *testing.T, newStore storeFactory) {
|
||||
r := gin.Default()
|
||||
store := newStore(t)
|
||||
store.Options(Options{
|
||||
Domain: "localhost",
|
||||
})
|
||||
r.Use(Sessions(sessionName, store))
|
||||
|
||||
r.GET("/set", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
session.AddFlash(ok)
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
r.GET("/flash", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
l := len(session.Flashes())
|
||||
if l != 1 {
|
||||
t.Error("Flashes count does not equal 1. Equals ", l)
|
||||
}
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
r.GET("/check", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
l := len(session.Flashes())
|
||||
if l != 0 {
|
||||
t.Error("flashes count is not 0 after reading. Equals ", l)
|
||||
}
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
res1 := httptest.NewRecorder()
|
||||
req1, _ := http.NewRequest("GET", "/set", nil)
|
||||
r.ServeHTTP(res1, req1)
|
||||
|
||||
res2 := httptest.NewRecorder()
|
||||
req2, _ := http.NewRequest("GET", "/flash", nil)
|
||||
req2.Header.Set("Cookie", res1.Header().Get("Set-Cookie"))
|
||||
r.ServeHTTP(res2, req2)
|
||||
|
||||
res3 := httptest.NewRecorder()
|
||||
req3, _ := http.NewRequest("GET", "/check", nil)
|
||||
req3.Header.Set("Cookie", res2.Header().Get("Set-Cookie"))
|
||||
r.ServeHTTP(res3, req3)
|
||||
}
|
||||
|
||||
func sessionClear(t *testing.T, newStore storeFactory) {
|
||||
data := map[string]string{
|
||||
"key": "val",
|
||||
"foo": "bar",
|
||||
}
|
||||
r := gin.Default()
|
||||
store := newStore(t)
|
||||
r.Use(Sessions(sessionName, store))
|
||||
|
||||
r.GET("/set", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
for k, v := range data {
|
||||
session.Set(k, v)
|
||||
}
|
||||
session.Clear()
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
r.GET("/check", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
for k, v := range data {
|
||||
if session.Get(k) == v {
|
||||
t.Fatal("Session clear failed")
|
||||
}
|
||||
}
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
|
||||
res1 := httptest.NewRecorder()
|
||||
req1, _ := http.NewRequest("GET", "/set", nil)
|
||||
r.ServeHTTP(res1, req1)
|
||||
|
||||
res2 := httptest.NewRecorder()
|
||||
req2, _ := http.NewRequest("GET", "/check", nil)
|
||||
req2.Header.Set("Cookie", res1.Header().Get("Set-Cookie"))
|
||||
r.ServeHTTP(res2, req2)
|
||||
}
|
||||
|
||||
func sessionOptions(t *testing.T, newStore storeFactory) {
|
||||
r := gin.Default()
|
||||
store := newStore(t)
|
||||
store.Options(Options{
|
||||
Domain: "localhost",
|
||||
})
|
||||
r.Use(Sessions(sessionName, store))
|
||||
|
||||
r.GET("/domain", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
session.Set("key", ok)
|
||||
session.Options(Options{
|
||||
Path: "/foo/bar/bat",
|
||||
})
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
r.GET("/path", func(c *gin.Context) {
|
||||
session := Default(c)
|
||||
session.Set("key", ok)
|
||||
session.Save()
|
||||
c.String(200, ok)
|
||||
})
|
||||
res1 := httptest.NewRecorder()
|
||||
req1, _ := http.NewRequest("GET", "/domain", nil)
|
||||
r.ServeHTTP(res1, req1)
|
||||
|
||||
res2 := httptest.NewRecorder()
|
||||
req2, _ := http.NewRequest("GET", "/path", nil)
|
||||
r.ServeHTTP(res2, req2)
|
||||
|
||||
s := strings.Split(res1.Header().Get("Set-Cookie"), ";")
|
||||
if s[1] != " Path=/foo/bar/bat" {
|
||||
t.Error("Error writing path with options:", s[1])
|
||||
}
|
||||
|
||||
s = strings.Split(res2.Header().Get("Set-Cookie"), ";")
|
||||
if s[1] != " Domain=localhost" {
|
||||
t.Error("Error writing domain with options:", s[1])
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user