@@ -13,51 +13,51 @@ import (
13
13
)
14
14
15
15
func TestParseAcceptHeaderLanguage (t * testing.T ) {
16
- req1 := createRequest (HeaderAcceptLanguage , "en-us;q=0.0,en;q=0.7, da, en-gb;q=0.8" )
17
- specs := req1 . ParseAccept (HeaderAcceptLanguage )
16
+ req1 := createRawHTTPRequest (HeaderAcceptLanguage , "en-us;q=0.0,en;q=0.7, da, en-gb;q=0.8" )
17
+ specs := ParseAccept (req1 , HeaderAcceptLanguage )
18
18
assert .Equal (t , "da" , specs .MostQualified ().Value )
19
19
assert .Equal (t , 4 , len (specs ))
20
20
assert .Equal (t , specs [1 ].Value , "en-gb" )
21
21
assert .Equal (t , specs [1 ].Q , float32 (0.8 ))
22
22
assert .Equal (t , specs [2 ].Value , "en" )
23
23
assert .Equal (t , specs [2 ].Q , float32 (0.7 ))
24
24
25
- req2 := createRequest (HeaderAcceptLanguage , "en-gb;leve=1;q=0.8, da, en;level=2;q=0.7, en-us;q=gg" )
26
- specs = req2 . ParseAccept (HeaderAcceptLanguage )
25
+ req2 := createRawHTTPRequest (HeaderAcceptLanguage , "en-gb;leve=1;q=0.8, da, en;level=2;q=0.7, en-us;q=gg" )
26
+ specs = ParseAccept (req2 , HeaderAcceptLanguage )
27
27
assert .Equal (t , "da" , specs .MostQualified ().Value )
28
28
assert .Equal (t , 4 , len (specs ))
29
29
assert .Equal (t , specs [1 ].Value , "en-gb" )
30
30
assert .Equal (t , specs [1 ].Q , float32 (0.8 ))
31
31
assert .Equal (t , specs [2 ].Value , "en" )
32
32
assert .Equal (t , specs [2 ].Q , float32 (0.7 ))
33
33
34
- req3 := createRequest (HeaderAcceptLanguage , "zh, en-us; q=0.8, en; q=0.6" )
35
- specs = req3 . ParseAccept (HeaderAcceptLanguage )
34
+ req3 := createRawHTTPRequest (HeaderAcceptLanguage , "zh, en-us; q=0.8, en; q=0.6" )
35
+ specs = ParseAccept (req3 , HeaderAcceptLanguage )
36
36
assert .Equal (t , "zh" , specs .MostQualified ().Value )
37
37
assert .Equal (t , 3 , len (specs ))
38
38
assert .Equal (t , specs [1 ].Value , "en-us" )
39
39
assert .Equal (t , specs [1 ].Q , float32 (0.8 ))
40
40
assert .Equal (t , specs [2 ].Value , "en" )
41
41
assert .Equal (t , specs [2 ].Q , float32 (0.6 ))
42
42
43
- req4 := createRequest (HeaderAcceptLanguage , "en-gb;q=0.8, da, en;level=2;q=0.7, en-us;leve=1;q=gg" )
44
- specs = req4 . ParseAccept (HeaderAcceptLanguage )
43
+ req4 := createRawHTTPRequest (HeaderAcceptLanguage , "en-gb;q=0.8, da, en;level=2;q=0.7, en-us;leve=1;q=gg" )
44
+ specs = ParseAccept (req4 , HeaderAcceptLanguage )
45
45
assert .Equal (t , "da" , specs .MostQualified ().Value )
46
46
assert .Equal (t , 4 , len (specs ))
47
47
assert .Equal (t , specs [1 ].Value , "en-gb" )
48
48
assert .Equal (t , specs [1 ].Q , float32 (0.8 ))
49
49
assert .Equal (t , specs [2 ].Value , "en" )
50
50
assert .Equal (t , specs [2 ].Q , float32 (0.7 ))
51
51
52
- req5 := createRequest (HeaderAcceptLanguage , "zh, en-us; q=wrong, en; q=0.6" )
53
- specs = req5 . ParseAccept (HeaderAcceptLanguage )
52
+ req5 := createRawHTTPRequest (HeaderAcceptLanguage , "zh, en-us; q=wrong, en; q=0.6" )
53
+ specs = ParseAccept (req5 , HeaderAcceptLanguage )
54
54
assert .Equal (t , "zh" , specs .MostQualified ().Value )
55
55
assert .Equal (t , 3 , len (specs ))
56
56
assert .Equal (t , specs [1 ].Value , "en" )
57
57
assert .Equal (t , specs [1 ].Q , float32 (0.6 ))
58
58
59
- req6 := createRequest (HeaderAcceptLanguage , "es-mx, es, en" )
60
- specs = req6 . ParseAccept (HeaderAcceptLanguage )
59
+ req6 := createRawHTTPRequest (HeaderAcceptLanguage , "es-mx, es, en" )
60
+ specs = ParseAccept (req6 , HeaderAcceptLanguage )
61
61
assert .Equal (t , "es-mx" , specs .MostQualified ().Value )
62
62
assert .Equal (t , 3 , len (specs ))
63
63
assert .Equal (t , specs [1 ].Value , "es" )
@@ -67,127 +67,132 @@ func TestParseAcceptHeaderLanguage(t *testing.T) {
67
67
}
68
68
69
69
func TestNegotiateLocale (t * testing.T ) {
70
- req1 := createRequest (HeaderAcceptLanguage , "es-mx, es, en" )
71
- locale := req1 . NegotiateLocale ()
70
+ req1 := createRawHTTPRequest (HeaderAcceptLanguage , "es-mx, es, en" )
71
+ locale := NegotiateLocale (req1 )
72
72
assert .Equal (t , "es-mx" , locale .Raw )
73
73
assert .Equal (t , "es" , locale .Language )
74
74
assert .Equal (t , "mx" , locale .Region )
75
75
assert .Equal (t , "es-mx" , locale .String ())
76
76
77
- req2 := createRequest (HeaderAcceptLanguage , "es" )
78
- locale = req2 . NegotiateLocale ()
77
+ req2 := createRawHTTPRequest (HeaderAcceptLanguage , "es" )
78
+ locale = NegotiateLocale (req2 )
79
79
assert .Equal (t , "es" , locale .Raw )
80
80
assert .Equal (t , "es" , locale .Language )
81
81
assert .Equal (t , "" , locale .Region )
82
82
assert .Equal (t , "es" , locale .String ())
83
83
84
- req3 := createRequest (HeaderAcceptLanguage , "" )
85
- locale = req3 . NegotiateLocale ()
84
+ req3 := createRawHTTPRequest (HeaderAcceptLanguage , "" )
85
+ locale = NegotiateLocale (req3 )
86
86
assert .Equal (t , true , locale == nil )
87
87
}
88
88
89
89
func TestNegotiateContentType (t * testing.T ) {
90
- req1 := createRequest (HeaderAccept , "audio/*; q=0.2, audio/basic" )
91
- contentType := req1 . NegotiateContentType ()
90
+ req1 := createRawHTTPRequest (HeaderAccept , "audio/*; q=0.2, audio/basic" )
91
+ contentType := NegotiateContentType (req1 )
92
92
assert .Equal (t , "audio/basic" , contentType .String ())
93
93
assert .Equal (t , "audio/basic" , contentType .Mime )
94
94
assert .Equal (t , "" , contentType .Version ())
95
95
96
- req2 := createRequest (HeaderAccept , "application/json;version=2" )
97
- contentType = req2 . NegotiateContentType ()
96
+ req2 := createRawHTTPRequest (HeaderAccept , "application/json;version=2" )
97
+ contentType = NegotiateContentType (req2 )
98
98
assert .Equal (t , "application/json;version=2" , contentType .String ())
99
99
assert .Equal (t , "application/json" , contentType .Mime )
100
100
assert .Equal (t , "2" , contentType .Version ())
101
101
102
- req3 := createRequest (HeaderAccept , "text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c" )
103
- contentType = req3 . NegotiateContentType ()
102
+ req3 := createRawHTTPRequest (HeaderAccept , "text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c" )
103
+ contentType = NegotiateContentType (req3 )
104
104
assert .Equal (t , "text/html" , contentType .String ())
105
105
assert .Equal (t , "text/html" , contentType .Mime )
106
106
assert .Equal (t , "" , contentType .Version ())
107
107
108
- req4 := createRequest (HeaderAccept , "" )
109
- contentType = req4 . NegotiateContentType ()
108
+ req4 := createRawHTTPRequest (HeaderAccept , "" )
109
+ contentType = NegotiateContentType (req4 )
110
110
assert .Equal (t , "text/html; charset=utf-8" , contentType .String ())
111
111
assert .Equal (t , "text/html" , contentType .Mime )
112
112
assert .Equal (t , ".html" , contentType .Exts [0 ])
113
113
assert .Equal (t , "" , contentType .Version ())
114
114
115
- req := createRequest (HeaderAccept , "application/json" )
115
+ req := createRawHTTPRequest (HeaderAccept , "application/json" )
116
116
req .URL , _ = url .Parse ("http://localhost:8080/testpath.json" )
117
- contentType = req .NegotiateContentType ()
117
+ // req.Path = req.Raw.URL.Path
118
+ contentType = NegotiateContentType (req )
118
119
assert .Equal (t , "application/json" , contentType .Mime )
119
120
assert .Equal (t , ".json" , contentType .Exts [0 ])
120
121
121
- req = createRequest (HeaderAccept , "application/json" )
122
+ req = createRawHTTPRequest (HeaderAccept , "application/json" )
122
123
req .URL , _ = url .Parse ("http://localhost:8080/testpath.html" )
123
- contentType = req .NegotiateContentType ()
124
+ // req.Path = req.Raw.URL.Path
125
+ contentType = NegotiateContentType (req )
124
126
assert .Equal (t , "text/html; charset=utf-8" , contentType .Mime )
125
127
assert .Equal (t , ".html" , contentType .Exts [0 ])
126
128
127
- req = createRequest (HeaderAccept , "application/json; version=2" )
128
- spec := req . ParseAccept (HeaderAccept ).MostQualified ()
129
+ req = createRawHTTPRequest (HeaderAccept , "application/json; version=2" )
130
+ spec := ParseAccept (req , HeaderAccept ).MostQualified ()
129
131
assert .Equal (t , "2" , spec .GetParam ("version" , "1" ))
130
132
131
- req = createRequest (HeaderAccept , "application/json" )
132
- spec = req . ParseAccept (HeaderAccept ).MostQualified ()
133
+ req = createRawHTTPRequest (HeaderAccept , "application/json" )
134
+ spec = ParseAccept (req , HeaderAccept ).MostQualified ()
133
135
assert .Equal (t , "1" , spec .GetParam ("version" , "1" ))
134
136
135
- req = createRequest (HeaderAccept , "application/json; version" )
136
- spec = req . ParseAccept (HeaderAccept ).MostQualified ()
137
+ req = createRawHTTPRequest (HeaderAccept , "application/json; version" )
138
+ spec = ParseAccept (req , HeaderAccept ).MostQualified ()
137
139
assert .Equal (t , "" , spec .GetParam ("version" , "1" ))
138
140
}
139
141
140
142
func TestNegotiateEncoding (t * testing.T ) {
141
- req1 := createRequest (HeaderAcceptEncoding , "compress;q=0.5, gzip;q=1.0" )
142
- encoding := req1 . NegotiateEncoding ()
143
+ req1 := createRawHTTPRequest (HeaderAcceptEncoding , "compress;q=0.5, gzip;q=1.0" )
144
+ encoding := NegotiateEncoding (req1 )
143
145
assert .Equal (t , "gzip" , encoding .Value )
144
146
assert .Equal (t , "gzip;q=1.0" , encoding .Raw )
145
147
146
- req2 := createRequest (HeaderAcceptEncoding , "gzip;q=1.0, identity; q=0.5, *;q=0" )
147
- encoding = req2 . NegotiateEncoding ()
148
+ req2 := createRawHTTPRequest (HeaderAcceptEncoding , "gzip;q=1.0, identity; q=0.5, *;q=0" )
149
+ encoding = NegotiateEncoding (req2 )
148
150
assert .Equal (t , "gzip" , encoding .Value )
149
151
assert .Equal (t , "gzip;q=1.0" , encoding .Raw )
150
152
151
- req3 := createRequest (HeaderAcceptEncoding , "" )
152
- encoding = req3 . NegotiateEncoding ()
153
+ req3 := createRawHTTPRequest (HeaderAcceptEncoding , "" )
154
+ encoding = NegotiateEncoding (req3 )
153
155
assert .Equal (t , true , encoding == nil )
154
156
}
155
157
156
158
func TestParseContentType (t * testing.T ) {
157
- req1 := createRequest (HeaderContentType , "text/html; charset=utf-8" )
158
- contentType := req1 . ParseContentType ()
159
+ req1 := createRawHTTPRequest (HeaderContentType , "text/html; charset=utf-8" )
160
+ contentType := ParseContentType (req1 )
159
161
assert .Equal (t , "text/html" , contentType .Mime )
160
162
assert .Equal (t , "text/html; charset=utf-8" , contentType .String ())
161
163
assert .Equal (t , "utf-8" , contentType .Charset ("iso-8859-1" ))
162
164
163
- req2 := createRequest (HeaderContentType , "text/html" )
164
- contentType = req2 . ParseContentType ()
165
+ req2 := createRawHTTPRequest (HeaderContentType , "text/html" )
166
+ contentType = ParseContentType (req2 )
165
167
assert .Equal (t , "text/html" , contentType .Mime )
166
168
assert .Equal (t , "text/html" , contentType .String ())
167
169
assert .Equal (t , "iso-8859-1" , contentType .Charset ("iso-8859-1" ))
168
170
169
- req3 := createRequest (HeaderContentType , "application/json" )
170
- contentType = req3 . ParseContentType ()
171
+ req3 := createRawHTTPRequest (HeaderContentType , "application/json" )
172
+ contentType = ParseContentType (req3 )
171
173
assert .Equal (t , "application/json" , contentType .Mime )
172
174
assert .Equal (t , "application/json" , contentType .String ())
173
175
assert .Equal (t , "" , contentType .Charset ("" ))
174
176
175
- req4 := createRequest (HeaderContentType , "" )
176
- contentType = req4 . ParseContentType ()
177
+ req4 := createRawHTTPRequest (HeaderContentType , "" )
178
+ contentType = ParseContentType (req4 )
177
179
assert .Equal (t , "text/html" , contentType .Mime )
178
180
assert .Equal (t , "text/html; charset=utf-8" , contentType .String ())
179
181
assert .Equal (t , ".html" , contentType .Exts [0 ])
180
182
181
- req5 := createRequest (HeaderContentType , "text/html;charset" )
182
- contentType = req5 . ParseContentType ()
183
+ req5 := createRawHTTPRequest (HeaderContentType , "text/html;charset" )
184
+ contentType = ParseContentType (req5 )
183
185
assert .Equal (t , "text/html" , contentType .Mime )
184
186
assert .Equal (t , "text/html;charset" , contentType .String ())
185
187
assert .Equal (t , "" , contentType .Charset ("iso-8859-1" ))
186
188
}
187
189
188
- func createRequest (hdrKey , value string ) * Request {
189
- return & Request {Request : createRawHTTPRequest (hdrKey , value )}
190
- }
190
+ // func createRequest(hdrKey, value string) *Request {
191
+ // req := &Request{Raw: createRawHTTPRequest(hdrKey, value)}
192
+ // req.Path = req.Raw.URL.Path
193
+ // req.Header = req.Raw.Header
194
+ // return req
195
+ // }
191
196
192
197
func createRawHTTPRequest (hdrKey , value string ) * http.Request {
193
198
hdr := http.Header {}
0 commit comments