@@ -42,7 +42,6 @@ public static void Properties_InvalidArguments_ThrowExceptions()
4242 AssertExtensions . Throws < ArgumentNullException > ( "Encoding" , ( ) => { wc . Encoding = null ; } ) ;
4343 }
4444
45- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // Difference in behavior.
4645 [ Fact ]
4746 public static void DownloadData_InvalidArguments_ThrowExceptions ( )
4847 {
@@ -54,11 +53,10 @@ public static void DownloadData_InvalidArguments_ThrowExceptions()
5453 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadDataAsync ( ( Uri ) null ) ; } ) ;
5554 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadDataAsync ( ( Uri ) null , null ) ; } ) ;
5655
57- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadDataTaskAsync ( ( string ) null ) ; } ) ;
56+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . DownloadDataTaskAsync ( ( string ) null ) ; } ) ;
5857 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadDataTaskAsync ( ( Uri ) null ) ; } ) ;
5958 }
6059
61- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // Difference in behavior.
6260 [ Fact ]
6361 public static void DownloadFile_InvalidArguments_ThrowExceptions ( )
6462 {
@@ -70,7 +68,7 @@ public static void DownloadFile_InvalidArguments_ThrowExceptions()
7068 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadFileAsync ( ( Uri ) null , "" ) ; } ) ;
7169 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadFileAsync ( ( Uri ) null , "" , null ) ; } ) ;
7270
73- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadFileTaskAsync ( ( string ) null , "" ) ; } ) ;
71+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . DownloadFileTaskAsync ( ( string ) null , "" ) ; } ) ;
7472 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadFileTaskAsync ( ( Uri ) null , "" ) ; } ) ;
7573
7674 AssertExtensions . Throws < ArgumentNullException > ( "fileName" , ( ) => { wc . DownloadFile ( "http://localhost" , null ) ; } ) ;
@@ -83,7 +81,6 @@ public static void DownloadFile_InvalidArguments_ThrowExceptions()
8381 AssertExtensions . Throws < ArgumentNullException > ( "fileName" , ( ) => { wc . DownloadFileTaskAsync ( new Uri ( "http://localhost" ) , null ) ; } ) ;
8482 }
8583
86- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // Difference in behavior.
8784 [ Fact ]
8885 public static void DownloadString_InvalidArguments_ThrowExceptions ( )
8986 {
@@ -95,11 +92,10 @@ public static void DownloadString_InvalidArguments_ThrowExceptions()
9592 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadStringAsync ( ( Uri ) null ) ; } ) ;
9693 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadStringAsync ( ( Uri ) null , null ) ; } ) ;
9794
98- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadStringTaskAsync ( ( string ) null ) ; } ) ;
95+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . DownloadStringTaskAsync ( ( string ) null ) ; } ) ;
9996 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . DownloadStringTaskAsync ( ( Uri ) null ) ; } ) ;
10097 }
10198
102- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // Difference in behavior.
10399 [ Fact ]
104100 public static void UploadData_InvalidArguments_ThrowExceptions ( )
105101 {
@@ -114,8 +110,8 @@ public static void UploadData_InvalidArguments_ThrowExceptions()
114110 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadDataAsync ( ( Uri ) null , null , null ) ; } ) ;
115111 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadDataAsync ( ( Uri ) null , null , null , null ) ; } ) ;
116112
117- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadDataTaskAsync ( ( string ) null , null ) ; } ) ;
118- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadDataTaskAsync ( ( string ) null , null , null ) ; } ) ;
113+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadDataTaskAsync ( ( string ) null , null ) ; } ) ;
114+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadDataTaskAsync ( ( string ) null , null , null ) ; } ) ;
119115 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadDataTaskAsync ( ( Uri ) null , null ) ; } ) ;
120116 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadDataTaskAsync ( ( Uri ) null , null , null ) ; } ) ;
121117
@@ -134,23 +130,23 @@ public static void UploadData_InvalidArguments_ThrowExceptions()
134130 AssertExtensions . Throws < ArgumentNullException > ( "data" , ( ) => { wc . UploadDataTaskAsync ( new Uri ( "http://localhost" ) , null , null ) ; } ) ;
135131 }
136132
137- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // Difference in behavior.
138133 [ Fact ]
139134 public static void UploadFile_InvalidArguments_ThrowExceptions ( )
140135 {
141136 var wc = new WebClient ( ) ;
142137
143138 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFile ( ( string ) null , null ) ; } ) ;
144- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFile ( ( string ) null , null , null ) ; } ) ;
139+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadFile ( ( string ) null , null , null ) ; } ) ;
140+
145141 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFile ( ( Uri ) null , null ) ; } ) ;
146142 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFile ( ( Uri ) null , null , null ) ; } ) ;
147143
148144 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFileAsync ( ( Uri ) null , null ) ; } ) ;
149145 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFileAsync ( ( Uri ) null , null , null ) ; } ) ;
150146 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFileAsync ( ( Uri ) null , null , null , null ) ; } ) ;
151147
152- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFileTaskAsync ( ( string ) null , null ) ; } ) ;
153- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFileTaskAsync ( ( string ) null , null , null ) ; } ) ;
148+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadFileTaskAsync ( ( string ) null , null ) ; } ) ;
149+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadFileTaskAsync ( ( string ) null , null , null ) ; } ) ;
154150 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFileTaskAsync ( ( Uri ) null , null ) ; } ) ;
155151 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadFileTaskAsync ( ( Uri ) null , null , null ) ; } ) ;
156152
@@ -169,7 +165,6 @@ public static void UploadFile_InvalidArguments_ThrowExceptions()
169165 AssertExtensions . Throws < ArgumentNullException > ( "fileName" , ( ) => { wc . UploadFileTaskAsync ( new Uri ( "http://localhost" ) , null , null ) ; } ) ;
170166 }
171167
172- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // Difference in behavior.
173168 [ Fact ]
174169 public static void UploadString_InvalidArguments_ThrowExceptions ( )
175170 {
@@ -184,8 +179,8 @@ public static void UploadString_InvalidArguments_ThrowExceptions()
184179 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadStringAsync ( ( Uri ) null , null , null ) ; } ) ;
185180 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadStringAsync ( ( Uri ) null , null , null , null ) ; } ) ;
186181
187- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadStringTaskAsync ( ( string ) null , null ) ; } ) ;
188- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadStringTaskAsync ( ( string ) null , null , null ) ; } ) ;
182+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadStringTaskAsync ( ( string ) null , null ) ; } ) ;
183+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadStringTaskAsync ( ( string ) null , null , null ) ; } ) ;
189184 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadStringTaskAsync ( ( Uri ) null , null ) ; } ) ;
190185 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadStringTaskAsync ( ( Uri ) null , null , null ) ; } ) ;
191186
@@ -204,7 +199,6 @@ public static void UploadString_InvalidArguments_ThrowExceptions()
204199 AssertExtensions . Throws < ArgumentNullException > ( "data" , ( ) => { wc . UploadStringTaskAsync ( new Uri ( "http://localhost" ) , null , null ) ; } ) ;
205200 }
206201
207- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // Difference in behavior.
208202 [ Fact ]
209203 public static void UploadValues_InvalidArguments_ThrowExceptions ( )
210204 {
@@ -219,8 +213,8 @@ public static void UploadValues_InvalidArguments_ThrowExceptions()
219213 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadValuesAsync ( ( Uri ) null , null , null ) ; } ) ;
220214 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadValuesAsync ( ( Uri ) null , null , null , null ) ; } ) ;
221215
222- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadValuesTaskAsync ( ( string ) null , null ) ; } ) ;
223- AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadValuesTaskAsync ( ( string ) null , null , null ) ; } ) ;
216+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadValuesTaskAsync ( ( string ) null , null ) ; } ) ;
217+ AssertExtensions . Throws < ArgumentNullException > ( PlatformDetection . IsFullFramework ? "path" : "address" , ( ) => { wc . UploadValuesTaskAsync ( ( string ) null , null , null ) ; } ) ;
224218 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadValuesTaskAsync ( ( Uri ) null , null ) ; } ) ;
225219 AssertExtensions . Throws < ArgumentNullException > ( "address" , ( ) => { wc . UploadValuesTaskAsync ( ( Uri ) null , null , null ) ; } ) ;
226220
@@ -393,19 +387,46 @@ await LoopbackServer.ReadRequestAndSendResponseAsync(server,
393387 Assert . Equal ( "ArbitraryValue" , wc . ResponseHeaders [ "ArbitraryHeader" ] ) ;
394388 }
395389
396- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882" ) ] // hangs on NETFX
390+ [ ActiveIssue ( 18680 ) ]
391+ [ OuterLoop ( "Networking test talking to remote server: issue #11345" ) ]
392+ [ Theory ]
393+ [ InlineData ( "Connection" , "close" ) ]
394+ [ InlineData ( "Expect" , "100-continue" ) ]
395+ public static async Task RequestHeaders_AddDisallowedHeaderAndSendRequest_ThrowsWebException ( string headerName , string headerValue )
396+ {
397+ var wc = new WebClient ( ) ;
398+ wc . Headers [ headerName ] = headerValue ;
399+ await Assert . ThrowsAsync < WebException > ( ( ) => wc . DownloadStringTaskAsync ( System . Net . Test . Common . Configuration . Http . RemoteEchoServer ) ) ;
400+ }
401+
402+ [ ActiveIssue ( 18680 ) ]
403+ [ OuterLoop ( "Networking test talking to remote server: issue #11345" ) ]
404+ [ Theory ]
405+ [ InlineData ( "http://localhost" , true ) ]
406+ [ InlineData ( "localhost" , false ) ]
407+ public static async Task RequestHeaders_AddHostHeaderAndSendRequest_ExpectedResult ( string hostHeaderValue , bool throwsWebException )
408+ {
409+ var wc = new WebClient ( ) ;
410+ wc . Headers [ "Host" ] = hostHeaderValue ;
411+ if ( throwsWebException )
412+ {
413+ await Assert . ThrowsAsync < WebException > ( ( ) => wc . DownloadStringTaskAsync ( System . Net . Test . Common . Configuration . Http . RemoteEchoServer ) ) ;
414+ }
415+ else
416+ {
417+ await wc . DownloadStringTaskAsync ( System . Net . Test . Common . Configuration . Http . RemoteEchoServer ) ;
418+ }
419+ }
420+
397421 [ Fact ]
398422 public static async Task RequestHeaders_SpecialHeaders_RequestSucceeds ( )
399423 {
400424 var wc = new WebClient ( ) ;
401425
402426 wc . Headers [ "Accept" ] = "text/html" ;
403- wc . Headers [ "Connection" ] = "close" ;
404427 wc . Headers [ "ContentType" ] = "text/html; charset=utf-8" ;
405- wc . Headers [ "Expect" ] = "100-continue" ;
406428 wc . Headers [ "Referer" ] = "http://localhost" ;
407429 wc . Headers [ "User-Agent" ] = ".NET" ;
408- wc . Headers [ "Host" ] = "http://localhost" ;
409430
410431 await LoopbackServer . CreateServerAsync ( async ( server , url ) =>
411432 {
@@ -667,7 +688,7 @@ public async Task UploadString_Success(Uri echoServer)
667688 Assert . Contains ( ExpectedText , result ) ;
668689 }
669690
670- [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #17882 " ) ] // Difference in behavior.
691+ [ SkipOnTargetFramework ( TargetFrameworkMonikers . NetFramework , "dotnet/corefx #18674 " ) ] // Difference in behavior.
671692 [ OuterLoop ( "Networking test talking to remote server: issue #11345" ) ]
672693 [ Theory ]
673694 [ MemberData ( nameof ( EchoServers ) ) ]
0 commit comments