@@ -1197,6 +1197,46 @@ public void BeginGetResponse_CreatePostRequestThenAbort_ThrowsWebException(Uri r
1197
1197
Assert . Equal ( WebExceptionStatus . RequestCanceled , ex . Status ) ;
1198
1198
}
1199
1199
1200
+ [ Fact ]
1201
+ public async Task GetResponseAsync_AllowAutoRedirectTrueWithTooManyRedirects_ThrowsWebException ( )
1202
+ {
1203
+ await LoopbackServer . CreateClientAndServerAsync ( async uri =>
1204
+ {
1205
+ HttpWebRequest request = WebRequest . CreateHttp ( uri ) ;
1206
+ request . AllowAutoRedirect = true ;
1207
+ request . MaximumAutomaticRedirections = 1 ;
1208
+ WebException ex = await Assert . ThrowsAsync < WebException > ( async ( ) => await request . GetResponseAsync ( ) ) ;
1209
+ Assert . Equal ( WebExceptionStatus . ProtocolError , ex . Status ) ;
1210
+ } , server => server . HandleRequestAsync ( HttpStatusCode . Redirect ) ) ;
1211
+ }
1212
+
1213
+ [ Fact ]
1214
+ public async Task GetResponseAsync_AllowAutoRedirectFalseWithRedirect_ReturnsRedirectResponse ( )
1215
+ {
1216
+ await LoopbackServer . CreateClientAndServerAsync ( async uri =>
1217
+ {
1218
+ HttpWebRequest request = WebRequest . CreateHttp ( uri ) ;
1219
+ request . AllowAutoRedirect = false ;
1220
+ using ( WebResponse response = await request . GetResponseAsync ( ) )
1221
+ {
1222
+ HttpWebResponse httpResponse = Assert . IsType < HttpWebResponse > ( response ) ;
1223
+ Assert . Equal ( HttpStatusCode . Redirect , httpResponse . StatusCode ) ;
1224
+ }
1225
+ } , server => server . HandleRequestAsync ( HttpStatusCode . Redirect ) ) ;
1226
+ }
1227
+
1228
+ [ Fact ]
1229
+ public async Task GetResponseAsync_AllowAutoRedirectFalseWithBadRequest_ThrowsWebException ( )
1230
+ {
1231
+ await LoopbackServer . CreateClientAndServerAsync ( async uri =>
1232
+ {
1233
+ HttpWebRequest request = WebRequest . CreateHttp ( uri ) ;
1234
+ request . AllowAutoRedirect = false ;
1235
+ WebException ex = await Assert . ThrowsAsync < WebException > ( async ( ) => await request . GetResponseAsync ( ) ) ;
1236
+ Assert . Equal ( WebExceptionStatus . ProtocolError , ex . Status ) ;
1237
+ } , server => server . HandleRequestAsync ( HttpStatusCode . BadRequest ) ) ;
1238
+ }
1239
+
1200
1240
[ Fact ]
1201
1241
public async Task GetRequestStreamAsync_WriteAndDisposeRequestStreamThenOpenRequestStream_ThrowsArgumentException ( )
1202
1242
{
0 commit comments