diff options
author | Kamil Kisiel <kamil@kamilkisiel.net> | 2013-10-17 20:55:59 +0400 |
---|---|---|
committer | Kamil Kisiel <kamil@kamilkisiel.net> | 2013-10-17 20:55:59 +0400 |
commit | 81f1be5cc016add5e0b8a19c3159fbff96e07829 (patch) | |
tree | da7003de4ca65359b0bc5208e7fa9ea5ac9fe980 /store_test.go | |
parent | 8593e03f3101a7001cd6c76a6fb0f3c5cbf2724c (diff) |
Add MaxLength to FilesystemStore.
Diffstat (limited to 'store_test.go')
-rw-r--r-- | store_test.go | 25 |
1 files changed, 25 insertions, 0 deletions
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) + } +} |