From 81f1be5cc016add5e0b8a19c3159fbff96e07829 Mon Sep 17 00:00:00 2001 From: Kamil Kisiel Date: Thu, 17 Oct 2013 09:55:59 -0700 Subject: Add MaxLength to FilesystemStore. --- store_test.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'store_test.go') diff --git a/store_test.go b/store_test.go index 77fea6b..022acba 100644 --- a/store_test.go +++ b/store_test.go @@ -1,7 +1,9 @@ package sessions import ( + "encoding/base64" "net/http" + "net/http/httptest" "testing" ) @@ -46,3 +48,26 @@ func TestGH8FilesystemStore(t *testing.T) { t.Fatalf("bad session path: got %q, want %q", session.Options.Path, originalPath) } } + +// Test for GH-2. +func TestGH2MaxLength(t *testing.T) { + store := NewFilesystemStore("", []byte("some key")) + req, err := http.NewRequest("GET", "http://www.example.com", nil) + if err != nil { + t.Fatal("failed to create request", err) + } + w := httptest.NewRecorder() + + session, err := store.New(req, "my session") + session.Values["big"] = make([]byte, base64.StdEncoding.DecodedLen(4096*2)) + err = session.Save(req, w) + if err == nil { + t.Fatal("expected an error, got nil") + } + + store.MaxLength(4096 * 3) // A bit more than the value size to account for encoding overhead. + err = session.Save(req, w) + if err != nil { + t.Fatal("failed to Save:", err) + } +} -- cgit v1.2.3