summaryrefslogtreecommitdiff
path: root/store_test.go
diff options
context:
space:
mode:
authorKamil Kisiel <kamil@kamilkisiel.net>2013-10-17 20:55:59 +0400
committerKamil Kisiel <kamil@kamilkisiel.net>2013-10-17 20:55:59 +0400
commit81f1be5cc016add5e0b8a19c3159fbff96e07829 (patch)
treeda7003de4ca65359b0bc5208e7fa9ea5ac9fe980 /store_test.go
parent8593e03f3101a7001cd6c76a6fb0f3c5cbf2724c (diff)
Add MaxLength to FilesystemStore.
Diffstat (limited to 'store_test.go')
-rw-r--r--store_test.go25
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)
+ }
+}