-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathhttpcontext_test.go
84 lines (66 loc) · 1.75 KB
/
httpcontext_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Forked from the Gorilla context test:
// https://github.com/gorilla/context/blob/master/context_test.go
// © 2012 The Gorilla Authors
package httpcontext
import (
"net/http"
"testing"
"github.com/nbio/st"
)
type keyType int
const (
key1 keyType = iota
key2
)
func TestContext(t *testing.T) {
req, _ := http.NewRequest("GET", "http://localhost:8080/", nil)
empty, _ := http.NewRequest("GET", "http://localhost:8080/", nil)
crc := getContextReadCloser(req)
// Get()
st.Expect(t, Get(req, key1), nil)
// Set()
Set(req, key1, "1")
st.Expect(t, Get(req, key1), "1")
st.Expect(t, len(crc.Context()), 1)
Set(req, key2, "2")
st.Expect(t, Get(req, key2), "2")
st.Expect(t, len(crc.Context()), 2)
// GetOk()
value, ok := GetOk(req, key1)
st.Expect(t, value, "1")
st.Expect(t, ok, true)
value, ok = GetOk(req, "not exists")
st.Expect(t, value, nil)
st.Expect(t, ok, false)
Set(req, "nil value", nil)
value, ok = GetOk(req, "nil value")
st.Expect(t, value, nil)
st.Expect(t, ok, true)
// GetString()
Set(req, "int value", 13)
Set(req, "string value", "hello")
str := GetString(req, "int value")
st.Expect(t, str, "")
str = GetString(req, "string value")
st.Expect(t, str, "hello")
// GetAll()
values := GetAll(req)
st.Expect(t, len(values), 5)
// GetAll() for empty request
values = GetAll(empty)
st.Expect(t, len(values), 0)
// Delete()
Delete(req, key1)
st.Expect(t, Get(req, key1), nil)
st.Expect(t, len(crc.Context()), 4)
Delete(req, key2)
st.Expect(t, Get(req, key2), nil)
st.Expect(t, len(crc.Context()), 3)
// Clear()
Set(req, key1, true)
values = GetAll(req)
Clear(req)
st.Expect(t, len(crc.Context()), 0)
val, _ := values["int value"].(int)
st.Expect(t, val, 13) // Clear shouldn't delete values grabbed before
}