From c7477e896522e8039bf6f45ce253feb8e5d8e224 Mon Sep 17 00:00:00 2001 From: Alex Edwards Date: Thu, 18 Aug 2016 18:07:37 +0200 Subject: [PATCH] [refactor] Use explicit package names for engines --- .../engine.go => engine/memstore/memstore.go | 20 ++++---- .../memstore/memstore_test.go | 50 +++++++++---------- session/data_test.go | 22 ++++---- session/manager_test.go | 8 +-- session/options_test.go | 22 ++++---- session/session_test.go | 8 +-- 6 files changed, 65 insertions(+), 65 deletions(-) rename mem/engine/engine.go => engine/memstore/memstore.go (56%) rename mem/engine/engine_test.go => engine/memstore/memstore_test.go (57%) diff --git a/mem/engine/engine.go b/engine/memstore/memstore.go similarity index 56% rename from mem/engine/engine.go rename to engine/memstore/memstore.go index c586822..abf6623 100644 --- a/mem/engine/engine.go +++ b/engine/memstore/memstore.go @@ -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 } diff --git a/mem/engine/engine_test.go b/engine/memstore/memstore_test.go similarity index 57% rename from mem/engine/engine_test.go rename to engine/memstore/memstore_test.go index fb19c77..4dec867 100644 --- a/mem/engine/engine_test.go +++ b/engine/memstore/memstore_test.go @@ -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) } } diff --git a/session/data_test.go b/session/data_test.go index 24e77f9..92e75a1 100644 --- a/session/data_test.go +++ b/session/data_test.go @@ -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", "") diff --git a/session/manager_test.go b/session/manager_test.go index 0609ab7..35c2e9b 100644 --- a/session/manager_test.go +++ b/session/manager_test.go @@ -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 { diff --git a/session/options_test.go b/session/options_test.go index bf9e5f2..31b6e1f 100644 --- a/session/options_test.go +++ b/session/options_test.go @@ -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", "") diff --git a/session/session_test.go b/session/session_test.go index e91d029..e3dcb54 100644 --- a/session/session_test.go +++ b/session/session_test.go @@ -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)