mirror of
https://github.com/alexedwards/scs.git
synced 2025-07-15 01:04:36 +02:00
[refactor] Use explicit package names for engines
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
package engine
|
||||
package memstore
|
||||
|
||||
import (
|
||||
"errors"
|
||||
@ -9,19 +9,19 @@ import (
|
||||
|
||||
var ErrTypeAssertionFailed = errors.New("type assertion failed: could not convert interface{} to []byte")
|
||||
|
||||
func New() *engine {
|
||||
return &engine{
|
||||
func New() *memstore {
|
||||
return &memstore{
|
||||
// Clear up expired items once every minute
|
||||
cache.New(cache.DefaultExpiration, time.Minute),
|
||||
}
|
||||
}
|
||||
|
||||
type engine struct {
|
||||
type memstore struct {
|
||||
*cache.Cache
|
||||
}
|
||||
|
||||
func (e *engine) Find(token string) ([]byte, bool, error) {
|
||||
v, exists := e.Cache.Get(token)
|
||||
func (m *memstore) Find(token string) ([]byte, bool, error) {
|
||||
v, exists := m.Cache.Get(token)
|
||||
if exists == false {
|
||||
return nil, exists, nil
|
||||
}
|
||||
@ -34,12 +34,12 @@ func (e *engine) Find(token string) ([]byte, bool, error) {
|
||||
return b, exists, nil
|
||||
}
|
||||
|
||||
func (e *engine) Save(token string, b []byte, expiry time.Time) error {
|
||||
e.Cache.Set(token, b, expiry.Sub(time.Now()))
|
||||
func (m *memstore) Save(token string, b []byte, expiry time.Time) error {
|
||||
m.Cache.Set(token, b, expiry.Sub(time.Now()))
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *engine) Delete(token string) error {
|
||||
e.Cache.Delete(token)
|
||||
func (m *memstore) Delete(token string) error {
|
||||
m.Cache.Delete(token)
|
||||
return nil
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package engine
|
||||
package memstore
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@ -9,22 +9,22 @@ import (
|
||||
)
|
||||
|
||||
func TestNew(t *testing.T) {
|
||||
e := New()
|
||||
_, ok := interface{}(e).(session.Engine)
|
||||
m := New()
|
||||
_, ok := interface{}(m).(session.Engine)
|
||||
if ok == false {
|
||||
t.Fatalf("got %v: expected %v", ok, true)
|
||||
}
|
||||
|
||||
if len(e.Cache.Items()) > 0 {
|
||||
t.Fatalf("got %d: expected %d", len(e.Cache.Items()), 0)
|
||||
if len(m.Cache.Items()) > 0 {
|
||||
t.Fatalf("got %d: expected %d", len(m.Cache.Items()), 0)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFind(t *testing.T) {
|
||||
e := New()
|
||||
e.Cache.Set("test_session_token", []byte("encoded_data"), 0)
|
||||
m := New()
|
||||
m.Cache.Set("test_session_token", []byte("encoded_data"), 0)
|
||||
|
||||
b, found, err := e.Find("test_session_token")
|
||||
b, found, err := m.Find("test_session_token")
|
||||
if err != nil {
|
||||
t.Fatalf("got %v: expected %v", err, nil)
|
||||
}
|
||||
@ -35,7 +35,7 @@ func TestFind(t *testing.T) {
|
||||
t.Fatalf("got %v: expected %v", b, []byte("encoded_data"))
|
||||
}
|
||||
|
||||
b, found, err = e.Find("missing_session_token")
|
||||
b, found, err = m.Find("missing_session_token")
|
||||
if err != nil {
|
||||
t.Fatalf("got %v: expected %v", err, nil)
|
||||
}
|
||||
@ -48,54 +48,54 @@ func TestFind(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFindBadData(t *testing.T) {
|
||||
e := New()
|
||||
e.Cache.Set("test_session_token", "not_a_byte_slice", 0)
|
||||
m := New()
|
||||
m.Cache.Set("test_session_token", "not_a_byte_slice", 0)
|
||||
|
||||
_, _, err := e.Find("test_session_token")
|
||||
_, _, err := m.Find("test_session_token")
|
||||
if err != ErrTypeAssertionFailed {
|
||||
t.Fatalf("got %v: expected %v", err, ErrTypeAssertionFailed)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExpiry(t *testing.T) {
|
||||
e := New()
|
||||
m := New()
|
||||
|
||||
err := e.Save("test_session_token", []byte("encoded_data"), time.Now().Add(100*time.Millisecond))
|
||||
err := m.Save("test_session_token", []byte("encoded_data"), time.Now().Add(100*time.Millisecond))
|
||||
if err != nil {
|
||||
t.Fatalf("got %v: expected %v", err, nil)
|
||||
}
|
||||
_, found, _ := e.Find("test_session_token")
|
||||
_, found, _ := m.Find("test_session_token")
|
||||
if found != true {
|
||||
t.Fatalf("got %v: expected %v", found, true)
|
||||
}
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
_, found, _ = e.Find("test_session_token")
|
||||
_, found, _ = m.Find("test_session_token")
|
||||
if found != false {
|
||||
t.Fatalf("got %v: expected %v", found, false)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSave(t *testing.T) {
|
||||
e := New()
|
||||
m := New()
|
||||
|
||||
err := e.Save("test_session_token", []byte("encoded_data"), time.Now().Add(time.Minute))
|
||||
err := m.Save("test_session_token", []byte("encoded_data"), time.Now().Add(time.Minute))
|
||||
if err != nil {
|
||||
t.Fatalf("got %v: expected %v", err, nil)
|
||||
}
|
||||
if len(e.Cache.Items()) != 1 {
|
||||
t.Fatalf("got %d: expected %d", len(e.Cache.Items()), 1)
|
||||
if len(m.Cache.Items()) != 1 {
|
||||
t.Fatalf("got %d: expected %d", len(m.Cache.Items()), 1)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDelete(t *testing.T) {
|
||||
e := New()
|
||||
e.Cache.Set("test_session_token", []byte("encoded_data"), 0)
|
||||
m := New()
|
||||
m.Cache.Set("test_session_token", []byte("encoded_data"), 0)
|
||||
|
||||
err := e.Delete("test_session_token")
|
||||
err := m.Delete("test_session_token")
|
||||
if err != nil {
|
||||
t.Fatalf("got %v: expected %v", err, nil)
|
||||
}
|
||||
if len(e.Cache.Items()) != 0 {
|
||||
t.Fatalf("got %d: expected %d", len(e.Cache.Items()), 0)
|
||||
if len(m.Cache.Items()) != 0 {
|
||||
t.Fatalf("got %d: expected %d", len(m.Cache.Items()), 0)
|
||||
}
|
||||
}
|
@ -6,11 +6,11 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/alexedwards/scs/mem/engine"
|
||||
"github.com/alexedwards/scs/engine/memstore"
|
||||
)
|
||||
|
||||
func TestString(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutString", "")
|
||||
@ -35,7 +35,7 @@ func TestString(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestBool(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutBool", "")
|
||||
@ -60,7 +60,7 @@ func TestBool(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestInt(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutInt", "")
|
||||
@ -93,7 +93,7 @@ func TestInt(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestInt64(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutInt64", "")
|
||||
@ -126,7 +126,7 @@ func TestInt64(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFloat(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutFloat", "")
|
||||
@ -159,7 +159,7 @@ func TestFloat(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestTime(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutTime", "")
|
||||
@ -193,7 +193,7 @@ func TestTime(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestBytes(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutBytes", "")
|
||||
@ -231,7 +231,7 @@ func TestBytes(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestObject(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, body, cookie := testRequest(t, h, "/PutObject", "")
|
||||
@ -270,7 +270,7 @@ func TestObject(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRemove(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, _, cookie := testRequest(t, h, "/PutString", "")
|
||||
@ -293,7 +293,7 @@ func TestRemove(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestClear(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, _, cookie := testRequest(t, h, "/PutString", "")
|
||||
|
@ -4,11 +4,11 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/alexedwards/scs/mem/engine"
|
||||
"github.com/alexedwards/scs/engine/memstore"
|
||||
)
|
||||
|
||||
func TestWriteResponse(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
code, _, _ := testRequest(t, h, "/WriteHeader", "")
|
||||
@ -18,9 +18,9 @@ func TestWriteResponse(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestManagerOptionsLeak(t *testing.T) {
|
||||
_ = Manage(engine.New(), Domain("example.org"))
|
||||
_ = Manage(memstore.New(), Domain("example.org"))
|
||||
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
_, _, cookie := testRequest(t, h, "/PutString", "")
|
||||
if strings.Contains(cookie, "example.org") == true {
|
||||
|
@ -9,11 +9,11 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/alexedwards/scs/mem/engine"
|
||||
"github.com/alexedwards/scs/engine/memstore"
|
||||
)
|
||||
|
||||
func TestCookieOptions(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, _, cookie := testRequest(t, h, "/PutString", "")
|
||||
@ -30,7 +30,7 @@ func TestCookieOptions(t *testing.T) {
|
||||
t.Fatalf("got %q: expected to contain %q", cookie, "HttpOnly")
|
||||
}
|
||||
|
||||
m = Manage(engine.New(), Path("/foo"), Domain("example.org"), Secure(true), HttpOnly(false), Lifetime(time.Hour), Persist(true))
|
||||
m = Manage(memstore.New(), Path("/foo"), Domain("example.org"), Secure(true), HttpOnly(false), Lifetime(time.Hour), Persist(true))
|
||||
h = m(testServeMux)
|
||||
|
||||
_, _, cookie = testRequest(t, h, "/PutString", "")
|
||||
@ -53,7 +53,7 @@ func TestCookieOptions(t *testing.T) {
|
||||
t.Fatalf("got %q: expected to contain %q:", cookie, "Expires")
|
||||
}
|
||||
|
||||
m = Manage(engine.New(), Lifetime(time.Hour))
|
||||
m = Manage(memstore.New(), Lifetime(time.Hour))
|
||||
h = m(testServeMux)
|
||||
|
||||
_, _, cookie = testRequest(t, h, "/PutString", "")
|
||||
@ -66,7 +66,7 @@ func TestCookieOptions(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLifetime(t *testing.T) {
|
||||
e := engine.New()
|
||||
e := memstore.New()
|
||||
m := Manage(e, Lifetime(200*time.Millisecond))
|
||||
h := m(testServeMux)
|
||||
|
||||
@ -89,7 +89,7 @@ func TestLifetime(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestIdleTimeout(t *testing.T) {
|
||||
e := engine.New()
|
||||
e := memstore.New()
|
||||
m := Manage(e, IdleTimeout(100*time.Millisecond), Lifetime(500*time.Millisecond))
|
||||
h := m(testServeMux)
|
||||
|
||||
@ -126,7 +126,7 @@ func TestIdleTimeout(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestErrorFunc(t *testing.T) {
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
man, ok := m(nil).(*manager)
|
||||
if ok == false {
|
||||
t.Fatal("type assertion failed")
|
||||
@ -141,7 +141,7 @@ func TestErrorFunc(t *testing.T) {
|
||||
t.Fatalf("got %q: expected %q", string(rr.Body.Bytes()), "test error\n")
|
||||
}
|
||||
|
||||
m = Manage(engine.New(), ErrorFunc(func(w http.ResponseWriter, r *http.Request, err error) {
|
||||
m = Manage(memstore.New(), ErrorFunc(func(w http.ResponseWriter, r *http.Request, err error) {
|
||||
w.WriteHeader(418)
|
||||
io.WriteString(w, http.StatusText(418))
|
||||
}))
|
||||
@ -161,7 +161,7 @@ func TestErrorFunc(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPersist(t *testing.T) {
|
||||
e := engine.New()
|
||||
e := memstore.New()
|
||||
m := Manage(e, IdleTimeout(5*time.Minute), Persist(true))
|
||||
h := m(testServeMux)
|
||||
|
||||
@ -175,7 +175,7 @@ func TestCookieName(t *testing.T) {
|
||||
oldCookieName := CookieName
|
||||
CookieName = "custom_cookie_name"
|
||||
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, _, cookie := testRequest(t, h, "/PutString", "")
|
||||
@ -195,7 +195,7 @@ func TestContextDataName(t *testing.T) {
|
||||
oldContextName := ContextName
|
||||
ContextName = "custom_context_name"
|
||||
|
||||
m := Manage(engine.New())
|
||||
m := Manage(memstore.New())
|
||||
h := m(testServeMux)
|
||||
|
||||
_, _, cookie := testRequest(t, h, "/PutString", "")
|
||||
|
@ -11,7 +11,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/alexedwards/scs/mem/engine"
|
||||
"github.com/alexedwards/scs/engine/memstore"
|
||||
)
|
||||
|
||||
var testServeMux *http.ServeMux
|
||||
@ -346,7 +346,7 @@ func TestGenerateToken(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDestroy(t *testing.T) {
|
||||
e := engine.New()
|
||||
e := memstore.New()
|
||||
m := Manage(e)
|
||||
h := m(testServeMux)
|
||||
|
||||
@ -384,7 +384,7 @@ func TestDestroy(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRegenerateToken(t *testing.T) {
|
||||
e := engine.New()
|
||||
e := memstore.New()
|
||||
m := Manage(e)
|
||||
h := m(testServeMux)
|
||||
|
||||
@ -411,7 +411,7 @@ func TestRegenerateToken(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRenew(t *testing.T) {
|
||||
e := engine.New()
|
||||
e := memstore.New()
|
||||
m := Manage(e)
|
||||
h := m(testServeMux)
|
||||
|
||||
|
Reference in New Issue
Block a user