File tree Expand file tree Collapse file tree 2 files changed +41
-1
lines changed Expand file tree Collapse file tree 2 files changed +41
-1
lines changed Original file line number Diff line number Diff line change @@ -294,3 +294,41 @@ Public Function Specs() As SpecSuite
294
294
InlineRunner.RunSuite Specs
295
295
End Function
296
296
297
+ Public Function OfflineSpecs () As SpecSuite
298
+ ' Disconnect from the internet before running these specs
299
+
300
+ Set OfflineSpecs = New SpecSuite
301
+ OfflineSpecs.Description = "WebClient - Offline"
302
+
303
+ Dim Client As New WebClient
304
+ Dim Request As WebRequest
305
+ Dim Response As WebResponse
306
+
307
+ Client.BaseUrl = HttpbinBaseUrl
308
+
309
+ With OfflineSpecs.It("should handle resolve errors as timeout" )
310
+ Client.TimeoutMs = 500
311
+
312
+ Set Request = New WebRequest
313
+ Request.Resource = "/get"
314
+
315
+ Set Response = Client.Execute(Request)
316
+ .Expect(Response.StatusCode).ToEqual 408
317
+ .Expect(Response.StatusDescription).ToEqual "Request Timeout"
318
+ End With
319
+
320
+ With OfflineSpecs.It("should not crash with auto-proxy resolve error" )
321
+ Client.EnableAutoProxy = True
322
+ Client.TimeoutMs = 500
323
+
324
+ Set Request = New WebRequest
325
+ Request.Resource = "/get"
326
+
327
+ Set Response = Client.Execute(Request)
328
+ .Expect(Response.StatusCode).ToEqual 408
329
+ .Expect(Response.StatusDescription).ToEqual "Request Timeout"
330
+ End With
331
+
332
+ InlineRunner.RunSuite OfflineSpecs
333
+ End Function
334
+
Original file line number Diff line number Diff line change @@ -262,6 +262,8 @@ Public Function Execute(Request As WebRequest) As WebResponse
262
262
Case 5 , 6 , 7
263
263
' 5 = CURLE_COULDNT_RESOLVE_PROXY
264
264
' 6 = CURLE_COULDNT_RESOLVE_HOST
265
+ Err.Raise 208615 + vbObjectError, "WebClient.Execute" , "The server name or address could not be resolved"
266
+ Case 7
265
267
' 7 = CURLE_COULDNT_CONNECT
266
268
Err.Raise 208637 + vbObjectError, "WebClient.Execute" , "A connection with the server could not be established"
267
269
Case 12 , 28
@@ -304,7 +306,7 @@ web_ErrorHandling:
304
306
Dim web_ErrorDescription As String
305
307
306
308
Select Case Err.Number - vbObjectError
307
- Case 208610 , 208637
309
+ Case 208610 , 208615 , 208637
308
310
' Return 408
309
311
web_Response.StatusCode = WebStatusCode.RequestTimeout
310
312
web_Response.StatusDescription = "Request Timeout"
You can’t perform that action at this time.
0 commit comments