2 // WebClientTest.cs - NUnit Test Cases for System.Net.WebClient
4 // Copyright (C) 2007 Novell, Inc (http://www.novell.com)
8 using System.Collections;
9 using System.Collections.Specialized;
10 using System.Globalization;
13 using System.Net.Sockets;
14 using System.Runtime.Serialization;
16 using System.Threading;
17 using NUnit.Framework;
19 namespace MonoTests.System.Net
22 public class WebClientTest
24 private string _tempFolder;
29 _tempFolder = Path.Combine (Path.GetTempPath (),
31 if (Directory.Exists (_tempFolder))
32 Directory.Delete (_tempFolder, true);
33 Directory.CreateDirectory (_tempFolder);
37 public void TearDown ()
39 if (Directory.Exists (_tempFolder))
40 Directory.Delete (_tempFolder, true);
44 [Category ("InetAccess")]
45 public void DownloadTwice ()
47 WebClient wc = new WebClient();
48 string filename = Path.GetTempFileName();
50 // A new, but empty file has been created. This is a test case
52 wc.DownloadFile("http://google.com/", filename);
54 // Now, remove the file and attempt to download again.
55 File.Delete(filename);
56 wc.DownloadFile("http://google.com/", filename);
60 public void DownloadData1_Address_Null ()
62 WebClient wc = new WebClient ();
64 wc.DownloadData ((string) null);
67 } catch (ArgumentNullException ex) {
68 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
69 Assert.IsNull (ex.InnerException, "#3");
70 Assert.IsNotNull (ex.Message, "#4");
71 Assert.IsNotNull (ex.ParamName, "#5");
72 Assert.AreEqual ("address", ex.ParamName, "#6");
75 } catch (WebException ex) {
76 // An error occurred performing a WebClient request
77 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
78 Assert.IsNotNull (ex.Message, "#3");
79 Assert.IsNull (ex.Response, "#4");
80 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
82 ArgumentNullException inner = ex.InnerException
83 as ArgumentNullException;
84 Assert.IsNotNull (inner, "#6");
85 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
86 Assert.IsNull (inner.InnerException, "#8");
87 Assert.IsNotNull (inner.Message, "#9");
88 Assert.IsNotNull (inner.ParamName, "#10");
89 Assert.AreEqual ("uriString", inner.ParamName, "#11");
94 [Test] // DownloadData (string)
95 public void DownloadData1_Address_SchemeNotSupported ()
97 WebClient wc = new WebClient ();
99 wc.DownloadData ("tp://scheme.notsupported");
101 } catch (WebException ex) {
102 // An error occurred performing a WebClient request
103 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
104 Assert.IsNotNull (ex.InnerException, "#3");
105 Assert.IsNotNull (ex.Message, "#4");
106 Assert.IsNull (ex.Response, "#5");
107 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
109 // The URI prefix is not recognized
110 Exception inner = ex.InnerException;
111 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
112 Assert.IsNull (inner.InnerException, "#8");
113 Assert.IsNotNull (inner.Message, "#9");
118 [Test] // DownloadData (Uri)
119 public void DownloadData2_Address_Null ()
121 WebClient wc = new WebClient ();
123 wc.DownloadData ((Uri) null);
125 } catch (ArgumentNullException ex) {
126 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
127 Assert.IsNull (ex.InnerException, "#3");
128 Assert.IsNotNull (ex.Message, "#4");
129 Assert.IsNotNull (ex.ParamName, "#5");
130 Assert.AreEqual ("address", ex.ParamName, "#6");
134 [Test] // DownloadData (Uri)
135 public void DownloadData2_Address_SchemeNotSupported ()
137 WebClient wc = new WebClient ();
139 wc.DownloadData (new Uri ("tp://scheme.notsupported"));
141 } catch (WebException ex) {
142 // An error occurred performing a WebClient request
143 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
144 Assert.IsNotNull (ex.InnerException, "#3");
145 Assert.IsNotNull (ex.Message, "#4");
146 Assert.IsNull (ex.Response, "#5");
147 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
149 // The URI prefix is not recognized
150 Exception inner = ex.InnerException;
151 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
152 Assert.IsNull (inner.InnerException, "#8");
153 Assert.IsNotNull (inner.Message, "#9");
159 public void DownloadFile1_Address_Null ()
161 WebClient wc = new WebClient ();
163 wc.DownloadFile ((string) null, "tmp.out");
166 } catch (ArgumentNullException ex) {
167 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
168 Assert.IsNull (ex.InnerException, "#3");
169 Assert.IsNotNull (ex.Message, "#4");
170 Assert.IsNotNull (ex.ParamName, "#5");
171 Assert.AreEqual ("address", ex.ParamName, "#6");
174 } catch (WebException ex) {
175 // An error occurred performing a WebClient request
176 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
177 Assert.IsNotNull (ex.Message, "#3");
178 Assert.IsNull (ex.Response, "#4");
179 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
181 ArgumentNullException inner = ex.InnerException
182 as ArgumentNullException;
183 Assert.IsNotNull (inner, "#6");
184 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
185 Assert.IsNull (inner.InnerException, "#8");
186 Assert.IsNotNull (inner.Message, "#9");
187 Assert.IsNotNull (inner.ParamName, "#10");
188 Assert.AreEqual ("uriString", inner.ParamName, "#11");
193 [Test] // DownloadFile (string, string)
194 public void DownloadFile1_Address_SchemeNotSupported ()
196 WebClient wc = new WebClient ();
198 wc.DownloadFile ("tp://scheme.notsupported",
201 } catch (WebException ex) {
202 // An error occurred performing a WebClient request
203 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
204 Assert.IsNotNull (ex.InnerException, "#3");
205 Assert.IsNotNull (ex.Message, "#4");
206 Assert.IsNull (ex.Response, "#5");
207 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
209 // The URI prefix is not recognized
210 Exception inner = ex.InnerException;
211 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
212 Assert.IsNull (inner.InnerException, "#8");
213 Assert.IsNotNull (inner.Message, "#9");
217 [Test] // DownloadFile (string, string)
218 public void DownloadFile1_FileName_Null ()
220 WebClient wc = new WebClient ();
222 wc.DownloadFile ("tp://scheme.notsupported",
226 } catch (ArgumentNullException ex) {
227 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
228 Assert.IsNull (ex.InnerException, "#3");
229 Assert.IsNotNull (ex.Message, "#4");
230 Assert.IsNotNull (ex.ParamName, "#5");
231 Assert.AreEqual ("fileName", ex.ParamName, "#6");
234 } catch (WebException ex) {
235 // An error occurred performing a WebClient request
236 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
237 Assert.IsNotNull (ex.Message, "#3");
238 Assert.IsNull (ex.Response, "#4");
239 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
241 ArgumentNullException inner = ex.InnerException
242 as ArgumentNullException;
243 Assert.IsNotNull (inner, "#6");
244 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
245 Assert.IsNull (inner.InnerException, "#8");
246 Assert.IsNotNull (inner.Message, "#9");
247 Assert.IsNotNull (inner.ParamName, "#10");
248 Assert.AreEqual ("path", inner.ParamName, "#11");
254 [Test] // DownloadFile (Uri, string)
255 public void DownloadFile2_Address_Null ()
257 WebClient wc = new WebClient ();
259 wc.DownloadFile ((Uri) null, "tmp.out");
261 } catch (ArgumentNullException ex) {
262 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
263 Assert.IsNull (ex.InnerException, "#3");
264 Assert.IsNotNull (ex.Message, "#4");
265 Assert.IsNotNull (ex.ParamName, "#5");
266 Assert.AreEqual ("address", ex.ParamName, "#6");
270 [Test] // DownloadFile (Uri, string)
271 public void DownloadFile2_Address_SchemeNotSupported ()
273 WebClient wc = new WebClient ();
275 wc.DownloadFile (new Uri ("tp://scheme.notsupported"),
278 } catch (WebException ex) {
279 // An error occurred performing a WebClient request
280 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
281 Assert.IsNotNull (ex.InnerException, "#3");
282 Assert.IsNotNull (ex.Message, "#4");
283 Assert.IsNull (ex.Response, "#5");
284 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
286 // The URI prefix is not recognized
287 Exception inner = ex.InnerException;
288 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
289 Assert.IsNull (inner.InnerException, "#8");
290 Assert.IsNotNull (inner.Message, "#9");
294 [Test] // DownloadFile (Uri, string)
295 public void DownloadFile2_FileName_Null ()
297 WebClient wc = new WebClient ();
299 wc.DownloadFile (new Uri ("tp://scheme.notsupported"),
302 } catch (ArgumentNullException ex) {
303 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
304 Assert.IsNull (ex.InnerException, "#3");
305 Assert.IsNotNull (ex.Message, "#4");
306 Assert.IsNotNull (ex.ParamName, "#5");
307 Assert.AreEqual ("fileName", ex.ParamName, "#6");
311 [Test] // DownloadString (string)
312 public void DownloadString1_Address_Null ()
314 WebClient wc = new WebClient ();
316 wc.DownloadString ((string) null);
318 } catch (ArgumentNullException ex) {
319 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
320 Assert.IsNull (ex.InnerException, "#3");
321 Assert.IsNotNull (ex.Message, "#4");
322 Assert.IsNotNull (ex.ParamName, "#5");
323 Assert.AreEqual ("address", ex.ParamName, "#6");
327 [Test] // DownloadString (string)
328 public void DownloadString1_Address_SchemeNotSupported ()
330 WebClient wc = new WebClient ();
332 wc.DownloadString ("tp://scheme.notsupported");
334 } catch (WebException ex) {
335 // An error occurred performing a WebClient request
336 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
337 Assert.IsNotNull (ex.InnerException, "#3");
338 Assert.IsNotNull (ex.Message, "#4");
339 Assert.IsNull (ex.Response, "#5");
340 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
342 // The URI prefix is not recognized
343 Exception inner = ex.InnerException;
344 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
345 Assert.IsNull (inner.InnerException, "#8");
346 Assert.IsNotNull (inner.Message, "#9");
350 [Test] // DownloadString (Uri)
351 public void DownloadString2_Address_Null ()
353 WebClient wc = new WebClient ();
355 wc.DownloadString ((Uri) null);
357 } catch (ArgumentNullException ex) {
358 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
359 Assert.IsNull (ex.InnerException, "#3");
360 Assert.IsNotNull (ex.Message, "#4");
361 Assert.IsNotNull (ex.ParamName, "#5");
362 Assert.AreEqual ("address", ex.ParamName, "#6");
366 [Test] // DownloadString (Uri)
367 public void DownloadString2_Address_SchemeNotSupported ()
369 WebClient wc = new WebClient ();
371 wc.DownloadString (new Uri ("tp://scheme.notsupported"));
373 } catch (WebException ex) {
374 // An error occurred performing a WebClient request
375 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
376 Assert.IsNotNull (ex.InnerException, "#3");
377 Assert.IsNotNull (ex.Message, "#4");
378 Assert.IsNull (ex.Response, "#5");
379 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
381 // The URI prefix is not recognized
382 Exception inner = ex.InnerException;
383 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
384 Assert.IsNull (inner.InnerException, "#8");
385 Assert.IsNotNull (inner.Message, "#9");
390 public void EncodingTest ()
392 WebClient wc = new WebClient ();
393 Assert.AreSame (Encoding.Default, wc.Encoding, "#1");
394 wc.Encoding = Encoding.ASCII;
395 Assert.AreSame (Encoding.ASCII, wc.Encoding, "#2");
399 public void Encoding_Value_Null ()
401 WebClient wc = new WebClient ();
405 } catch (ArgumentNullException ex) {
406 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
407 Assert.IsNull (ex.InnerException, "#3");
408 Assert.IsNotNull (ex.Message, "#4");
409 Assert.AreEqual ("Encoding", ex.ParamName, "#6");
414 [Test] // OpenRead (string)
415 public void OpenRead1_Address_Null ()
417 WebClient wc = new WebClient ();
419 wc.OpenRead ((string) null);
422 } catch (ArgumentNullException ex) {
423 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
424 Assert.IsNull (ex.InnerException, "#3");
425 Assert.IsNotNull (ex.Message, "#4");
426 Assert.IsNotNull (ex.ParamName, "#5");
427 Assert.AreEqual ("address", ex.ParamName, "#6");
430 } catch (WebException ex) {
431 // An error occurred performing a WebClient request
432 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
433 Assert.IsNotNull (ex.Message, "#3");
434 Assert.IsNull (ex.Response, "#4");
435 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
437 ArgumentNullException inner = ex.InnerException
438 as ArgumentNullException;
439 Assert.IsNotNull (inner, "#6");
440 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
441 Assert.IsNull (inner.InnerException, "#8");
442 Assert.IsNotNull (inner.Message, "#9");
443 Assert.IsNotNull (inner.ParamName, "#10");
444 Assert.AreEqual ("uriString", inner.ParamName, "#11");
449 [Test] // OpenRead (string)
450 public void OpenRead1_Address_SchemeNotSupported ()
452 WebClient wc = new WebClient ();
454 wc.OpenRead ("tp://scheme.notsupported");
456 } catch (WebException ex) {
457 // An error occurred performing a WebClient request
458 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
459 Assert.IsNotNull (ex.InnerException, "#3");
460 Assert.IsNotNull (ex.Message, "#4");
461 Assert.IsNull (ex.Response, "#5");
462 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
464 // The URI prefix is not recognized
465 Exception inner = ex.InnerException;
466 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
467 Assert.IsNull (inner.InnerException, "#8");
468 Assert.IsNotNull (inner.Message, "#9");
473 [Test] // OpenRead (Uri)
474 public void OpenRead2_Address_Null ()
476 WebClient wc = new WebClient ();
478 wc.OpenRead ((Uri) null);
480 } catch (ArgumentNullException ex) {
481 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
482 Assert.IsNull (ex.InnerException, "#3");
483 Assert.IsNotNull (ex.Message, "#4");
484 Assert.IsNotNull (ex.ParamName, "#5");
485 Assert.AreEqual ("address", ex.ParamName, "#6");
489 [Test] // OpenRead (Uri)
490 public void OpenRead2_Address_SchemeNotSupported ()
492 WebClient wc = new WebClient ();
494 wc.OpenRead (new Uri ("tp://scheme.notsupported"));
496 } catch (WebException ex) {
497 // An error occurred performing a WebClient request
498 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
499 Assert.IsNotNull (ex.InnerException, "#3");
500 Assert.IsNotNull (ex.Message, "#4");
501 Assert.IsNull (ex.Response, "#5");
502 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
504 // The URI prefix is not recognized
505 Exception inner = ex.InnerException;
506 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
507 Assert.IsNull (inner.InnerException, "#8");
508 Assert.IsNotNull (inner.Message, "#9");
513 [Test] // OpenWrite (string)
514 public void OpenWrite1_Address_Null ()
516 WebClient wc = new WebClient ();
518 wc.OpenWrite ((string) null);
521 } catch (ArgumentNullException ex) {
522 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
523 Assert.IsNull (ex.InnerException, "#3");
524 Assert.IsNotNull (ex.Message, "#4");
525 Assert.IsNotNull (ex.ParamName, "#5");
526 Assert.AreEqual ("address", ex.ParamName, "#6");
529 } catch (WebException ex) {
530 // An error occurred performing a WebClient request
531 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
532 Assert.IsNotNull (ex.Message, "#3");
533 Assert.IsNull (ex.Response, "#4");
534 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
536 ArgumentNullException inner = ex.InnerException
537 as ArgumentNullException;
538 Assert.IsNotNull (inner, "#6");
539 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
540 Assert.IsNull (inner.InnerException, "#8");
541 Assert.IsNotNull (inner.Message, "#9");
542 Assert.IsNotNull (inner.ParamName, "#10");
543 Assert.AreEqual ("uriString", inner.ParamName, "#11");
548 [Test] // OpenWrite (string)
549 public void OpenWrite1_Address_SchemeNotSupported ()
551 WebClient wc = new WebClient ();
553 wc.OpenWrite ("tp://scheme.notsupported");
555 } catch (WebException ex) {
556 // An error occurred performing a WebClient request
557 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
558 Assert.IsNotNull (ex.InnerException, "#3");
559 Assert.IsNotNull (ex.Message, "#4");
560 Assert.IsNull (ex.Response, "#5");
561 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
563 // The URI prefix is not recognized
564 Exception inner = ex.InnerException;
565 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
566 Assert.IsNull (inner.InnerException, "#8");
567 Assert.IsNotNull (inner.Message, "#9");
571 [Test] // OpenWrite (string, string)
572 public void OpenWrite2_Address_Null ()
574 WebClient wc = new WebClient ();
576 wc.OpenWrite ((string) null, "PUT");
579 } catch (ArgumentNullException ex) {
580 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
581 Assert.IsNull (ex.InnerException, "#3");
582 Assert.IsNotNull (ex.Message, "#4");
583 Assert.IsNotNull (ex.ParamName, "#5");
584 Assert.AreEqual ("address", ex.ParamName, "#6");
587 } catch (WebException ex) {
588 // An error occurred performing a WebClient request
589 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
590 Assert.IsNotNull (ex.Message, "#3");
591 Assert.IsNull (ex.Response, "#4");
592 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
594 ArgumentNullException inner = ex.InnerException
595 as ArgumentNullException;
596 Assert.IsNotNull (inner, "#6");
597 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
598 Assert.IsNull (inner.InnerException, "#8");
599 Assert.IsNotNull (inner.Message, "#9");
600 Assert.IsNotNull (inner.ParamName, "#10");
601 Assert.AreEqual ("uriString", inner.ParamName, "#11");
606 [Test] // OpenWrite (string, string)
607 public void OpenWrite2_Address_SchemeNotSupported ()
609 WebClient wc = new WebClient ();
611 wc.OpenWrite ("tp://scheme.notsupported", "PUT");
613 } catch (WebException ex) {
614 // An error occurred performing a WebClient request
615 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
616 Assert.IsNotNull (ex.InnerException, "#3");
617 Assert.IsNotNull (ex.Message, "#4");
618 Assert.IsNull (ex.Response, "#5");
619 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
621 // The URI prefix is not recognized
622 Exception inner = ex.InnerException;
623 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
624 Assert.IsNull (inner.InnerException, "#8");
625 Assert.IsNotNull (inner.Message, "#9");
630 [Test] // OpenWrite (Uri)
631 public void OpenWrite3_Address_Null ()
633 WebClient wc = new WebClient ();
635 wc.OpenWrite ((Uri) null);
637 } catch (ArgumentNullException ex) {
638 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
639 Assert.IsNull (ex.InnerException, "#3");
640 Assert.IsNotNull (ex.Message, "#4");
641 Assert.IsNotNull (ex.ParamName, "#5");
642 Assert.AreEqual ("address", ex.ParamName, "#6");
646 [Test] // OpenWrite (Uri)
647 public void OpenWrite3_Address_SchemeNotSupported ()
649 WebClient wc = new WebClient ();
651 wc.OpenWrite (new Uri ("tp://scheme.notsupported"));
653 } catch (WebException ex) {
654 // An error occurred performing a WebClient request
655 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
656 Assert.IsNotNull (ex.InnerException, "#3");
657 Assert.IsNotNull (ex.Message, "#4");
658 Assert.IsNull (ex.Response, "#5");
659 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
661 // The URI prefix is not recognized
662 Exception inner = ex.InnerException;
663 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
664 Assert.IsNull (inner.InnerException, "#8");
665 Assert.IsNotNull (inner.Message, "#9");
669 [Test] // OpenWrite (Uri, string)
670 public void OpenWrite4_Address_Null ()
672 WebClient wc = new WebClient ();
674 wc.OpenWrite ((Uri) null, "POST");
676 } catch (ArgumentNullException ex) {
677 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
678 Assert.IsNull (ex.InnerException, "#3");
679 Assert.IsNotNull (ex.Message, "#4");
680 Assert.IsNotNull (ex.ParamName, "#5");
681 Assert.AreEqual ("address", ex.ParamName, "#6");
685 [Test] // OpenWrite (Uri, string)
686 public void OpenWrite4_Address_SchemeNotSupported ()
688 WebClient wc = new WebClient ();
690 wc.OpenWrite (new Uri ("tp://scheme.notsupported"),
693 } catch (WebException ex) {
694 // An error occurred performing a WebClient request
695 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
696 Assert.IsNotNull (ex.InnerException, "#3");
697 Assert.IsNotNull (ex.Message, "#4");
698 Assert.IsNull (ex.Response, "#5");
699 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
701 // The URI prefix is not recognized
702 Exception inner = ex.InnerException;
703 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
704 Assert.IsNull (inner.InnerException, "#8");
705 Assert.IsNotNull (inner.Message, "#9");
710 [Test] // UploadData (string, byte [])
711 public void UploadData1_Address_Null ()
713 WebClient wc = new WebClient ();
715 wc.UploadData ((string) null, new byte [] { 0x1a });
718 } catch (ArgumentNullException ex) {
719 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
720 Assert.IsNull (ex.InnerException, "#3");
721 Assert.IsNotNull (ex.Message, "#4");
722 Assert.IsNotNull (ex.ParamName, "#5");
723 Assert.AreEqual ("address", ex.ParamName, "#6");
726 } catch (WebException ex) {
727 // An error occurred performing a WebClient request
728 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
729 Assert.IsNotNull (ex.Message, "#3");
730 Assert.IsNull (ex.Response, "#4");
731 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
733 ArgumentNullException inner = ex.InnerException
734 as ArgumentNullException;
735 Assert.IsNotNull (inner, "#6");
736 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
737 Assert.IsNull (inner.InnerException, "#8");
738 Assert.IsNotNull (inner.Message, "#9");
739 Assert.IsNotNull (inner.ParamName, "#10");
740 Assert.AreEqual ("uriString", inner.ParamName, "#11");
745 [Test] // UploadData (string, byte [])
746 public void UploadData1_Address_SchemeNotSupported ()
748 WebClient wc = new WebClient ();
750 wc.UploadData ("tp://scheme.notsupported", new byte [] { 0x1a });
752 } catch (WebException ex) {
753 // An error occurred performing a WebClient request
754 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
755 Assert.IsNotNull (ex.InnerException, "#3");
756 Assert.IsNotNull (ex.Message, "#4");
757 Assert.IsNull (ex.Response, "#5");
758 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
760 // The URI prefix is not recognized
761 Exception inner = ex.InnerException;
762 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
763 Assert.IsNull (inner.InnerException, "#8");
764 Assert.IsNotNull (inner.Message, "#9");
768 [Test] // UploadData (string, byte [])
770 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
772 public void UploadData1_Data_Null ()
774 WebClient wc = new WebClient ();
776 wc.UploadData ("http://www.mono-project.com",
780 } catch (ArgumentNullException ex) {
781 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
782 Assert.IsNull (ex.InnerException, "#3");
783 Assert.IsNotNull (ex.Message, "#4");
784 Assert.IsNotNull (ex.ParamName, "#5");
785 Assert.AreEqual ("data", ex.ParamName, "#6");
788 } catch (WebException ex) {
789 // An error occurred performing a WebClient request
790 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
791 Assert.IsNotNull (ex.Message, "#3");
792 Assert.IsNull (ex.Response, "#4");
793 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
795 ArgumentNullException inner = ex.InnerException
796 as ArgumentNullException;
797 Assert.IsNotNull (inner, "#6");
798 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
799 Assert.IsNull (inner.InnerException, "#8");
800 Assert.IsNotNull (inner.Message, "#9");
801 Assert.IsNotNull (inner.ParamName, "#10");
802 Assert.AreEqual ("data", inner.ParamName, "#11");
808 [Test] // UploadData (Uri, byte [])
809 public void UploadData2_Address_Null ()
811 WebClient wc = new WebClient ();
813 wc.UploadData ((Uri) null, new byte [] { 0x1a });
815 } catch (ArgumentNullException ex) {
816 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
817 Assert.IsNull (ex.InnerException, "#3");
818 Assert.IsNotNull (ex.Message, "#4");
819 Assert.IsNotNull (ex.ParamName, "#5");
820 Assert.AreEqual ("address", ex.ParamName, "#6");
824 [Test] // UploadData (Uri, byte [])
825 public void UploadData2_Address_SchemeNotSupported ()
827 WebClient wc = new WebClient ();
829 wc.UploadData (new Uri ("tp://scheme.notsupported"),
830 new byte [] { 0x1a });
832 } catch (WebException ex) {
833 // An error occurred performing a WebClient request
834 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
835 Assert.IsNotNull (ex.InnerException, "#3");
836 Assert.IsNotNull (ex.Message, "#4");
837 Assert.IsNull (ex.Response, "#5");
838 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
840 // The URI prefix is not recognized
841 Exception inner = ex.InnerException;
842 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
843 Assert.IsNull (inner.InnerException, "#8");
844 Assert.IsNotNull (inner.Message, "#9");
848 [Test] // UploadData (Uri, byte [])
849 public void UploadData2_Data_Null ()
851 WebClient wc = new WebClient ();
853 wc.UploadData (new Uri ("http://www.mono-project.com"),
856 } catch (ArgumentNullException ex) {
857 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
858 Assert.IsNull (ex.InnerException, "#3");
859 Assert.IsNotNull (ex.Message, "#4");
860 Assert.IsNotNull (ex.ParamName, "#5");
861 Assert.AreEqual ("data", ex.ParamName, "#6");
866 [Test] // UploadData (string, string, byte [])
867 public void UploadData3_Address_Null ()
869 WebClient wc = new WebClient ();
871 wc.UploadData ((string) null, "POST",
872 new byte [] { 0x1a });
875 } catch (ArgumentNullException ex) {
876 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
877 Assert.IsNull (ex.InnerException, "#3");
878 Assert.IsNotNull (ex.Message, "#4");
879 Assert.IsNotNull (ex.ParamName, "#5");
880 Assert.AreEqual ("address", ex.ParamName, "#6");
883 } catch (WebException ex) {
884 // An error occurred performing a WebClient request
885 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
886 Assert.IsNotNull (ex.Message, "#3");
887 Assert.IsNull (ex.Response, "#4");
888 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
890 ArgumentNullException inner = ex.InnerException
891 as ArgumentNullException;
892 Assert.IsNotNull (inner, "#6");
893 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
894 Assert.IsNull (inner.InnerException, "#8");
895 Assert.IsNotNull (inner.Message, "#9");
896 Assert.IsNotNull (inner.ParamName, "#10");
897 Assert.AreEqual ("uriString", inner.ParamName, "#11");
902 [Test] // UploadData (string, string, byte [])
903 public void UploadData3_Address_SchemeNotSupported ()
905 WebClient wc = new WebClient ();
907 wc.UploadData ("tp://scheme.notsupported",
908 "POST", new byte [] { 0x1a });
910 } catch (WebException ex) {
911 // An error occurred performing a WebClient request
912 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
913 Assert.IsNotNull (ex.InnerException, "#3");
914 Assert.IsNotNull (ex.Message, "#4");
915 Assert.IsNull (ex.Response, "#5");
916 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
918 // The URI prefix is not recognized
919 Exception inner = ex.InnerException;
920 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
921 Assert.IsNull (inner.InnerException, "#8");
922 Assert.IsNotNull (inner.Message, "#9");
926 [Test] // UploadData (string, string, byte [])
928 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
930 public void UploadData3_Data_Null ()
932 WebClient wc = new WebClient ();
934 wc.UploadData ("http://www.mono-project.com",
935 "POST", (byte []) null);
938 } catch (ArgumentNullException ex) {
939 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
940 Assert.IsNull (ex.InnerException, "#3");
941 Assert.IsNotNull (ex.Message, "#4");
942 Assert.IsNotNull (ex.ParamName, "#5");
943 Assert.AreEqual ("data", ex.ParamName, "#6");
946 } catch (WebException ex) {
947 // An error occurred performing a WebClient request
948 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
949 Assert.IsNotNull (ex.Message, "#3");
950 Assert.IsNull (ex.Response, "#4");
951 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
953 ArgumentNullException inner = ex.InnerException
954 as ArgumentNullException;
955 Assert.IsNotNull (inner, "#6");
956 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
957 Assert.IsNull (inner.InnerException, "#8");
958 Assert.IsNotNull (inner.Message, "#9");
959 Assert.IsNotNull (inner.ParamName, "#10");
960 Assert.AreEqual ("data", inner.ParamName, "#11");
966 [Test] // UploadData (Uri, string, byte [])
967 public void UploadData4_Address_Null ()
969 WebClient wc = new WebClient ();
971 wc.UploadData ((Uri) null, "POST", new byte [] { 0x1a });
973 } catch (ArgumentNullException ex) {
974 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
975 Assert.IsNull (ex.InnerException, "#3");
976 Assert.IsNotNull (ex.Message, "#4");
977 Assert.IsNotNull (ex.ParamName, "#5");
978 Assert.AreEqual ("address", ex.ParamName, "#6");
982 [Test] // UploadData (Uri, string, byte [])
983 public void UploadData4_Address_SchemeNotSupported ()
985 WebClient wc = new WebClient ();
987 wc.UploadData (new Uri ("tp://scheme.notsupported"),
988 "POST", new byte [] { 0x1a });
990 } catch (WebException ex) {
991 // An error occurred performing a WebClient request
992 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
993 Assert.IsNotNull (ex.InnerException, "#3");
994 Assert.IsNotNull (ex.Message, "#4");
995 Assert.IsNull (ex.Response, "#5");
996 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
998 // The URI prefix is not recognized
999 Exception inner = ex.InnerException;
1000 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1001 Assert.IsNull (inner.InnerException, "#8");
1002 Assert.IsNotNull (inner.Message, "#9");
1006 [Test] // UploadData (Uri, string, byte [])
1007 public void UploadData4_Data_Null ()
1009 WebClient wc = new WebClient ();
1011 wc.UploadData (new Uri ("http://www.mono-project.com"),
1012 "POST", (byte []) null);
1014 } catch (ArgumentNullException ex) {
1015 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1016 Assert.IsNull (ex.InnerException, "#3");
1017 Assert.IsNotNull (ex.Message, "#4");
1018 Assert.IsNotNull (ex.ParamName, "#5");
1019 Assert.AreEqual ("data", ex.ParamName, "#6");
1024 [Test] // UploadFile (string, string)
1025 public void UploadFile1_Address_Null ()
1027 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1028 File.Create (tempFile).Close ();
1030 WebClient wc = new WebClient ();
1032 wc.UploadFile ((string) null, tempFile);
1035 } catch (ArgumentNullException ex) {
1036 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1037 Assert.IsNull (ex.InnerException, "#3");
1038 Assert.IsNotNull (ex.Message, "#4");
1039 Assert.IsNotNull (ex.ParamName, "#5");
1040 Assert.AreEqual ("address", ex.ParamName, "#6");
1043 } catch (WebException ex) {
1044 // An error occurred performing a WebClient request
1045 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1046 Assert.IsNotNull (ex.Message, "#3");
1047 Assert.IsNull (ex.Response, "#4");
1048 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1050 ArgumentNullException inner = ex.InnerException
1051 as ArgumentNullException;
1052 Assert.IsNotNull (inner, "#6");
1053 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1054 Assert.IsNull (inner.InnerException, "#8");
1055 Assert.IsNotNull (inner.Message, "#9");
1056 Assert.IsNotNull (inner.ParamName, "#10");
1057 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1062 [Test] // UploadFile (string, string)
1063 public void UploadFile1_Address_SchemeNotSupported ()
1065 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1066 File.Create (tempFile).Close ();
1068 WebClient wc = new WebClient ();
1070 wc.UploadFile ("tp://scheme.notsupported",
1073 } catch (WebException ex) {
1074 // An error occurred performing a WebClient request
1075 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1076 Assert.IsNotNull (ex.InnerException, "#3");
1077 Assert.IsNotNull (ex.Message, "#4");
1078 Assert.IsNull (ex.Response, "#5");
1079 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1081 // The URI prefix is not recognized
1082 Exception inner = ex.InnerException;
1083 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1084 Assert.IsNull (inner.InnerException, "#8");
1085 Assert.IsNotNull (inner.Message, "#9");
1089 [Test] // UploadFile (string, string)
1090 public void UploadFile1_FileName_NotFound ()
1092 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1094 WebClient wc = new WebClient ();
1096 wc.UploadFile ("tp://scheme.notsupported",
1099 } catch (WebException ex) {
1100 // An error occurred performing a WebClient request
1101 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1102 Assert.IsNotNull (ex.Message, "#3");
1103 Assert.IsNull (ex.Response, "#4");
1104 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1106 // Could not find file "..."
1107 FileNotFoundException inner = ex.InnerException
1108 as FileNotFoundException;
1109 Assert.IsNotNull (inner, "#6");
1110 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1111 Assert.IsNotNull (inner.FileName, "#8");
1112 Assert.AreEqual (tempFile, inner.FileName, "#9");
1113 Assert.IsNull (inner.InnerException, "#10");
1114 Assert.IsNotNull (inner.Message, "#11");
1118 [Test] // UploadFile (string, string)
1119 public void UploadFile1_FileName_Null ()
1121 WebClient wc = new WebClient ();
1123 wc.UploadFile ("tp://scheme.notsupported",
1127 } catch (ArgumentNullException ex) {
1128 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1129 Assert.IsNull (ex.InnerException, "#3");
1130 Assert.IsNotNull (ex.Message, "#4");
1131 Assert.IsNotNull (ex.ParamName, "#5");
1132 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1135 } catch (WebException ex) {
1136 // An error occurred performing a WebClient request
1137 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1138 Assert.IsNotNull (ex.Message, "#3");
1139 Assert.IsNull (ex.Response, "#4");
1140 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1142 ArgumentNullException inner = ex.InnerException
1143 as ArgumentNullException;
1144 Assert.IsNotNull (inner, "#6");
1145 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1146 Assert.IsNull (inner.InnerException, "#8");
1147 Assert.IsNotNull (inner.Message, "#9");
1148 Assert.IsNotNull (inner.ParamName, "#10");
1149 Assert.AreEqual ("path", inner.ParamName, "#11");
1155 [Test] // UploadFile (Uri, string)
1156 public void UploadFile2_Address_Null ()
1158 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1160 WebClient wc = new WebClient ();
1162 wc.UploadFile ((Uri) null, tempFile);
1164 } catch (ArgumentNullException ex) {
1165 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1166 Assert.IsNull (ex.InnerException, "#3");
1167 Assert.IsNotNull (ex.Message, "#4");
1168 Assert.IsNotNull (ex.ParamName, "#5");
1169 Assert.AreEqual ("address", ex.ParamName, "#6");
1173 [Test] // UploadFile (Uri, string)
1174 public void UploadFile2_Address_SchemeNotSupported ()
1176 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1177 File.Create (tempFile).Close ();
1179 WebClient wc = new WebClient ();
1181 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1184 } catch (WebException ex) {
1185 // An error occurred performing a WebClient request
1186 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1187 Assert.IsNotNull (ex.InnerException, "#3");
1188 Assert.IsNotNull (ex.Message, "#4");
1189 Assert.IsNull (ex.Response, "#5");
1190 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1192 // The URI prefix is not recognized
1193 Exception inner = ex.InnerException;
1194 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1195 Assert.IsNull (inner.InnerException, "#8");
1196 Assert.IsNotNull (inner.Message, "#9");
1200 [Test] // UploadFile (Uri, string)
1201 public void UploadFile2_FileName_NotFound ()
1203 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1205 WebClient wc = new WebClient ();
1207 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1210 } catch (WebException ex) {
1211 // An error occurred performing a WebClient request
1212 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1213 Assert.IsNotNull (ex.Message, "#3");
1214 Assert.IsNull (ex.Response, "#4");
1215 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1217 // Could not find file "..."
1218 FileNotFoundException inner = ex.InnerException
1219 as FileNotFoundException;
1220 Assert.IsNotNull (inner, "#6");
1221 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1222 Assert.IsNotNull (inner.FileName, "#8");
1223 Assert.AreEqual (tempFile, inner.FileName, "#9");
1224 Assert.IsNull (inner.InnerException, "#10");
1225 Assert.IsNotNull (inner.Message, "#11");
1229 [Test] // UploadFile (Uri, string)
1230 public void UploadFile2_FileName_Null ()
1232 WebClient wc = new WebClient ();
1234 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1237 } catch (ArgumentNullException ex) {
1238 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1239 Assert.IsNull (ex.InnerException, "#3");
1240 Assert.IsNotNull (ex.Message, "#4");
1241 Assert.IsNotNull (ex.ParamName, "#5");
1242 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1247 [Test] // UploadFile (string, string, string)
1248 public void UploadFile3_Address_Null ()
1250 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1251 File.Create (tempFile).Close ();
1253 WebClient wc = new WebClient ();
1255 wc.UploadFile ((string) null, "POST", tempFile);
1258 } catch (ArgumentNullException ex) {
1259 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1260 Assert.IsNull (ex.InnerException, "#3");
1261 Assert.IsNotNull (ex.Message, "#4");
1262 Assert.IsNotNull (ex.ParamName, "#5");
1263 Assert.AreEqual ("path", ex.ParamName, "#6");
1266 } catch (WebException ex) {
1267 // An error occurred performing a WebClient request
1268 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1269 Assert.IsNotNull (ex.Message, "#3");
1270 Assert.IsNull (ex.Response, "#4");
1271 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1273 ArgumentNullException inner = ex.InnerException
1274 as ArgumentNullException;
1275 Assert.IsNotNull (inner, "#6");
1276 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1277 Assert.IsNull (inner.InnerException, "#8");
1278 Assert.IsNotNull (inner.Message, "#9");
1279 Assert.IsNotNull (inner.ParamName, "#10");
1280 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1285 [Test] // UploadFile (string, string, string)
1286 public void UploadFile3_Address_SchemeNotSupported ()
1288 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1289 File.Create (tempFile).Close ();
1291 WebClient wc = new WebClient ();
1293 wc.UploadFile ("tp://scheme.notsupported",
1296 } catch (WebException ex) {
1297 // An error occurred performing a WebClient request
1298 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1299 Assert.IsNotNull (ex.InnerException, "#3");
1300 Assert.IsNotNull (ex.Message, "#4");
1301 Assert.IsNull (ex.Response, "#5");
1302 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1304 // The URI prefix is not recognized
1305 Exception inner = ex.InnerException;
1306 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1307 Assert.IsNull (inner.InnerException, "#8");
1308 Assert.IsNotNull (inner.Message, "#9");
1312 [Test] // UploadFile (string, string, string)
1313 public void UploadFile3_FileName_NotFound ()
1315 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1317 WebClient wc = new WebClient ();
1319 wc.UploadFile ("tp://scheme.notsupported",
1322 } catch (WebException ex) {
1323 // An error occurred performing a WebClient request
1324 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1325 Assert.IsNotNull (ex.Message, "#3");
1326 Assert.IsNull (ex.Response, "#4");
1327 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1329 // Could not find file "..."
1330 FileNotFoundException inner = ex.InnerException
1331 as FileNotFoundException;
1332 Assert.IsNotNull (inner, "#6");
1333 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1334 Assert.IsNotNull (inner.FileName, "#8");
1335 Assert.AreEqual (tempFile, inner.FileName, "#9");
1336 Assert.IsNull (inner.InnerException, "#10");
1337 Assert.IsNotNull (inner.Message, "#11");
1341 [Test] // UploadFile (string, string, string)
1342 public void UploadFile3_FileName_Null ()
1344 WebClient wc = new WebClient ();
1346 wc.UploadFile ("tp://scheme.notsupported",
1347 "POST", (string) null);
1350 } catch (ArgumentNullException ex) {
1351 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1352 Assert.IsNull (ex.InnerException, "#3");
1353 Assert.IsNotNull (ex.Message, "#4");
1354 Assert.IsNotNull (ex.ParamName, "#5");
1355 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1358 } catch (WebException ex) {
1359 // An error occurred performing a WebClient request
1360 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1361 Assert.IsNotNull (ex.Message, "#3");
1362 Assert.IsNull (ex.Response, "#4");
1363 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1365 ArgumentNullException inner = ex.InnerException
1366 as ArgumentNullException;
1367 Assert.IsNotNull (inner, "#6");
1368 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1369 Assert.IsNull (inner.InnerException, "#8");
1370 Assert.IsNotNull (inner.Message, "#9");
1371 Assert.IsNotNull (inner.ParamName, "#10");
1372 Assert.AreEqual ("path", inner.ParamName, "#11");
1378 [Test] // UploadFile (Uri, string, string)
1379 public void UploadFile4_Address_Null ()
1381 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1383 WebClient wc = new WebClient ();
1385 wc.UploadFile ((Uri) null, "POST", tempFile);
1387 } catch (ArgumentNullException ex) {
1388 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1389 Assert.IsNull (ex.InnerException, "#3");
1390 Assert.IsNotNull (ex.Message, "#4");
1391 Assert.IsNotNull (ex.ParamName, "#5");
1392 Assert.AreEqual ("address", ex.ParamName, "#6");
1396 [Test] // UploadFile (Uri, string, string)
1397 public void UploadFile4_Address_SchemeNotSupported ()
1399 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1400 File.Create (tempFile).Close ();
1402 WebClient wc = new WebClient ();
1404 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1407 } catch (WebException ex) {
1408 // An error occurred performing a WebClient request
1409 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1410 Assert.IsNotNull (ex.InnerException, "#3");
1411 Assert.IsNotNull (ex.Message, "#4");
1412 Assert.IsNull (ex.Response, "#5");
1413 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1415 // The URI prefix is not recognized
1416 Exception inner = ex.InnerException;
1417 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1418 Assert.IsNull (inner.InnerException, "#8");
1419 Assert.IsNotNull (inner.Message, "#9");
1423 [Test] // UploadFile (Uri, string, string)
1424 public void UploadFile4_FileName_NotFound ()
1426 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1428 WebClient wc = new WebClient ();
1430 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1433 } catch (WebException ex) {
1434 // An error occurred performing a WebClient request
1435 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1436 Assert.IsNotNull (ex.Message, "#3");
1437 Assert.IsNull (ex.Response, "#4");
1438 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1440 // Could not find file "..."
1441 FileNotFoundException inner = ex.InnerException
1442 as FileNotFoundException;
1443 Assert.IsNotNull (inner, "#6");
1444 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1445 Assert.IsNotNull (inner.FileName, "#8");
1446 Assert.AreEqual (tempFile, inner.FileName, "#9");
1447 Assert.IsNull (inner.InnerException, "#10");
1448 Assert.IsNotNull (inner.Message, "#11");
1452 [Test] // UploadFile (Uri, string, string)
1453 public void UploadFile4_FileName_Null ()
1455 WebClient wc = new WebClient ();
1457 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1458 "POST", (string) null);
1460 } catch (ArgumentNullException ex) {
1461 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1462 Assert.IsNull (ex.InnerException, "#3");
1463 Assert.IsNotNull (ex.Message, "#4");
1464 Assert.IsNotNull (ex.ParamName, "#5");
1465 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1469 [Test] // UploadString (string, string)
1470 public void UploadString1_Address_Null ()
1472 WebClient wc = new WebClient ();
1474 wc.UploadString ((string) null, (string) null);
1476 } catch (ArgumentNullException ex) {
1477 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1478 Assert.IsNull (ex.InnerException, "#3");
1479 Assert.IsNotNull (ex.Message, "#4");
1480 Assert.IsNotNull (ex.ParamName, "#5");
1481 Assert.AreEqual ("address", ex.ParamName, "#6");
1485 [Test] // UploadString (string, string)
1486 public void UploadString1_Address_SchemeNotSupported ()
1488 WebClient wc = new WebClient ();
1490 wc.UploadString ("tp://scheme.notsupported", "abc");
1492 } catch (WebException ex) {
1493 // An error occurred performing a WebClient request
1494 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1495 Assert.IsNotNull (ex.InnerException, "#3");
1496 Assert.IsNotNull (ex.Message, "#4");
1497 Assert.IsNull (ex.Response, "#5");
1498 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1500 // The URI prefix is not recognized
1501 Exception inner = ex.InnerException;
1502 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1503 Assert.IsNull (inner.InnerException, "#8");
1504 Assert.IsNotNull (inner.Message, "#9");
1508 [Test] // UploadString (string, string)
1509 public void UploadString1_Data_Null ()
1511 WebClient wc = new WebClient ();
1513 wc.UploadString ("tp://scheme.notsupported", (string) null);
1515 } catch (ArgumentNullException ex) {
1516 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1517 Assert.IsNull (ex.InnerException, "#3");
1518 Assert.IsNotNull (ex.Message, "#4");
1519 Assert.IsNotNull (ex.ParamName, "#5");
1520 Assert.AreEqual ("data", ex.ParamName, "#6");
1524 [Test] // UploadString (Uri, string)
1525 public void UploadString2_Address_Null ()
1527 WebClient wc = new WebClient ();
1529 wc.UploadString ((Uri) null, (string) null);
1531 } catch (ArgumentNullException ex) {
1532 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1533 Assert.IsNull (ex.InnerException, "#3");
1534 Assert.IsNotNull (ex.Message, "#4");
1535 Assert.IsNotNull (ex.ParamName, "#5");
1536 Assert.AreEqual ("address", ex.ParamName, "#6");
1540 [Test] // UploadString (Uri, string)
1541 public void UploadString2_Address_SchemeNotSupported ()
1543 WebClient wc = new WebClient ();
1545 wc.UploadString (new Uri ("tp://scheme.notsupported"), "abc");
1547 } catch (WebException ex) {
1548 // An error occurred performing a WebClient request
1549 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1550 Assert.IsNotNull (ex.InnerException, "#3");
1551 Assert.IsNotNull (ex.Message, "#4");
1552 Assert.IsNull (ex.Response, "#5");
1553 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1555 // The URI prefix is not recognized
1556 Exception inner = ex.InnerException;
1557 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1558 Assert.IsNull (inner.InnerException, "#8");
1559 Assert.IsNotNull (inner.Message, "#9");
1563 [Test] // UploadString (Uri, string)
1564 public void UploadString2_Data_Null ()
1566 WebClient wc = new WebClient ();
1568 wc.UploadString (new Uri ("tp://scheme.notsupported"),
1571 } catch (ArgumentNullException ex) {
1572 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1573 Assert.IsNull (ex.InnerException, "#3");
1574 Assert.IsNotNull (ex.Message, "#4");
1575 Assert.IsNotNull (ex.ParamName, "#5");
1576 Assert.AreEqual ("data", ex.ParamName, "#6");
1580 [Test] // UploadString (string, string, string)
1581 public void UploadString3_Address_Null ()
1583 WebClient wc = new WebClient ();
1585 wc.UploadString ((string) null, (string) null,
1588 } catch (ArgumentNullException ex) {
1589 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1590 Assert.IsNull (ex.InnerException, "#3");
1591 Assert.IsNotNull (ex.Message, "#4");
1592 Assert.IsNotNull (ex.ParamName, "#5");
1593 Assert.AreEqual ("address", ex.ParamName, "#6");
1597 [Test] // UploadString (string, string, string)
1598 public void UploadString3_Address_SchemeNotSupported ()
1600 WebClient wc = new WebClient ();
1602 wc.UploadString ("tp://scheme.notsupported",
1605 } catch (WebException ex) {
1606 // An error occurred performing a WebClient request
1607 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1608 Assert.IsNotNull (ex.InnerException, "#3");
1609 Assert.IsNotNull (ex.Message, "#4");
1610 Assert.IsNull (ex.Response, "#5");
1611 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1613 // The URI prefix is not recognized
1614 Exception inner = ex.InnerException;
1615 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1616 Assert.IsNull (inner.InnerException, "#8");
1617 Assert.IsNotNull (inner.Message, "#9");
1621 [Test] // UploadString (string, string, string)
1622 public void UploadString3_Data_Null ()
1624 WebClient wc = new WebClient ();
1626 wc.UploadString ("tp://scheme.notsupported",
1627 "POST", (string) null);
1629 } catch (ArgumentNullException ex) {
1630 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1631 Assert.IsNull (ex.InnerException, "#3");
1632 Assert.IsNotNull (ex.Message, "#4");
1633 Assert.IsNotNull (ex.ParamName, "#5");
1634 Assert.AreEqual ("data", ex.ParamName, "#6");
1638 [Test] // UploadString (Uri, string, string)
1639 public void UploadString4_Address_Null ()
1641 WebClient wc = new WebClient ();
1643 wc.UploadString ((Uri) null, (string) null,
1646 } catch (ArgumentNullException ex) {
1647 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1648 Assert.IsNull (ex.InnerException, "#3");
1649 Assert.IsNotNull (ex.Message, "#4");
1650 Assert.IsNotNull (ex.ParamName, "#5");
1651 Assert.AreEqual ("address", ex.ParamName, "#6");
1655 [Test] // UploadString (Uri, string, string)
1656 public void UploadString4_Address_SchemeNotSupported ()
1658 WebClient wc = new WebClient ();
1660 wc.UploadString (new Uri ("tp://scheme.notsupported"),
1663 } catch (WebException ex) {
1664 // An error occurred performing a WebClient request
1665 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1666 Assert.IsNotNull (ex.InnerException, "#3");
1667 Assert.IsNotNull (ex.Message, "#4");
1668 Assert.IsNull (ex.Response, "#5");
1669 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1671 // The URI prefix is not recognized
1672 Exception inner = ex.InnerException;
1673 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1674 Assert.IsNull (inner.InnerException, "#8");
1675 Assert.IsNotNull (inner.Message, "#9");
1679 [Test] // UploadString (Uri, string, string)
1680 public void UploadString4_Data_Null ()
1682 WebClient wc = new WebClient ();
1684 wc.UploadString (new Uri ("tp://scheme.notsupported"),
1685 "POST", (string) null);
1687 } catch (ArgumentNullException ex) {
1688 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1689 Assert.IsNull (ex.InnerException, "#3");
1690 Assert.IsNotNull (ex.Message, "#4");
1691 Assert.IsNotNull (ex.ParamName, "#5");
1692 Assert.AreEqual ("data", ex.ParamName, "#6");
1698 public void UploadValues1 ()
1700 IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
1701 string url = "http://" + IPAddress.Loopback.ToString () + ":8000/test/";
1703 using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
1706 WebClient wc = new WebClient ();
1708 wc.Encoding = Encoding.ASCII;
1711 NameValueCollection nvc = new NameValueCollection ();
1712 nvc.Add ("Name", "\u0041\u2262\u0391\u002E");
1713 nvc.Add ("Address", "\u002E\u2262\u0041\u0391");
1715 byte [] buffer = wc.UploadValues (url, nvc);
1716 string response = Encoding.UTF8.GetString (buffer);
1717 Assert.AreEqual ("Name=A%e2%89%a2%ce%91.&Address=.%e2%89%a2A%ce%91\r\n", response);
1721 [Test] // UploadValues (string, NameValueCollection)
1722 public void UploadValues1_Address_Null ()
1724 WebClient wc = new WebClient ();
1726 wc.UploadValues ((string) null, new NameValueCollection ());
1729 } catch (ArgumentNullException ex) {
1730 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1731 Assert.IsNull (ex.InnerException, "#3");
1732 Assert.IsNotNull (ex.Message, "#4");
1733 Assert.IsNotNull (ex.ParamName, "#5");
1734 Assert.AreEqual ("address", ex.ParamName, "#6");
1737 } catch (WebException ex) {
1738 // An error occurred performing a WebClient request
1739 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1740 Assert.IsNotNull (ex.Message, "#3");
1741 Assert.IsNull (ex.Response, "#4");
1742 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1744 ArgumentNullException inner = ex.InnerException
1745 as ArgumentNullException;
1746 Assert.IsNotNull (inner, "#6");
1747 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1748 Assert.IsNull (inner.InnerException, "#8");
1749 Assert.IsNotNull (inner.Message, "#9");
1750 Assert.IsNotNull (inner.ParamName, "#10");
1751 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1756 [Test] // UploadValues (string, NameValueCollection)
1757 public void UploadValues1_Address_SchemeNotSupported ()
1759 WebClient wc = new WebClient ();
1761 wc.UploadValues ("tp://scheme.notsupported",
1762 new NameValueCollection ());
1764 } catch (WebException ex) {
1765 // An error occurred performing a WebClient request
1766 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1767 Assert.IsNotNull (ex.InnerException, "#3");
1768 Assert.IsNotNull (ex.Message, "#4");
1769 Assert.IsNull (ex.Response, "#5");
1770 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1772 // The URI prefix is not recognized
1773 Exception inner = ex.InnerException;
1774 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1775 Assert.IsNull (inner.InnerException, "#8");
1776 Assert.IsNotNull (inner.Message, "#9");
1780 [Test] // UploadValues (string, NameValueCollection)
1782 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
1784 public void UploadValues1_Data_Null ()
1786 WebClient wc = new WebClient ();
1788 wc.UploadValues ("http://www.mono-project.com",
1789 (NameValueCollection) null);
1792 } catch (ArgumentNullException ex) {
1793 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1794 Assert.IsNull (ex.InnerException, "#3");
1795 Assert.IsNotNull (ex.Message, "#4");
1796 Assert.IsNotNull (ex.ParamName, "#5");
1797 Assert.AreEqual ("data", ex.ParamName, "#6");
1800 } catch (WebException ex) {
1801 // An error occurred performing a WebClient request
1802 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1803 Assert.IsNotNull (ex.Message, "#3");
1804 Assert.IsNull (ex.Response, "#4");
1805 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1807 ArgumentNullException inner = ex.InnerException
1808 as ArgumentNullException;
1809 Assert.IsNotNull (inner, "#6");
1810 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1811 Assert.IsNull (inner.InnerException, "#8");
1812 Assert.IsNotNull (inner.Message, "#9");
1813 Assert.IsNotNull (inner.ParamName, "#10");
1814 Assert.AreEqual ("data", inner.ParamName, "#11");
1820 [Test] // UploadValues (Uri, NameValueCollection)
1821 public void UploadValues2_Address_Null ()
1823 WebClient wc = new WebClient ();
1825 wc.UploadValues ((Uri) null, new NameValueCollection ());
1827 } catch (ArgumentNullException ex) {
1828 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1829 Assert.IsNull (ex.InnerException, "#3");
1830 Assert.IsNotNull (ex.Message, "#4");
1831 Assert.IsNotNull (ex.ParamName, "#5");
1832 Assert.AreEqual ("address", ex.ParamName, "#6");
1836 [Test] // UploadValues (Uri, NameValueCollection)
1837 public void UploadValues2_Address_SchemeNotSupported ()
1839 WebClient wc = new WebClient ();
1841 wc.UploadValues (new Uri ("tp://scheme.notsupported"),
1842 new NameValueCollection ());
1844 } catch (WebException ex) {
1845 // An error occurred performing a WebClient request
1846 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1847 Assert.IsNotNull (ex.InnerException, "#3");
1848 Assert.IsNotNull (ex.Message, "#4");
1849 Assert.IsNull (ex.Response, "#5");
1850 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1852 // The URI prefix is not recognized
1853 Exception inner = ex.InnerException;
1854 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1855 Assert.IsNull (inner.InnerException, "#8");
1856 Assert.IsNotNull (inner.Message, "#9");
1860 [Test] // UploadValues (Uri, NameValueCollection)
1861 public void UploadValues2_Data_Null ()
1863 WebClient wc = new WebClient ();
1865 wc.UploadValues (new Uri ("http://www.mono-project.com"),
1866 (NameValueCollection) null);
1868 } catch (ArgumentNullException ex) {
1869 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1870 Assert.IsNull (ex.InnerException, "#3");
1871 Assert.IsNotNull (ex.Message, "#4");
1872 Assert.IsNotNull (ex.ParamName, "#5");
1873 Assert.AreEqual ("data", ex.ParamName, "#6");
1878 [Test] // UploadValues (string, string, NameValueCollection)
1879 public void UploadValues3_Address_Null ()
1881 WebClient wc = new WebClient ();
1883 wc.UploadValues ((string) null, "POST",
1884 new NameValueCollection ());
1887 } catch (ArgumentNullException ex) {
1888 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1889 Assert.IsNull (ex.InnerException, "#3");
1890 Assert.IsNotNull (ex.Message, "#4");
1891 Assert.IsNotNull (ex.ParamName, "#5");
1892 Assert.AreEqual ("address", ex.ParamName, "#6");
1895 } catch (WebException ex) {
1896 // An error occurred performing a WebClient request
1897 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1898 Assert.IsNotNull (ex.Message, "#3");
1899 Assert.IsNull (ex.Response, "#4");
1900 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1902 ArgumentNullException inner = ex.InnerException
1903 as ArgumentNullException;
1904 Assert.IsNotNull (inner, "#6");
1905 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1906 Assert.IsNull (inner.InnerException, "#8");
1907 Assert.IsNotNull (inner.Message, "#9");
1908 Assert.IsNotNull (inner.ParamName, "#10");
1909 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1914 [Test] // UploadValues (string, string, NameValueCollection)
1915 public void UploadValues3_Address_SchemeNotSupported ()
1917 WebClient wc = new WebClient ();
1919 wc.UploadValues ("tp://scheme.notsupported",
1920 "POST", new NameValueCollection ());
1922 } catch (WebException ex) {
1923 // An error occurred performing a WebClient request
1924 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1925 Assert.IsNotNull (ex.InnerException, "#3");
1926 Assert.IsNotNull (ex.Message, "#4");
1927 Assert.IsNull (ex.Response, "#5");
1928 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1930 // The URI prefix is not recognized
1931 Exception inner = ex.InnerException;
1932 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1933 Assert.IsNull (inner.InnerException, "#8");
1934 Assert.IsNotNull (inner.Message, "#9");
1938 [Test] // UploadValues (string, string, NameValueCollection)
1940 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
1942 public void UploadValues3_Data_Null ()
1944 WebClient wc = new WebClient ();
1946 wc.UploadValues ("http://www.mono-project.com",
1947 "POST", (NameValueCollection) null);
1950 } catch (ArgumentNullException ex) {
1951 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1952 Assert.IsNull (ex.InnerException, "#3");
1953 Assert.IsNotNull (ex.Message, "#4");
1954 Assert.IsNotNull (ex.ParamName, "#5");
1955 Assert.AreEqual ("data", ex.ParamName, "#6");
1958 } catch (WebException ex) {
1959 // An error occurred performing a WebClient request
1960 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1961 Assert.IsNotNull (ex.Message, "#3");
1962 Assert.IsNull (ex.Response, "#4");
1963 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1965 ArgumentNullException inner = ex.InnerException
1966 as ArgumentNullException;
1967 Assert.IsNotNull (inner, "#6");
1968 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1969 Assert.IsNull (inner.InnerException, "#8");
1970 Assert.IsNotNull (inner.Message, "#9");
1971 Assert.IsNotNull (inner.ParamName, "#10");
1972 Assert.AreEqual ("data", inner.ParamName, "#11");
1978 [Test] // UploadValues (Uri, string, NameValueCollection)
1979 public void UploadValues4_Address_Null ()
1981 WebClient wc = new WebClient ();
1983 wc.UploadValues ((Uri) null, "POST",
1984 new NameValueCollection ());
1986 } catch (ArgumentNullException ex) {
1987 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1988 Assert.IsNull (ex.InnerException, "#3");
1989 Assert.IsNotNull (ex.Message, "#4");
1990 Assert.IsNotNull (ex.ParamName, "#5");
1991 Assert.AreEqual ("address", ex.ParamName, "#6");
1995 [Test] // UploadValues (Uri, string, NameValueCollection)
1996 public void UploadValues4_Address_SchemeNotSupported ()
1998 WebClient wc = new WebClient ();
2000 wc.UploadValues (new Uri ("tp://scheme.notsupported"),
2001 "POST", new NameValueCollection ());
2003 } catch (WebException ex) {
2004 // An error occurred performing a WebClient request
2005 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
2006 Assert.IsNotNull (ex.InnerException, "#3");
2007 Assert.IsNotNull (ex.Message, "#4");
2008 Assert.IsNull (ex.Response, "#5");
2009 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
2011 // The URI prefix is not recognized
2012 Exception inner = ex.InnerException;
2013 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
2014 Assert.IsNull (inner.InnerException, "#8");
2015 Assert.IsNotNull (inner.Message, "#9");
2019 [Test] // UploadValues (Uri, string, NameValueCollection)
2020 public void UploadValues4_Data_Null ()
2022 WebClient wc = new WebClient ();
2024 wc.UploadValues (new Uri ("http://www.mono-project.com"),
2025 "POST", (NameValueCollection) null);
2027 } catch (ArgumentNullException ex) {
2028 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
2029 Assert.IsNull (ex.InnerException, "#3");
2030 Assert.IsNotNull (ex.Message, "#4");
2031 Assert.IsNotNull (ex.ParamName, "#5");
2032 Assert.AreEqual ("data", ex.ParamName, "#6");
2037 static byte [] EchoRequestHandler (Socket socket)
2039 MemoryStream ms = new MemoryStream ();
2040 byte [] buffer = new byte [4096];
2041 int bytesReceived = socket.Receive (buffer);
2042 while (bytesReceived > 0) {
2043 ms.Write (buffer, 0, bytesReceived);
2044 // We don't check for Content-Length or anything else here, so we give the client a little time to write
2045 // after sending the headers
2047 if (socket.Available > 0) {
2048 bytesReceived = socket.Receive (buffer);
2056 StringBuilder sb = new StringBuilder ();
2058 string expect = null;
2060 StreamReader sr = new StreamReader (ms, Encoding.UTF8);
2063 while ((line = sr.ReadLine ()) != null) {
2068 } if (line.Length == 0) {
2070 } else if (line.StartsWith ("Expect:")) {
2071 expect = line.Substring (8);
2075 StringWriter sw = new StringWriter ();
2077 if (expect == "100-continue" && state != 2) {
2078 sw.WriteLine ("HTTP/1.1 100 Continue");
2082 socket.Send (Encoding.UTF8.GetBytes (sw.ToString ()));
2085 ms = new MemoryStream ();
2086 buffer = new byte [4096];
2087 bytesReceived = socket.Receive (buffer);
2088 while (bytesReceived > 0) {
2089 ms.Write (buffer, 0, bytesReceived);
2091 if (socket.Available > 0) {
2092 bytesReceived = socket.Receive (buffer);
2100 sb = new StringBuilder ();
2101 sr = new StreamReader (ms, Encoding.UTF8);
2102 line = sr.ReadLine ();
2103 while (line != null) {
2106 line = sr.ReadLine ();
2110 sw = new StringWriter ();
2111 sw.WriteLine ("HTTP/1.1 200 OK");
2112 sw.WriteLine ("Content-Type: text/xml");
2113 sw.WriteLine ("Content-Length: " + sb.Length.ToString (CultureInfo.InvariantCulture));
2115 sw.Write (sb.ToString ());
2118 return Encoding.UTF8.GetBytes (sw.ToString ());