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 string file = Path.Combine (Path.GetTempPath (), "tmp.out");
197 WebClient wc = new WebClient ();
199 wc.DownloadFile ("tp://scheme.notsupported", file);
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");
216 if (File.Exists (file))
221 [Test] // DownloadFile (string, string)
222 public void DownloadFile1_FileName_Null ()
224 WebClient wc = new WebClient ();
226 wc.DownloadFile ("tp://scheme.notsupported",
230 } catch (ArgumentNullException ex) {
231 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
232 Assert.IsNull (ex.InnerException, "#3");
233 Assert.IsNotNull (ex.Message, "#4");
234 Assert.IsNotNull (ex.ParamName, "#5");
235 Assert.AreEqual ("fileName", ex.ParamName, "#6");
238 } catch (WebException ex) {
239 // An error occurred performing a WebClient request
240 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
241 Assert.IsNotNull (ex.Message, "#3");
242 Assert.IsNull (ex.Response, "#4");
243 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
245 ArgumentNullException inner = ex.InnerException
246 as ArgumentNullException;
247 Assert.IsNotNull (inner, "#6");
248 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
249 Assert.IsNull (inner.InnerException, "#8");
250 Assert.IsNotNull (inner.Message, "#9");
251 Assert.IsNotNull (inner.ParamName, "#10");
252 Assert.AreEqual ("path", inner.ParamName, "#11");
258 [Test] // DownloadFile (Uri, string)
259 public void DownloadFile2_Address_Null ()
261 WebClient wc = new WebClient ();
263 wc.DownloadFile ((Uri) null, "tmp.out");
265 } catch (ArgumentNullException ex) {
266 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
267 Assert.IsNull (ex.InnerException, "#3");
268 Assert.IsNotNull (ex.Message, "#4");
269 Assert.IsNotNull (ex.ParamName, "#5");
270 Assert.AreEqual ("address", ex.ParamName, "#6");
274 [Test] // DownloadFile (Uri, string)
275 public void DownloadFile2_Address_SchemeNotSupported ()
277 string file = Path.Combine (Path.GetTempPath (), "tmp.out");
278 WebClient wc = new WebClient ();
280 wc.DownloadFile (new Uri ("tp://scheme.notsupported"), file);
282 } catch (WebException ex) {
283 // An error occurred performing a WebClient request
284 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
285 Assert.IsNotNull (ex.InnerException, "#3");
286 Assert.IsNotNull (ex.Message, "#4");
287 Assert.IsNull (ex.Response, "#5");
288 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
290 // The URI prefix is not recognized
291 Exception inner = ex.InnerException;
292 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
293 Assert.IsNull (inner.InnerException, "#8");
294 Assert.IsNotNull (inner.Message, "#9");
297 if (File.Exists (file))
302 [Test] // DownloadFile (Uri, string)
303 public void DownloadFile2_FileName_Null ()
305 WebClient wc = new WebClient ();
307 wc.DownloadFile (new Uri ("tp://scheme.notsupported"),
310 } catch (ArgumentNullException ex) {
311 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
312 Assert.IsNull (ex.InnerException, "#3");
313 Assert.IsNotNull (ex.Message, "#4");
314 Assert.IsNotNull (ex.ParamName, "#5");
315 Assert.AreEqual ("fileName", ex.ParamName, "#6");
319 [Test] // DownloadString (string)
320 public void DownloadString1_Address_Null ()
322 WebClient wc = new WebClient ();
324 wc.DownloadString ((string) null);
326 } catch (ArgumentNullException ex) {
327 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
328 Assert.IsNull (ex.InnerException, "#3");
329 Assert.IsNotNull (ex.Message, "#4");
330 Assert.IsNotNull (ex.ParamName, "#5");
331 Assert.AreEqual ("address", ex.ParamName, "#6");
335 [Test] // DownloadString (string)
336 public void DownloadString1_Address_SchemeNotSupported ()
338 WebClient wc = new WebClient ();
340 wc.DownloadString ("tp://scheme.notsupported");
342 } catch (WebException ex) {
343 // An error occurred performing a WebClient request
344 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
345 Assert.IsNotNull (ex.InnerException, "#3");
346 Assert.IsNotNull (ex.Message, "#4");
347 Assert.IsNull (ex.Response, "#5");
348 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
350 // The URI prefix is not recognized
351 Exception inner = ex.InnerException;
352 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
353 Assert.IsNull (inner.InnerException, "#8");
354 Assert.IsNotNull (inner.Message, "#9");
358 [Test] // DownloadString (Uri)
359 public void DownloadString2_Address_Null ()
361 WebClient wc = new WebClient ();
363 wc.DownloadString ((Uri) null);
365 } catch (ArgumentNullException ex) {
366 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
367 Assert.IsNull (ex.InnerException, "#3");
368 Assert.IsNotNull (ex.Message, "#4");
369 Assert.IsNotNull (ex.ParamName, "#5");
370 Assert.AreEqual ("address", ex.ParamName, "#6");
374 [Test] // DownloadString (Uri)
375 public void DownloadString2_Address_SchemeNotSupported ()
377 WebClient wc = new WebClient ();
379 wc.DownloadString (new Uri ("tp://scheme.notsupported"));
381 } catch (WebException ex) {
382 // An error occurred performing a WebClient request
383 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
384 Assert.IsNotNull (ex.InnerException, "#3");
385 Assert.IsNotNull (ex.Message, "#4");
386 Assert.IsNull (ex.Response, "#5");
387 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
389 // The URI prefix is not recognized
390 Exception inner = ex.InnerException;
391 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
392 Assert.IsNull (inner.InnerException, "#8");
393 Assert.IsNotNull (inner.Message, "#9");
398 public void EncodingTest ()
400 WebClient wc = new WebClient ();
401 Assert.AreSame (Encoding.Default, wc.Encoding, "#1");
402 wc.Encoding = Encoding.ASCII;
403 Assert.AreSame (Encoding.ASCII, wc.Encoding, "#2");
407 public void Encoding_Value_Null ()
409 WebClient wc = new WebClient ();
413 } catch (ArgumentNullException ex) {
414 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
415 Assert.IsNull (ex.InnerException, "#3");
416 Assert.IsNotNull (ex.Message, "#4");
417 Assert.AreEqual ("Encoding", ex.ParamName, "#6");
422 [Test] // OpenRead (string)
423 public void OpenRead1_Address_Null ()
425 WebClient wc = new WebClient ();
427 wc.OpenRead ((string) null);
430 } catch (ArgumentNullException ex) {
431 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
432 Assert.IsNull (ex.InnerException, "#3");
433 Assert.IsNotNull (ex.Message, "#4");
434 Assert.IsNotNull (ex.ParamName, "#5");
435 Assert.AreEqual ("address", ex.ParamName, "#6");
438 } catch (WebException ex) {
439 // An error occurred performing a WebClient request
440 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
441 Assert.IsNotNull (ex.Message, "#3");
442 Assert.IsNull (ex.Response, "#4");
443 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
445 ArgumentNullException inner = ex.InnerException
446 as ArgumentNullException;
447 Assert.IsNotNull (inner, "#6");
448 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
449 Assert.IsNull (inner.InnerException, "#8");
450 Assert.IsNotNull (inner.Message, "#9");
451 Assert.IsNotNull (inner.ParamName, "#10");
452 Assert.AreEqual ("uriString", inner.ParamName, "#11");
457 [Test] // OpenRead (string)
458 public void OpenRead1_Address_SchemeNotSupported ()
460 WebClient wc = new WebClient ();
462 wc.OpenRead ("tp://scheme.notsupported");
464 } catch (WebException ex) {
465 // An error occurred performing a WebClient request
466 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
467 Assert.IsNotNull (ex.InnerException, "#3");
468 Assert.IsNotNull (ex.Message, "#4");
469 Assert.IsNull (ex.Response, "#5");
470 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
472 // The URI prefix is not recognized
473 Exception inner = ex.InnerException;
474 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
475 Assert.IsNull (inner.InnerException, "#8");
476 Assert.IsNotNull (inner.Message, "#9");
481 [Test] // OpenRead (Uri)
482 public void OpenRead2_Address_Null ()
484 WebClient wc = new WebClient ();
486 wc.OpenRead ((Uri) null);
488 } catch (ArgumentNullException ex) {
489 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
490 Assert.IsNull (ex.InnerException, "#3");
491 Assert.IsNotNull (ex.Message, "#4");
492 Assert.IsNotNull (ex.ParamName, "#5");
493 Assert.AreEqual ("address", ex.ParamName, "#6");
497 [Test] // OpenRead (Uri)
498 public void OpenRead2_Address_SchemeNotSupported ()
500 WebClient wc = new WebClient ();
502 wc.OpenRead (new Uri ("tp://scheme.notsupported"));
504 } catch (WebException ex) {
505 // An error occurred performing a WebClient request
506 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
507 Assert.IsNotNull (ex.InnerException, "#3");
508 Assert.IsNotNull (ex.Message, "#4");
509 Assert.IsNull (ex.Response, "#5");
510 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
512 // The URI prefix is not recognized
513 Exception inner = ex.InnerException;
514 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
515 Assert.IsNull (inner.InnerException, "#8");
516 Assert.IsNotNull (inner.Message, "#9");
521 [Test] // OpenWrite (string)
522 public void OpenWrite1_Address_Null ()
524 WebClient wc = new WebClient ();
526 wc.OpenWrite ((string) null);
529 } catch (ArgumentNullException ex) {
530 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
531 Assert.IsNull (ex.InnerException, "#3");
532 Assert.IsNotNull (ex.Message, "#4");
533 Assert.IsNotNull (ex.ParamName, "#5");
534 Assert.AreEqual ("address", ex.ParamName, "#6");
537 } catch (WebException ex) {
538 // An error occurred performing a WebClient request
539 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
540 Assert.IsNotNull (ex.Message, "#3");
541 Assert.IsNull (ex.Response, "#4");
542 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
544 ArgumentNullException inner = ex.InnerException
545 as ArgumentNullException;
546 Assert.IsNotNull (inner, "#6");
547 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
548 Assert.IsNull (inner.InnerException, "#8");
549 Assert.IsNotNull (inner.Message, "#9");
550 Assert.IsNotNull (inner.ParamName, "#10");
551 Assert.AreEqual ("uriString", inner.ParamName, "#11");
556 [Test] // OpenWrite (string)
557 public void OpenWrite1_Address_SchemeNotSupported ()
559 WebClient wc = new WebClient ();
561 wc.OpenWrite ("tp://scheme.notsupported");
563 } catch (WebException ex) {
564 // An error occurred performing a WebClient request
565 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
566 Assert.IsNotNull (ex.InnerException, "#3");
567 Assert.IsNotNull (ex.Message, "#4");
568 Assert.IsNull (ex.Response, "#5");
569 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
571 // The URI prefix is not recognized
572 Exception inner = ex.InnerException;
573 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
574 Assert.IsNull (inner.InnerException, "#8");
575 Assert.IsNotNull (inner.Message, "#9");
579 [Test] // OpenWrite (string, string)
580 public void OpenWrite2_Address_Null ()
582 WebClient wc = new WebClient ();
584 wc.OpenWrite ((string) null, "PUT");
587 } catch (ArgumentNullException ex) {
588 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
589 Assert.IsNull (ex.InnerException, "#3");
590 Assert.IsNotNull (ex.Message, "#4");
591 Assert.IsNotNull (ex.ParamName, "#5");
592 Assert.AreEqual ("address", ex.ParamName, "#6");
595 } catch (WebException ex) {
596 // An error occurred performing a WebClient request
597 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
598 Assert.IsNotNull (ex.Message, "#3");
599 Assert.IsNull (ex.Response, "#4");
600 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
602 ArgumentNullException inner = ex.InnerException
603 as ArgumentNullException;
604 Assert.IsNotNull (inner, "#6");
605 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
606 Assert.IsNull (inner.InnerException, "#8");
607 Assert.IsNotNull (inner.Message, "#9");
608 Assert.IsNotNull (inner.ParamName, "#10");
609 Assert.AreEqual ("uriString", inner.ParamName, "#11");
614 [Test] // OpenWrite (string, string)
615 public void OpenWrite2_Address_SchemeNotSupported ()
617 WebClient wc = new WebClient ();
619 wc.OpenWrite ("tp://scheme.notsupported", "PUT");
621 } catch (WebException ex) {
622 // An error occurred performing a WebClient request
623 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
624 Assert.IsNotNull (ex.InnerException, "#3");
625 Assert.IsNotNull (ex.Message, "#4");
626 Assert.IsNull (ex.Response, "#5");
627 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
629 // The URI prefix is not recognized
630 Exception inner = ex.InnerException;
631 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
632 Assert.IsNull (inner.InnerException, "#8");
633 Assert.IsNotNull (inner.Message, "#9");
638 [Test] // OpenWrite (Uri)
639 public void OpenWrite3_Address_Null ()
641 WebClient wc = new WebClient ();
643 wc.OpenWrite ((Uri) null);
645 } catch (ArgumentNullException ex) {
646 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
647 Assert.IsNull (ex.InnerException, "#3");
648 Assert.IsNotNull (ex.Message, "#4");
649 Assert.IsNotNull (ex.ParamName, "#5");
650 Assert.AreEqual ("address", ex.ParamName, "#6");
654 [Test] // OpenWrite (Uri)
655 public void OpenWrite3_Address_SchemeNotSupported ()
657 WebClient wc = new WebClient ();
659 wc.OpenWrite (new Uri ("tp://scheme.notsupported"));
661 } catch (WebException ex) {
662 // An error occurred performing a WebClient request
663 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
664 Assert.IsNotNull (ex.InnerException, "#3");
665 Assert.IsNotNull (ex.Message, "#4");
666 Assert.IsNull (ex.Response, "#5");
667 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
669 // The URI prefix is not recognized
670 Exception inner = ex.InnerException;
671 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
672 Assert.IsNull (inner.InnerException, "#8");
673 Assert.IsNotNull (inner.Message, "#9");
677 [Test] // OpenWrite (Uri, string)
678 public void OpenWrite4_Address_Null ()
680 WebClient wc = new WebClient ();
682 wc.OpenWrite ((Uri) null, "POST");
684 } catch (ArgumentNullException ex) {
685 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
686 Assert.IsNull (ex.InnerException, "#3");
687 Assert.IsNotNull (ex.Message, "#4");
688 Assert.IsNotNull (ex.ParamName, "#5");
689 Assert.AreEqual ("address", ex.ParamName, "#6");
693 [Test] // OpenWrite (Uri, string)
694 public void OpenWrite4_Address_SchemeNotSupported ()
696 WebClient wc = new WebClient ();
698 wc.OpenWrite (new Uri ("tp://scheme.notsupported"),
701 } catch (WebException ex) {
702 // An error occurred performing a WebClient request
703 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
704 Assert.IsNotNull (ex.InnerException, "#3");
705 Assert.IsNotNull (ex.Message, "#4");
706 Assert.IsNull (ex.Response, "#5");
707 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
709 // The URI prefix is not recognized
710 Exception inner = ex.InnerException;
711 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
712 Assert.IsNull (inner.InnerException, "#8");
713 Assert.IsNotNull (inner.Message, "#9");
718 [Test] // UploadData (string, byte [])
719 public void UploadData1_Address_Null ()
721 WebClient wc = new WebClient ();
723 wc.UploadData ((string) null, new byte [] { 0x1a });
726 } catch (ArgumentNullException ex) {
727 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
728 Assert.IsNull (ex.InnerException, "#3");
729 Assert.IsNotNull (ex.Message, "#4");
730 Assert.IsNotNull (ex.ParamName, "#5");
731 Assert.AreEqual ("address", ex.ParamName, "#6");
734 } catch (WebException ex) {
735 // An error occurred performing a WebClient request
736 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
737 Assert.IsNotNull (ex.Message, "#3");
738 Assert.IsNull (ex.Response, "#4");
739 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
741 ArgumentNullException inner = ex.InnerException
742 as ArgumentNullException;
743 Assert.IsNotNull (inner, "#6");
744 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
745 Assert.IsNull (inner.InnerException, "#8");
746 Assert.IsNotNull (inner.Message, "#9");
747 Assert.IsNotNull (inner.ParamName, "#10");
748 Assert.AreEqual ("uriString", inner.ParamName, "#11");
753 [Test] // UploadData (string, byte [])
754 public void UploadData1_Address_SchemeNotSupported ()
756 WebClient wc = new WebClient ();
758 wc.UploadData ("tp://scheme.notsupported", new byte [] { 0x1a });
760 } catch (WebException ex) {
761 // An error occurred performing a WebClient request
762 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
763 Assert.IsNotNull (ex.InnerException, "#3");
764 Assert.IsNotNull (ex.Message, "#4");
765 Assert.IsNull (ex.Response, "#5");
766 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
768 // The URI prefix is not recognized
769 Exception inner = ex.InnerException;
770 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
771 Assert.IsNull (inner.InnerException, "#8");
772 Assert.IsNotNull (inner.Message, "#9");
776 [Test] // UploadData (string, byte [])
778 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
780 public void UploadData1_Data_Null ()
782 WebClient wc = new WebClient ();
784 wc.UploadData ("http://www.mono-project.com",
788 } catch (ArgumentNullException ex) {
789 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
790 Assert.IsNull (ex.InnerException, "#3");
791 Assert.IsNotNull (ex.Message, "#4");
792 Assert.IsNotNull (ex.ParamName, "#5");
793 Assert.AreEqual ("data", ex.ParamName, "#6");
796 } catch (WebException ex) {
797 // An error occurred performing a WebClient request
798 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
799 Assert.IsNotNull (ex.Message, "#3");
800 Assert.IsNull (ex.Response, "#4");
801 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
803 ArgumentNullException inner = ex.InnerException
804 as ArgumentNullException;
805 Assert.IsNotNull (inner, "#6");
806 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
807 Assert.IsNull (inner.InnerException, "#8");
808 Assert.IsNotNull (inner.Message, "#9");
809 Assert.IsNotNull (inner.ParamName, "#10");
810 Assert.AreEqual ("data", inner.ParamName, "#11");
816 [Test] // UploadData (Uri, byte [])
817 public void UploadData2_Address_Null ()
819 WebClient wc = new WebClient ();
821 wc.UploadData ((Uri) null, new byte [] { 0x1a });
823 } catch (ArgumentNullException ex) {
824 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
825 Assert.IsNull (ex.InnerException, "#3");
826 Assert.IsNotNull (ex.Message, "#4");
827 Assert.IsNotNull (ex.ParamName, "#5");
828 Assert.AreEqual ("address", ex.ParamName, "#6");
832 [Test] // UploadData (Uri, byte [])
833 public void UploadData2_Address_SchemeNotSupported ()
835 WebClient wc = new WebClient ();
837 wc.UploadData (new Uri ("tp://scheme.notsupported"),
838 new byte [] { 0x1a });
840 } catch (WebException ex) {
841 // An error occurred performing a WebClient request
842 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
843 Assert.IsNotNull (ex.InnerException, "#3");
844 Assert.IsNotNull (ex.Message, "#4");
845 Assert.IsNull (ex.Response, "#5");
846 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
848 // The URI prefix is not recognized
849 Exception inner = ex.InnerException;
850 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
851 Assert.IsNull (inner.InnerException, "#8");
852 Assert.IsNotNull (inner.Message, "#9");
856 [Test] // UploadData (Uri, byte [])
857 public void UploadData2_Data_Null ()
859 WebClient wc = new WebClient ();
861 wc.UploadData (new Uri ("http://www.mono-project.com"),
864 } catch (ArgumentNullException ex) {
865 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
866 Assert.IsNull (ex.InnerException, "#3");
867 Assert.IsNotNull (ex.Message, "#4");
868 Assert.IsNotNull (ex.ParamName, "#5");
869 Assert.AreEqual ("data", ex.ParamName, "#6");
874 [Test] // UploadData (string, string, byte [])
875 public void UploadData3_Address_Null ()
877 WebClient wc = new WebClient ();
879 wc.UploadData ((string) null, "POST",
880 new byte [] { 0x1a });
883 } catch (ArgumentNullException ex) {
884 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
885 Assert.IsNull (ex.InnerException, "#3");
886 Assert.IsNotNull (ex.Message, "#4");
887 Assert.IsNotNull (ex.ParamName, "#5");
888 Assert.AreEqual ("address", ex.ParamName, "#6");
891 } catch (WebException ex) {
892 // An error occurred performing a WebClient request
893 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
894 Assert.IsNotNull (ex.Message, "#3");
895 Assert.IsNull (ex.Response, "#4");
896 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
898 ArgumentNullException inner = ex.InnerException
899 as ArgumentNullException;
900 Assert.IsNotNull (inner, "#6");
901 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
902 Assert.IsNull (inner.InnerException, "#8");
903 Assert.IsNotNull (inner.Message, "#9");
904 Assert.IsNotNull (inner.ParamName, "#10");
905 Assert.AreEqual ("uriString", inner.ParamName, "#11");
910 [Test] // UploadData (string, string, byte [])
911 public void UploadData3_Address_SchemeNotSupported ()
913 WebClient wc = new WebClient ();
915 wc.UploadData ("tp://scheme.notsupported",
916 "POST", new byte [] { 0x1a });
918 } catch (WebException ex) {
919 // An error occurred performing a WebClient request
920 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
921 Assert.IsNotNull (ex.InnerException, "#3");
922 Assert.IsNotNull (ex.Message, "#4");
923 Assert.IsNull (ex.Response, "#5");
924 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
926 // The URI prefix is not recognized
927 Exception inner = ex.InnerException;
928 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
929 Assert.IsNull (inner.InnerException, "#8");
930 Assert.IsNotNull (inner.Message, "#9");
934 [Test] // UploadData (string, string, byte [])
936 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
938 public void UploadData3_Data_Null ()
940 WebClient wc = new WebClient ();
942 wc.UploadData ("http://www.mono-project.com",
943 "POST", (byte []) null);
946 } catch (ArgumentNullException ex) {
947 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
948 Assert.IsNull (ex.InnerException, "#3");
949 Assert.IsNotNull (ex.Message, "#4");
950 Assert.IsNotNull (ex.ParamName, "#5");
951 Assert.AreEqual ("data", ex.ParamName, "#6");
954 } catch (WebException ex) {
955 // An error occurred performing a WebClient request
956 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
957 Assert.IsNotNull (ex.Message, "#3");
958 Assert.IsNull (ex.Response, "#4");
959 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
961 ArgumentNullException inner = ex.InnerException
962 as ArgumentNullException;
963 Assert.IsNotNull (inner, "#6");
964 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
965 Assert.IsNull (inner.InnerException, "#8");
966 Assert.IsNotNull (inner.Message, "#9");
967 Assert.IsNotNull (inner.ParamName, "#10");
968 Assert.AreEqual ("data", inner.ParamName, "#11");
974 [Test] // UploadData (Uri, string, byte [])
975 public void UploadData4_Address_Null ()
977 WebClient wc = new WebClient ();
979 wc.UploadData ((Uri) null, "POST", new byte [] { 0x1a });
981 } catch (ArgumentNullException ex) {
982 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
983 Assert.IsNull (ex.InnerException, "#3");
984 Assert.IsNotNull (ex.Message, "#4");
985 Assert.IsNotNull (ex.ParamName, "#5");
986 Assert.AreEqual ("address", ex.ParamName, "#6");
990 [Test] // UploadData (Uri, string, byte [])
991 public void UploadData4_Address_SchemeNotSupported ()
993 WebClient wc = new WebClient ();
995 wc.UploadData (new Uri ("tp://scheme.notsupported"),
996 "POST", new byte [] { 0x1a });
998 } catch (WebException ex) {
999 // An error occurred performing a WebClient request
1000 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1001 Assert.IsNotNull (ex.InnerException, "#3");
1002 Assert.IsNotNull (ex.Message, "#4");
1003 Assert.IsNull (ex.Response, "#5");
1004 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1006 // The URI prefix is not recognized
1007 Exception inner = ex.InnerException;
1008 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1009 Assert.IsNull (inner.InnerException, "#8");
1010 Assert.IsNotNull (inner.Message, "#9");
1014 [Test] // UploadData (Uri, string, byte [])
1015 public void UploadData4_Data_Null ()
1017 WebClient wc = new WebClient ();
1019 wc.UploadData (new Uri ("http://www.mono-project.com"),
1020 "POST", (byte []) null);
1022 } catch (ArgumentNullException ex) {
1023 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1024 Assert.IsNull (ex.InnerException, "#3");
1025 Assert.IsNotNull (ex.Message, "#4");
1026 Assert.IsNotNull (ex.ParamName, "#5");
1027 Assert.AreEqual ("data", ex.ParamName, "#6");
1032 [Test] // UploadFile (string, string)
1033 public void UploadFile1_Address_Null ()
1035 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1036 File.Create (tempFile).Close ();
1038 WebClient wc = new WebClient ();
1040 wc.UploadFile ((string) null, tempFile);
1043 } catch (ArgumentNullException ex) {
1044 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1045 Assert.IsNull (ex.InnerException, "#3");
1046 Assert.IsNotNull (ex.Message, "#4");
1047 Assert.IsNotNull (ex.ParamName, "#5");
1048 Assert.AreEqual ("address", ex.ParamName, "#6");
1051 } catch (WebException ex) {
1052 // An error occurred performing a WebClient request
1053 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1054 Assert.IsNotNull (ex.Message, "#3");
1055 Assert.IsNull (ex.Response, "#4");
1056 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1058 ArgumentNullException inner = ex.InnerException
1059 as ArgumentNullException;
1060 Assert.IsNotNull (inner, "#6");
1061 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1062 Assert.IsNull (inner.InnerException, "#8");
1063 Assert.IsNotNull (inner.Message, "#9");
1064 Assert.IsNotNull (inner.ParamName, "#10");
1065 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1070 [Test] // UploadFile (string, string)
1071 public void UploadFile1_Address_SchemeNotSupported ()
1073 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1074 File.Create (tempFile).Close ();
1076 WebClient wc = new WebClient ();
1078 wc.UploadFile ("tp://scheme.notsupported",
1081 } catch (WebException ex) {
1082 // An error occurred performing a WebClient request
1083 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1084 Assert.IsNotNull (ex.InnerException, "#3");
1085 Assert.IsNotNull (ex.Message, "#4");
1086 Assert.IsNull (ex.Response, "#5");
1087 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1089 // The URI prefix is not recognized
1090 Exception inner = ex.InnerException;
1091 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1092 Assert.IsNull (inner.InnerException, "#8");
1093 Assert.IsNotNull (inner.Message, "#9");
1097 [Test] // UploadFile (string, string)
1098 public void UploadFile1_FileName_NotFound ()
1100 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1102 WebClient wc = new WebClient ();
1104 wc.UploadFile ("tp://scheme.notsupported",
1107 } catch (WebException ex) {
1108 // An error occurred performing a WebClient request
1109 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1110 Assert.IsNotNull (ex.Message, "#3");
1111 Assert.IsNull (ex.Response, "#4");
1112 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1114 // Could not find file "..."
1115 FileNotFoundException inner = ex.InnerException
1116 as FileNotFoundException;
1117 Assert.IsNotNull (inner, "#6");
1118 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1119 Assert.IsNotNull (inner.FileName, "#8");
1120 Assert.AreEqual (tempFile, inner.FileName, "#9");
1121 Assert.IsNull (inner.InnerException, "#10");
1122 Assert.IsNotNull (inner.Message, "#11");
1126 [Test] // UploadFile (string, string)
1127 public void UploadFile1_FileName_Null ()
1129 WebClient wc = new WebClient ();
1131 wc.UploadFile ("tp://scheme.notsupported",
1135 } catch (ArgumentNullException ex) {
1136 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1137 Assert.IsNull (ex.InnerException, "#3");
1138 Assert.IsNotNull (ex.Message, "#4");
1139 Assert.IsNotNull (ex.ParamName, "#5");
1140 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1143 } catch (WebException ex) {
1144 // An error occurred performing a WebClient request
1145 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1146 Assert.IsNotNull (ex.Message, "#3");
1147 Assert.IsNull (ex.Response, "#4");
1148 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1150 ArgumentNullException inner = ex.InnerException
1151 as ArgumentNullException;
1152 Assert.IsNotNull (inner, "#6");
1153 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1154 Assert.IsNull (inner.InnerException, "#8");
1155 Assert.IsNotNull (inner.Message, "#9");
1156 Assert.IsNotNull (inner.ParamName, "#10");
1157 Assert.AreEqual ("path", inner.ParamName, "#11");
1163 [Test] // UploadFile (Uri, string)
1164 public void UploadFile2_Address_Null ()
1166 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1168 WebClient wc = new WebClient ();
1170 wc.UploadFile ((Uri) null, tempFile);
1172 } catch (ArgumentNullException ex) {
1173 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1174 Assert.IsNull (ex.InnerException, "#3");
1175 Assert.IsNotNull (ex.Message, "#4");
1176 Assert.IsNotNull (ex.ParamName, "#5");
1177 Assert.AreEqual ("address", ex.ParamName, "#6");
1181 [Test] // UploadFile (Uri, string)
1182 public void UploadFile2_Address_SchemeNotSupported ()
1184 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1185 File.Create (tempFile).Close ();
1187 WebClient wc = new WebClient ();
1189 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1192 } catch (WebException ex) {
1193 // An error occurred performing a WebClient request
1194 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1195 Assert.IsNotNull (ex.InnerException, "#3");
1196 Assert.IsNotNull (ex.Message, "#4");
1197 Assert.IsNull (ex.Response, "#5");
1198 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1200 // The URI prefix is not recognized
1201 Exception inner = ex.InnerException;
1202 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1203 Assert.IsNull (inner.InnerException, "#8");
1204 Assert.IsNotNull (inner.Message, "#9");
1208 [Test] // UploadFile (Uri, string)
1209 public void UploadFile2_FileName_NotFound ()
1211 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1213 WebClient wc = new WebClient ();
1215 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1218 } catch (WebException ex) {
1219 // An error occurred performing a WebClient request
1220 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1221 Assert.IsNotNull (ex.Message, "#3");
1222 Assert.IsNull (ex.Response, "#4");
1223 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1225 // Could not find file "..."
1226 FileNotFoundException inner = ex.InnerException
1227 as FileNotFoundException;
1228 Assert.IsNotNull (inner, "#6");
1229 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1230 Assert.IsNotNull (inner.FileName, "#8");
1231 Assert.AreEqual (tempFile, inner.FileName, "#9");
1232 Assert.IsNull (inner.InnerException, "#10");
1233 Assert.IsNotNull (inner.Message, "#11");
1237 [Test] // UploadFile (Uri, string)
1238 public void UploadFile2_FileName_Null ()
1240 WebClient wc = new WebClient ();
1242 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1245 } catch (ArgumentNullException ex) {
1246 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1247 Assert.IsNull (ex.InnerException, "#3");
1248 Assert.IsNotNull (ex.Message, "#4");
1249 Assert.IsNotNull (ex.ParamName, "#5");
1250 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1255 [Test] // UploadFile (string, string, string)
1256 public void UploadFile3_Address_Null ()
1258 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1259 File.Create (tempFile).Close ();
1261 WebClient wc = new WebClient ();
1263 wc.UploadFile ((string) null, "POST", tempFile);
1266 } catch (ArgumentNullException ex) {
1267 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1268 Assert.IsNull (ex.InnerException, "#3");
1269 Assert.IsNotNull (ex.Message, "#4");
1270 Assert.IsNotNull (ex.ParamName, "#5");
1271 Assert.AreEqual ("path", ex.ParamName, "#6");
1274 } catch (WebException ex) {
1275 // An error occurred performing a WebClient request
1276 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1277 Assert.IsNotNull (ex.Message, "#3");
1278 Assert.IsNull (ex.Response, "#4");
1279 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1281 ArgumentNullException inner = ex.InnerException
1282 as ArgumentNullException;
1283 Assert.IsNotNull (inner, "#6");
1284 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1285 Assert.IsNull (inner.InnerException, "#8");
1286 Assert.IsNotNull (inner.Message, "#9");
1287 Assert.IsNotNull (inner.ParamName, "#10");
1288 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1293 [Test] // UploadFile (string, string, string)
1294 public void UploadFile3_Address_SchemeNotSupported ()
1296 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1297 File.Create (tempFile).Close ();
1299 WebClient wc = new WebClient ();
1301 wc.UploadFile ("tp://scheme.notsupported",
1304 } catch (WebException ex) {
1305 // An error occurred performing a WebClient request
1306 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1307 Assert.IsNotNull (ex.InnerException, "#3");
1308 Assert.IsNotNull (ex.Message, "#4");
1309 Assert.IsNull (ex.Response, "#5");
1310 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1312 // The URI prefix is not recognized
1313 Exception inner = ex.InnerException;
1314 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1315 Assert.IsNull (inner.InnerException, "#8");
1316 Assert.IsNotNull (inner.Message, "#9");
1320 [Test] // UploadFile (string, string, string)
1321 public void UploadFile3_FileName_NotFound ()
1323 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1325 WebClient wc = new WebClient ();
1327 wc.UploadFile ("tp://scheme.notsupported",
1330 } catch (WebException ex) {
1331 // An error occurred performing a WebClient request
1332 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1333 Assert.IsNotNull (ex.Message, "#3");
1334 Assert.IsNull (ex.Response, "#4");
1335 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1337 // Could not find file "..."
1338 FileNotFoundException inner = ex.InnerException
1339 as FileNotFoundException;
1340 Assert.IsNotNull (inner, "#6");
1341 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1342 Assert.IsNotNull (inner.FileName, "#8");
1343 Assert.AreEqual (tempFile, inner.FileName, "#9");
1344 Assert.IsNull (inner.InnerException, "#10");
1345 Assert.IsNotNull (inner.Message, "#11");
1349 [Test] // UploadFile (string, string, string)
1350 public void UploadFile3_FileName_Null ()
1352 WebClient wc = new WebClient ();
1354 wc.UploadFile ("tp://scheme.notsupported",
1355 "POST", (string) null);
1358 } catch (ArgumentNullException ex) {
1359 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1360 Assert.IsNull (ex.InnerException, "#3");
1361 Assert.IsNotNull (ex.Message, "#4");
1362 Assert.IsNotNull (ex.ParamName, "#5");
1363 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1366 } catch (WebException ex) {
1367 // An error occurred performing a WebClient request
1368 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1369 Assert.IsNotNull (ex.Message, "#3");
1370 Assert.IsNull (ex.Response, "#4");
1371 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1373 ArgumentNullException inner = ex.InnerException
1374 as ArgumentNullException;
1375 Assert.IsNotNull (inner, "#6");
1376 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1377 Assert.IsNull (inner.InnerException, "#8");
1378 Assert.IsNotNull (inner.Message, "#9");
1379 Assert.IsNotNull (inner.ParamName, "#10");
1380 Assert.AreEqual ("path", inner.ParamName, "#11");
1386 [Test] // UploadFile (Uri, string, string)
1387 public void UploadFile4_Address_Null ()
1389 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1391 WebClient wc = new WebClient ();
1393 wc.UploadFile ((Uri) null, "POST", tempFile);
1395 } catch (ArgumentNullException ex) {
1396 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1397 Assert.IsNull (ex.InnerException, "#3");
1398 Assert.IsNotNull (ex.Message, "#4");
1399 Assert.IsNotNull (ex.ParamName, "#5");
1400 Assert.AreEqual ("address", ex.ParamName, "#6");
1404 [Test] // UploadFile (Uri, string, string)
1405 public void UploadFile4_Address_SchemeNotSupported ()
1407 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1408 File.Create (tempFile).Close ();
1410 WebClient wc = new WebClient ();
1412 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1415 } catch (WebException ex) {
1416 // An error occurred performing a WebClient request
1417 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1418 Assert.IsNotNull (ex.InnerException, "#3");
1419 Assert.IsNotNull (ex.Message, "#4");
1420 Assert.IsNull (ex.Response, "#5");
1421 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1423 // The URI prefix is not recognized
1424 Exception inner = ex.InnerException;
1425 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1426 Assert.IsNull (inner.InnerException, "#8");
1427 Assert.IsNotNull (inner.Message, "#9");
1431 [Test] // UploadFile (Uri, string, string)
1432 public void UploadFile4_FileName_NotFound ()
1434 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
1436 WebClient wc = new WebClient ();
1438 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1441 } catch (WebException ex) {
1442 // An error occurred performing a WebClient request
1443 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1444 Assert.IsNotNull (ex.Message, "#3");
1445 Assert.IsNull (ex.Response, "#4");
1446 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1448 // Could not find file "..."
1449 FileNotFoundException inner = ex.InnerException
1450 as FileNotFoundException;
1451 Assert.IsNotNull (inner, "#6");
1452 Assert.AreEqual (typeof (FileNotFoundException), inner.GetType (), "#7");
1453 Assert.IsNotNull (inner.FileName, "#8");
1454 Assert.AreEqual (tempFile, inner.FileName, "#9");
1455 Assert.IsNull (inner.InnerException, "#10");
1456 Assert.IsNotNull (inner.Message, "#11");
1460 [Test] // UploadFile (Uri, string, string)
1461 public void UploadFile4_FileName_Null ()
1463 WebClient wc = new WebClient ();
1465 wc.UploadFile (new Uri ("tp://scheme.notsupported"),
1466 "POST", (string) null);
1468 } catch (ArgumentNullException ex) {
1469 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1470 Assert.IsNull (ex.InnerException, "#3");
1471 Assert.IsNotNull (ex.Message, "#4");
1472 Assert.IsNotNull (ex.ParamName, "#5");
1473 Assert.AreEqual ("fileName", ex.ParamName, "#6");
1477 [Test] // UploadString (string, string)
1478 public void UploadString1_Address_Null ()
1480 WebClient wc = new WebClient ();
1482 wc.UploadString ((string) null, (string) null);
1484 } catch (ArgumentNullException ex) {
1485 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1486 Assert.IsNull (ex.InnerException, "#3");
1487 Assert.IsNotNull (ex.Message, "#4");
1488 Assert.IsNotNull (ex.ParamName, "#5");
1489 Assert.AreEqual ("address", ex.ParamName, "#6");
1493 [Test] // UploadString (string, string)
1494 public void UploadString1_Address_SchemeNotSupported ()
1496 WebClient wc = new WebClient ();
1498 wc.UploadString ("tp://scheme.notsupported", "abc");
1500 } catch (WebException ex) {
1501 // An error occurred performing a WebClient request
1502 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1503 Assert.IsNotNull (ex.InnerException, "#3");
1504 Assert.IsNotNull (ex.Message, "#4");
1505 Assert.IsNull (ex.Response, "#5");
1506 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1508 // The URI prefix is not recognized
1509 Exception inner = ex.InnerException;
1510 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1511 Assert.IsNull (inner.InnerException, "#8");
1512 Assert.IsNotNull (inner.Message, "#9");
1516 [Test] // UploadString (string, string)
1517 public void UploadString1_Data_Null ()
1519 WebClient wc = new WebClient ();
1521 wc.UploadString ("tp://scheme.notsupported", (string) null);
1523 } catch (ArgumentNullException ex) {
1524 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1525 Assert.IsNull (ex.InnerException, "#3");
1526 Assert.IsNotNull (ex.Message, "#4");
1527 Assert.IsNotNull (ex.ParamName, "#5");
1528 Assert.AreEqual ("data", ex.ParamName, "#6");
1532 [Test] // UploadString (Uri, string)
1533 public void UploadString2_Address_Null ()
1535 WebClient wc = new WebClient ();
1537 wc.UploadString ((Uri) null, (string) null);
1539 } catch (ArgumentNullException ex) {
1540 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1541 Assert.IsNull (ex.InnerException, "#3");
1542 Assert.IsNotNull (ex.Message, "#4");
1543 Assert.IsNotNull (ex.ParamName, "#5");
1544 Assert.AreEqual ("address", ex.ParamName, "#6");
1548 [Test] // UploadString (Uri, string)
1549 public void UploadString2_Address_SchemeNotSupported ()
1551 WebClient wc = new WebClient ();
1553 wc.UploadString (new Uri ("tp://scheme.notsupported"), "abc");
1555 } catch (WebException ex) {
1556 // An error occurred performing a WebClient request
1557 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1558 Assert.IsNotNull (ex.InnerException, "#3");
1559 Assert.IsNotNull (ex.Message, "#4");
1560 Assert.IsNull (ex.Response, "#5");
1561 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1563 // The URI prefix is not recognized
1564 Exception inner = ex.InnerException;
1565 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1566 Assert.IsNull (inner.InnerException, "#8");
1567 Assert.IsNotNull (inner.Message, "#9");
1571 [Test] // UploadString (Uri, string)
1572 public void UploadString2_Data_Null ()
1574 WebClient wc = new WebClient ();
1576 wc.UploadString (new Uri ("tp://scheme.notsupported"),
1579 } catch (ArgumentNullException ex) {
1580 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1581 Assert.IsNull (ex.InnerException, "#3");
1582 Assert.IsNotNull (ex.Message, "#4");
1583 Assert.IsNotNull (ex.ParamName, "#5");
1584 Assert.AreEqual ("data", ex.ParamName, "#6");
1588 [Test] // UploadString (string, string, string)
1589 public void UploadString3_Address_Null ()
1591 WebClient wc = new WebClient ();
1593 wc.UploadString ((string) null, (string) null,
1596 } catch (ArgumentNullException ex) {
1597 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1598 Assert.IsNull (ex.InnerException, "#3");
1599 Assert.IsNotNull (ex.Message, "#4");
1600 Assert.IsNotNull (ex.ParamName, "#5");
1601 Assert.AreEqual ("address", ex.ParamName, "#6");
1605 [Test] // UploadString (string, string, string)
1606 public void UploadString3_Address_SchemeNotSupported ()
1608 WebClient wc = new WebClient ();
1610 wc.UploadString ("tp://scheme.notsupported",
1613 } catch (WebException ex) {
1614 // An error occurred performing a WebClient request
1615 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1616 Assert.IsNotNull (ex.InnerException, "#3");
1617 Assert.IsNotNull (ex.Message, "#4");
1618 Assert.IsNull (ex.Response, "#5");
1619 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1621 // The URI prefix is not recognized
1622 Exception inner = ex.InnerException;
1623 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1624 Assert.IsNull (inner.InnerException, "#8");
1625 Assert.IsNotNull (inner.Message, "#9");
1629 [Test] // UploadString (string, string, string)
1630 public void UploadString3_Data_Null ()
1632 WebClient wc = new WebClient ();
1634 wc.UploadString ("tp://scheme.notsupported",
1635 "POST", (string) null);
1637 } catch (ArgumentNullException ex) {
1638 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1639 Assert.IsNull (ex.InnerException, "#3");
1640 Assert.IsNotNull (ex.Message, "#4");
1641 Assert.IsNotNull (ex.ParamName, "#5");
1642 Assert.AreEqual ("data", ex.ParamName, "#6");
1646 [Test] // UploadString (Uri, string, string)
1647 public void UploadString4_Address_Null ()
1649 WebClient wc = new WebClient ();
1651 wc.UploadString ((Uri) null, (string) null,
1654 } catch (ArgumentNullException ex) {
1655 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1656 Assert.IsNull (ex.InnerException, "#3");
1657 Assert.IsNotNull (ex.Message, "#4");
1658 Assert.IsNotNull (ex.ParamName, "#5");
1659 Assert.AreEqual ("address", ex.ParamName, "#6");
1663 [Test] // UploadString (Uri, string, string)
1664 public void UploadString4_Address_SchemeNotSupported ()
1666 WebClient wc = new WebClient ();
1668 wc.UploadString (new Uri ("tp://scheme.notsupported"),
1671 } catch (WebException ex) {
1672 // An error occurred performing a WebClient request
1673 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1674 Assert.IsNotNull (ex.InnerException, "#3");
1675 Assert.IsNotNull (ex.Message, "#4");
1676 Assert.IsNull (ex.Response, "#5");
1677 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1679 // The URI prefix is not recognized
1680 Exception inner = ex.InnerException;
1681 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1682 Assert.IsNull (inner.InnerException, "#8");
1683 Assert.IsNotNull (inner.Message, "#9");
1687 [Test] // UploadString (Uri, string, string)
1688 public void UploadString4_Data_Null ()
1690 WebClient wc = new WebClient ();
1692 wc.UploadString (new Uri ("tp://scheme.notsupported"),
1693 "POST", (string) null);
1695 } catch (ArgumentNullException ex) {
1696 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1697 Assert.IsNull (ex.InnerException, "#3");
1698 Assert.IsNotNull (ex.Message, "#4");
1699 Assert.IsNotNull (ex.ParamName, "#5");
1700 Assert.AreEqual ("data", ex.ParamName, "#6");
1706 public void UploadValues1 ()
1708 IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
1709 string url = "http://" + IPAddress.Loopback.ToString () + ":8000/test/";
1711 using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
1714 WebClient wc = new WebClient ();
1716 wc.Encoding = Encoding.ASCII;
1719 NameValueCollection nvc = new NameValueCollection ();
1720 nvc.Add ("Name", "\u0041\u2262\u0391\u002E");
1721 nvc.Add ("Address", "\u002E\u2262\u0041\u0391");
1723 byte [] buffer = wc.UploadValues (url, nvc);
1724 string response = Encoding.UTF8.GetString (buffer);
1725 Assert.AreEqual ("Name=A%e2%89%a2%ce%91.&Address=.%e2%89%a2A%ce%91\r\n", response);
1729 [Test] // UploadValues (string, NameValueCollection)
1730 public void UploadValues1_Address_Null ()
1732 WebClient wc = new WebClient ();
1734 wc.UploadValues ((string) null, new NameValueCollection ());
1737 } catch (ArgumentNullException ex) {
1738 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1739 Assert.IsNull (ex.InnerException, "#3");
1740 Assert.IsNotNull (ex.Message, "#4");
1741 Assert.IsNotNull (ex.ParamName, "#5");
1742 Assert.AreEqual ("address", ex.ParamName, "#6");
1745 } catch (WebException ex) {
1746 // An error occurred performing a WebClient request
1747 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1748 Assert.IsNotNull (ex.Message, "#3");
1749 Assert.IsNull (ex.Response, "#4");
1750 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1752 ArgumentNullException inner = ex.InnerException
1753 as ArgumentNullException;
1754 Assert.IsNotNull (inner, "#6");
1755 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1756 Assert.IsNull (inner.InnerException, "#8");
1757 Assert.IsNotNull (inner.Message, "#9");
1758 Assert.IsNotNull (inner.ParamName, "#10");
1759 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1764 [Test] // UploadValues (string, NameValueCollection)
1765 public void UploadValues1_Address_SchemeNotSupported ()
1767 WebClient wc = new WebClient ();
1769 wc.UploadValues ("tp://scheme.notsupported",
1770 new NameValueCollection ());
1772 } catch (WebException ex) {
1773 // An error occurred performing a WebClient request
1774 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1775 Assert.IsNotNull (ex.InnerException, "#3");
1776 Assert.IsNotNull (ex.Message, "#4");
1777 Assert.IsNull (ex.Response, "#5");
1778 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1780 // The URI prefix is not recognized
1781 Exception inner = ex.InnerException;
1782 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1783 Assert.IsNull (inner.InnerException, "#8");
1784 Assert.IsNotNull (inner.Message, "#9");
1788 [Test] // UploadValues (string, NameValueCollection)
1790 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
1792 public void UploadValues1_Data_Null ()
1794 WebClient wc = new WebClient ();
1796 wc.UploadValues ("http://www.mono-project.com",
1797 (NameValueCollection) null);
1800 } catch (ArgumentNullException ex) {
1801 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1802 Assert.IsNull (ex.InnerException, "#3");
1803 Assert.IsNotNull (ex.Message, "#4");
1804 Assert.IsNotNull (ex.ParamName, "#5");
1805 Assert.AreEqual ("data", ex.ParamName, "#6");
1808 } catch (WebException ex) {
1809 // An error occurred performing a WebClient request
1810 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1811 Assert.IsNotNull (ex.Message, "#3");
1812 Assert.IsNull (ex.Response, "#4");
1813 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1815 ArgumentNullException inner = ex.InnerException
1816 as ArgumentNullException;
1817 Assert.IsNotNull (inner, "#6");
1818 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1819 Assert.IsNull (inner.InnerException, "#8");
1820 Assert.IsNotNull (inner.Message, "#9");
1821 Assert.IsNotNull (inner.ParamName, "#10");
1822 Assert.AreEqual ("data", inner.ParamName, "#11");
1828 [Test] // UploadValues (Uri, NameValueCollection)
1829 public void UploadValues2_Address_Null ()
1831 WebClient wc = new WebClient ();
1833 wc.UploadValues ((Uri) null, new NameValueCollection ());
1835 } catch (ArgumentNullException ex) {
1836 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1837 Assert.IsNull (ex.InnerException, "#3");
1838 Assert.IsNotNull (ex.Message, "#4");
1839 Assert.IsNotNull (ex.ParamName, "#5");
1840 Assert.AreEqual ("address", ex.ParamName, "#6");
1844 [Test] // UploadValues (Uri, NameValueCollection)
1845 public void UploadValues2_Address_SchemeNotSupported ()
1847 WebClient wc = new WebClient ();
1849 wc.UploadValues (new Uri ("tp://scheme.notsupported"),
1850 new NameValueCollection ());
1852 } catch (WebException ex) {
1853 // An error occurred performing a WebClient request
1854 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1855 Assert.IsNotNull (ex.InnerException, "#3");
1856 Assert.IsNotNull (ex.Message, "#4");
1857 Assert.IsNull (ex.Response, "#5");
1858 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1860 // The URI prefix is not recognized
1861 Exception inner = ex.InnerException;
1862 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1863 Assert.IsNull (inner.InnerException, "#8");
1864 Assert.IsNotNull (inner.Message, "#9");
1868 [Test] // UploadValues (Uri, NameValueCollection)
1869 public void UploadValues2_Data_Null ()
1871 WebClient wc = new WebClient ();
1873 wc.UploadValues (new Uri ("http://www.mono-project.com"),
1874 (NameValueCollection) null);
1876 } catch (ArgumentNullException ex) {
1877 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1878 Assert.IsNull (ex.InnerException, "#3");
1879 Assert.IsNotNull (ex.Message, "#4");
1880 Assert.IsNotNull (ex.ParamName, "#5");
1881 Assert.AreEqual ("data", ex.ParamName, "#6");
1886 [Test] // UploadValues (string, string, NameValueCollection)
1887 public void UploadValues3_Address_Null ()
1889 WebClient wc = new WebClient ();
1891 wc.UploadValues ((string) null, "POST",
1892 new NameValueCollection ());
1895 } catch (ArgumentNullException ex) {
1896 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1897 Assert.IsNull (ex.InnerException, "#3");
1898 Assert.IsNotNull (ex.Message, "#4");
1899 Assert.IsNotNull (ex.ParamName, "#5");
1900 Assert.AreEqual ("address", ex.ParamName, "#6");
1903 } catch (WebException ex) {
1904 // An error occurred performing a WebClient request
1905 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1906 Assert.IsNotNull (ex.Message, "#3");
1907 Assert.IsNull (ex.Response, "#4");
1908 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1910 ArgumentNullException inner = ex.InnerException
1911 as ArgumentNullException;
1912 Assert.IsNotNull (inner, "#6");
1913 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1914 Assert.IsNull (inner.InnerException, "#8");
1915 Assert.IsNotNull (inner.Message, "#9");
1916 Assert.IsNotNull (inner.ParamName, "#10");
1917 Assert.AreEqual ("uriString", inner.ParamName, "#11");
1922 [Test] // UploadValues (string, string, NameValueCollection)
1923 public void UploadValues3_Address_SchemeNotSupported ()
1925 WebClient wc = new WebClient ();
1927 wc.UploadValues ("tp://scheme.notsupported",
1928 "POST", new NameValueCollection ());
1930 } catch (WebException ex) {
1931 // An error occurred performing a WebClient request
1932 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1933 Assert.IsNotNull (ex.InnerException, "#3");
1934 Assert.IsNotNull (ex.Message, "#4");
1935 Assert.IsNull (ex.Response, "#5");
1936 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
1938 // The URI prefix is not recognized
1939 Exception inner = ex.InnerException;
1940 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
1941 Assert.IsNull (inner.InnerException, "#8");
1942 Assert.IsNotNull (inner.Message, "#9");
1946 [Test] // UploadValues (string, string, NameValueCollection)
1948 [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
1950 public void UploadValues3_Data_Null ()
1952 WebClient wc = new WebClient ();
1954 wc.UploadValues ("http://www.mono-project.com",
1955 "POST", (NameValueCollection) null);
1958 } catch (ArgumentNullException ex) {
1959 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1960 Assert.IsNull (ex.InnerException, "#3");
1961 Assert.IsNotNull (ex.Message, "#4");
1962 Assert.IsNotNull (ex.ParamName, "#5");
1963 Assert.AreEqual ("data", ex.ParamName, "#6");
1966 } catch (WebException ex) {
1967 // An error occurred performing a WebClient request
1968 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
1969 Assert.IsNotNull (ex.Message, "#3");
1970 Assert.IsNull (ex.Response, "#4");
1971 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
1973 ArgumentNullException inner = ex.InnerException
1974 as ArgumentNullException;
1975 Assert.IsNotNull (inner, "#6");
1976 Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
1977 Assert.IsNull (inner.InnerException, "#8");
1978 Assert.IsNotNull (inner.Message, "#9");
1979 Assert.IsNotNull (inner.ParamName, "#10");
1980 Assert.AreEqual ("data", inner.ParamName, "#11");
1986 [Test] // UploadValues (Uri, string, NameValueCollection)
1987 public void UploadValues4_Address_Null ()
1989 WebClient wc = new WebClient ();
1991 wc.UploadValues ((Uri) null, "POST",
1992 new NameValueCollection ());
1994 } catch (ArgumentNullException ex) {
1995 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
1996 Assert.IsNull (ex.InnerException, "#3");
1997 Assert.IsNotNull (ex.Message, "#4");
1998 Assert.IsNotNull (ex.ParamName, "#5");
1999 Assert.AreEqual ("address", ex.ParamName, "#6");
2003 [Test] // UploadValues (Uri, string, NameValueCollection)
2004 public void UploadValues4_Address_SchemeNotSupported ()
2006 WebClient wc = new WebClient ();
2008 wc.UploadValues (new Uri ("tp://scheme.notsupported"),
2009 "POST", new NameValueCollection ());
2011 } catch (WebException ex) {
2012 // An error occurred performing a WebClient request
2013 Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
2014 Assert.IsNotNull (ex.InnerException, "#3");
2015 Assert.IsNotNull (ex.Message, "#4");
2016 Assert.IsNull (ex.Response, "#5");
2017 Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#6");
2019 // The URI prefix is not recognized
2020 Exception inner = ex.InnerException;
2021 Assert.AreEqual (typeof (NotSupportedException), inner.GetType (), "#7");
2022 Assert.IsNull (inner.InnerException, "#8");
2023 Assert.IsNotNull (inner.Message, "#9");
2027 [Test] // UploadValues (Uri, string, NameValueCollection)
2028 public void UploadValues4_Data_Null ()
2030 WebClient wc = new WebClient ();
2032 wc.UploadValues (new Uri ("http://www.mono-project.com"),
2033 "POST", (NameValueCollection) null);
2035 } catch (ArgumentNullException ex) {
2036 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
2037 Assert.IsNull (ex.InnerException, "#3");
2038 Assert.IsNotNull (ex.Message, "#4");
2039 Assert.IsNotNull (ex.ParamName, "#5");
2040 Assert.AreEqual ("data", ex.ParamName, "#6");
2047 public void GetWebRequestOverriding ()
2049 GetWebRequestOverridingTestClass testObject = new GetWebRequestOverridingTestClass ();
2050 testObject.DownloadData ("http://www.mono-project.com");
2052 Assert.IsTrue (testObject.overridedCodeRan, "Overrided code wasn't called");
2055 class GetWebRequestOverridingTestClass : WebClient
2057 internal bool overridedCodeRan = false;
2058 protected override WebRequest GetWebRequest(Uri address)
2060 overridedCodeRan = true;
2061 return base.GetWebRequest (address);
2066 static byte [] EchoRequestHandler (Socket socket)
2068 MemoryStream ms = new MemoryStream ();
2069 byte [] buffer = new byte [4096];
2070 int bytesReceived = socket.Receive (buffer);
2071 while (bytesReceived > 0) {
2072 ms.Write (buffer, 0, bytesReceived);
2073 // We don't check for Content-Length or anything else here, so we give the client a little time to write
2074 // after sending the headers
2076 if (socket.Available > 0) {
2077 bytesReceived = socket.Receive (buffer);
2085 StringBuilder sb = new StringBuilder ();
2087 string expect = null;
2089 StreamReader sr = new StreamReader (ms, Encoding.UTF8);
2092 while ((line = sr.ReadLine ()) != null) {
2097 } if (line.Length == 0) {
2099 } else if (line.StartsWith ("Expect:")) {
2100 expect = line.Substring (8);
2104 StringWriter sw = new StringWriter ();
2106 if (expect == "100-continue" && state != 2) {
2107 sw.WriteLine ("HTTP/1.1 100 Continue");
2111 socket.Send (Encoding.UTF8.GetBytes (sw.ToString ()));
2114 ms = new MemoryStream ();
2115 buffer = new byte [4096];
2116 bytesReceived = socket.Receive (buffer);
2117 while (bytesReceived > 0) {
2118 ms.Write (buffer, 0, bytesReceived);
2120 if (socket.Available > 0) {
2121 bytesReceived = socket.Receive (buffer);
2129 sb = new StringBuilder ();
2130 sr = new StreamReader (ms, Encoding.UTF8);
2131 line = sr.ReadLine ();
2132 while (line != null) {
2135 line = sr.ReadLine ();
2139 sw = new StringWriter ();
2140 sw.WriteLine ("HTTP/1.1 200 OK");
2141 sw.WriteLine ("Content-Type: text/xml");
2142 sw.WriteLine ("Content-Length: " + sb.Length.ToString (CultureInfo.InvariantCulture));
2144 sw.Write (sb.ToString ());
2147 return Encoding.UTF8.GetBytes (sw.ToString ());
2151 public void DefaultProxy ()
2153 WebClient wc = new WebClient ();
2154 // this is never null on .net
2155 Assert.IsNotNull (wc.Proxy);
2156 // and return the same instance as WebRequest.DefaultWebProxy
2157 Assert.AreSame (wc.Proxy, WebRequest.DefaultWebProxy);
2162 public void UploadStringAsyncCancelEvent ()
2164 UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
2167 webClient.UploadStringCompleted += (sender, args) =>
2173 webClient.UploadStringAsync (uri, "PUT", "text");
2178 public void UploadDataAsyncCancelEvent ()
2180 UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
2182 webClient.UploadDataCompleted += (sender, args) =>
2188 webClient.UploadDataAsync (uri, "PUT", new byte[] { });
2193 public void UploadValuesAsyncCancelEvent ()
2195 UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
2197 webClient.UploadValuesCompleted += (sender, args) =>
2203 webClient.UploadValuesAsync (uri, "PUT", new NameValueCollection ());
2208 public void UploadFileAsyncCancelEvent ()
2210 UploadAsyncCancelEventTest ((webClient, uri, cancelEvent) =>
2212 string tempFile = Path.Combine (_tempFolder, "upload.tmp");
2213 File.Create (tempFile).Close ();
2215 webClient.UploadFileCompleted += (sender, args) =>
2221 webClient.UploadFileAsync (uri, "PUT", tempFile);
2226 public void UploadFileAsyncContentType ()
2228 var serverUri = "http://localhost:13370/";
2229 var filename = Path.GetTempFileName ();
2231 HttpListener listener = new HttpListener ();
2232 listener.Prefixes.Add (serverUri);
2235 using (var client = new WebClient ())
2237 client.UploadFileTaskAsync (new Uri (serverUri), filename);
2238 var request = listener.GetContext ().Request;
2240 var expected = "multipart/form-data; boundary=------------";
2241 Assert.AreEqual (expected.Length + 15, request.ContentType.Length);
2242 Assert.AreEqual (expected, request.ContentType.Substring (0, expected.Length));
2249 public void UploadAsyncCancelEventTest (Action<WebClient, Uri, EventWaitHandle> uploadAction)
2251 var ep = new IPEndPoint (IPAddress.Loopback, 8000);
2252 string url = "http://" + IPAddress.Loopback + ":8000/test/";
2254 using (var responder = new SocketResponder (ep, EchoRequestHandler))
2258 var webClient = new WebClient ();
2260 var cancellationTokenSource = new CancellationTokenSource ();
2261 cancellationTokenSource.Token.Register (webClient.CancelAsync);
2263 var cancelEvent = new ManualResetEvent (false);
2265 uploadAction.Invoke (webClient, new Uri (url), cancelEvent);
2267 cancellationTokenSource.Cancel ();
2269 Assert.IsTrue (cancelEvent.WaitOne (1000));