@@ -30,6 +30,7 @@ object RequestTests extends TestSuite{
30
30
}
31
31
}
32
32
}
33
+
33
34
test(" params" ){
34
35
test(" get" ){
35
36
// All in URL
@@ -58,6 +59,7 @@ object RequestTests extends TestSuite{
58
59
assert(read(res4).obj(" args" ) == Obj (" ++-- lol" -> " !@#$%" , " hello" -> " world" ))
59
60
}
60
61
}
62
+
61
63
test(" multipart" ){
62
64
for (chunkedUpload <- Seq (true , false )) {
63
65
val response = requests.post(
@@ -73,8 +75,8 @@ object RequestTests extends TestSuite{
73
75
assert(read(response).obj(" form" ) == Obj (" file2" -> " Goodbye!" ))
74
76
}
75
77
}
76
- test(" cookies" ){
77
78
79
+ test(" cookies" ){
78
80
test(" session" ){
79
81
val s = requests.Session (cookieValues = Map (" hello" -> " world" ))
80
82
val res1 = s.get(" https://httpbin.org/cookies" ).text().trim
@@ -99,35 +101,37 @@ object RequestTests extends TestSuite{
99
101
assert(read(res2) == Obj (" cookies" -> Obj (" freeform" -> " test test" , " hello" -> " hello, world" )))
100
102
}
101
103
}
102
- // Tests fail with 'Request to https://httpbin.org/absolute-redirect/4 failed with status code 404'
103
- // test("redirects"){
104
- // test("max"){
105
- // val res1 = requests.get("https://httpbin.org/absolute-redirect/4")
106
- // assert(res1.statusCode == 200)
107
- // val res2 = requests.get("https://httpbin.org/absolute-redirect/5")
108
- // assert(res2.statusCode == 200)
109
- // val res3 = requests.get("https://httpbin.org/absolute-redirect/6", check = false)
110
- // assert(res3.statusCode == 302)
111
- // val res4 = requests.get("https://httpbin.org/absolute-redirect/6", maxRedirects = 10)
112
- // assert(res4.statusCode == 200)
113
- // }
114
- // test("maxRelative"){
115
- // val res1 = requests.get("https://httpbin.org/relative-redirect/4")
116
- // assert(res1.statusCode == 200)
117
- // val res2 = requests.get("https://httpbin.org/relative-redirect/5")
118
- // assert(res2.statusCode == 200)
119
- // val res3 = requests.get("https://httpbin.org/relative-redirect/6", check = false)
120
- // assert(res3.statusCode == 302)
121
- // val res4 = requests.get("https://httpbin.org/relative-redirect/6", maxRedirects = 10)
122
- // assert(res4.statusCode == 200)
123
- // }
124
- // }
104
+
105
+ test(" redirects" ){
106
+ test(" max" ){
107
+ val res1 = requests.get(" https://httpbin.org/absolute-redirect/4" )
108
+ assert(res1.statusCode == 200 )
109
+ val res2 = requests.get(" https://httpbin.org/absolute-redirect/5" )
110
+ assert(res2.statusCode == 200 )
111
+ val res3 = requests.get(" https://httpbin.org/absolute-redirect/6" , check = false )
112
+ assert(res3.statusCode == 302 )
113
+ val res4 = requests.get(" https://httpbin.org/absolute-redirect/6" , maxRedirects = 10 )
114
+ assert(res4.statusCode == 200 )
115
+ }
116
+ test(" maxRelative" ){
117
+ val res1 = requests.get(" https://httpbin.org/relative-redirect/4" )
118
+ assert(res1.statusCode == 200 )
119
+ val res2 = requests.get(" https://httpbin.org/relative-redirect/5" )
120
+ assert(res2.statusCode == 200 )
121
+ val res3 = requests.get(" https://httpbin.org/relative-redirect/6" , check = false )
122
+ assert(res3.statusCode == 302 )
123
+ val res4 = requests.get(" https://httpbin.org/relative-redirect/6" , maxRedirects = 10 )
124
+ assert(res4.statusCode == 200 )
125
+ }
126
+ }
127
+
125
128
test(" streaming" ){
126
129
val res1 = requests.get(" http://httpbin.org/stream/5" ).text()
127
130
assert(res1.linesIterator.length == 5 )
128
131
val res2 = requests.get(" http://httpbin.org/stream/52" ).text()
129
132
assert(res2.linesIterator.length == 52 )
130
133
}
134
+
131
135
test(" timeouts" ){
132
136
test(" read" ){
133
137
intercept[TimeoutException ] {
@@ -144,6 +148,7 @@ object RequestTests extends TestSuite{
144
148
}
145
149
}
146
150
}
151
+
147
152
test(" failures" ){
148
153
intercept[UnknownHostException ]{
149
154
requests.get(" https://doesnt-exist-at-all.com/" )
@@ -156,6 +161,7 @@ object RequestTests extends TestSuite{
156
161
requests.get(" ://doesnt-exist.com/" )
157
162
}
158
163
}
164
+
159
165
test(" decompress" ){
160
166
val res1 = requests.get(" https://httpbin.org/gzip" )
161
167
assert(read(res1.text()).obj(" headers" ).obj(" Host" ).str == " httpbin.org" )
@@ -171,6 +177,7 @@ object RequestTests extends TestSuite{
171
177
172
178
(res1.bytes.length, res2.bytes.length, res3.bytes.length, res4.bytes.length)
173
179
}
180
+
174
181
test(" compression" ){
175
182
val res1 = requests.post(
176
183
" https://httpbin.org/post" ,
@@ -184,16 +191,18 @@ object RequestTests extends TestSuite{
184
191
compress = requests.Compress .Gzip ,
185
192
data = new RequestBlob .ByteSourceRequestBlob (" I am cow" )
186
193
)
187
- assert(res2.text().contains(" data:application/octet-stream;base64,H4sIAAAAAAAAAA==" ))
194
+ assert(read(new String (res2.bytes))(" data" ).toString ==
195
+ """ "data:application/octet-stream;base64,H4sIAAAAAAAAAPNUSMxVSM4vBwCAGeD4CAAAAA=="""" )
188
196
189
197
val res3 = requests.post(
190
198
" https://httpbin.org/post" ,
191
199
compress = requests.Compress .Deflate ,
192
200
data = new RequestBlob .ByteSourceRequestBlob (" Hear me moo" )
193
201
)
194
- assert(res3.text().contains(" data:application/octet-stream;base64,eJw=" ))
195
- res3.text()
196
- }
202
+ assert(read(new String (res2.bytes))(" data" ).toString ==
203
+ """ "data:application/octet-stream;base64,H4sIAAAAAAAAAPNUSMxVSM4vBwCAGeD4CAAAAA=="""" )
204
+ }
205
+
197
206
test(" headers" ){
198
207
test(" default" ){
199
208
val res = requests.get(" https://httpbin.org/headers" ).text()
@@ -207,6 +216,7 @@ object RequestTests extends TestSuite{
207
216
}
208
217
}
209
218
}
219
+
210
220
test(" clientCertificate" ){
211
221
val base = " ./requests/test/resources"
212
222
val url = " https://client.badssl.com"
@@ -253,13 +263,15 @@ object RequestTests extends TestSuite{
253
263
assert(res.statusCode == 400 )
254
264
}
255
265
}
266
+
256
267
test(" selfSignedCertificate" ){
257
268
val res = requests.get(
258
269
" https://self-signed.badssl.com" ,
259
270
verifySslCerts = false
260
271
)
261
272
assert(res.statusCode == 200 )
262
273
}
274
+
263
275
test(" gzipError" ){
264
276
val response = requests.head(" https://api.github.com/users/lihaoyi" )
265
277
assert(response.statusCode == 200 )
@@ -268,5 +280,23 @@ object RequestTests extends TestSuite{
268
280
assert(response.headers.keySet.map(_.toLowerCase).contains(" content-length" ))
269
281
assert(resp
10000
onse.headers.keySet.map(_.toLowerCase).contains(" content-type" ))
270
282
}
283
+
284
+ /**
285
+ * Compress with each compression mode and call server. Server expands
286
+ * and passes it back so we can compare
287
+ */
288
+ test(" compressionData" ) {
289
+ import requests .Compress ._
290
+ val str = " I am deflater mouse"
291
+ Seq (None , Gzip , Deflate ).foreach(c =>
292
+ ServerUtils .usingEchoServer { port =>
293
+ assert(str == requests.post(
294
+ s " http://localhost: $port/echo " ,
295
+ compress = c,
296
+ data = new RequestBlob .ByteSourceRequestBlob (str)
297
+ ).data.toString)
298
+ }
299
+ )
300
+ }
271
301
}
272
302
}
0 commit comments