using System.Threading;
using NUnit.Framework;
+using MonoTests.Helpers;
+
namespace MonoTests.System.Net
{
[TestFixture]
try {
wc.DownloadData ((string) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // DownloadData (string)
}
}
-#if NET_2_0
[Test] // DownloadData (Uri)
public void DownloadData2_Address_Null ()
{
Assert.IsNotNull (inner.Message, "#9");
}
}
-#endif
[Test]
public void DownloadFile1_Address_Null ()
try {
wc.DownloadFile ((string) null, "tmp.out");
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // DownloadFile (string, string)
public void DownloadFile1_Address_SchemeNotSupported ()
{
+ string file = Path.Combine (Path.GetTempPath (), "tmp.out");
WebClient wc = new WebClient ();
try {
- wc.DownloadFile ("tp://scheme.notsupported",
- "tmp.out");
+ wc.DownloadFile ("tp://scheme.notsupported", file);
Assert.Fail ("#1");
} catch (WebException ex) {
// An error occurred performing a WebClient request
Assert.IsNull (inner.InnerException, "#8");
Assert.IsNotNull (inner.Message, "#9");
}
+ finally {
+ if (File.Exists (file))
+ File.Delete (file);
+ }
}
[Test] // DownloadFile (string, string)
wc.DownloadFile ("tp://scheme.notsupported",
(string) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("fileName", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("path", inner.ParamName, "#11");
- }
-#endif
}
-#if NET_2_0
[Test] // DownloadFile (Uri, string)
public void DownloadFile2_Address_Null ()
{
[Test] // DownloadFile (Uri, string)
public void DownloadFile2_Address_SchemeNotSupported ()
{
+ string file = Path.Combine (Path.GetTempPath (), "tmp.out");
WebClient wc = new WebClient ();
try {
- wc.DownloadFile (new Uri ("tp://scheme.notsupported"),
- "tmp.out");
+ wc.DownloadFile (new Uri ("tp://scheme.notsupported"), file);
Assert.Fail ("#1");
} catch (WebException ex) {
// An error occurred performing a WebClient request
Assert.IsNull (inner.InnerException, "#8");
Assert.IsNotNull (inner.Message, "#9");
}
+ finally {
+ if (File.Exists (file))
+ File.Delete (file);
+ }
}
[Test] // DownloadFile (Uri, string)
Assert.AreEqual ("Encoding", ex.ParamName, "#6");
}
}
-#endif
[Test] // OpenRead (string)
public void OpenRead1_Address_Null ()
try {
wc.OpenRead ((string) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // OpenRead (string)
}
}
-#if NET_2_0
[Test] // OpenRead (Uri)
public void OpenRead2_Address_Null ()
{
Assert.IsNotNull (inner.Message, "#9");
}
}
-#endif
[Test] // OpenWrite (string)
public void OpenWrite1_Address_Null ()
try {
wc.OpenWrite ((string) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // OpenWrite (string)
try {
wc.OpenWrite ((string) null, "PUT");
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // OpenWrite (string, string)
}
}
-#if NET_2_0
[Test] // OpenWrite (Uri)
public void OpenWrite3_Address_Null ()
{
Assert.IsNotNull (inner.Message, "#9");
}
}
-#endif
[Test] // UploadData (string, byte [])
public void UploadData1_Address_Null ()
try {
wc.UploadData ((string) null, new byte [] { 0x1a });
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // UploadData (string, byte [])
}
[Test] // UploadData (string, byte [])
-#if ONLY_1_1
- [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
-#endif
public void UploadData1_Data_Null ()
{
WebClient wc = new WebClient ();
wc.UploadData ("http://www.mono-project.com",
(byte []) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("data", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("data", inner.ParamName, "#11");
- }
-#endif
}
-#if NET_2_0
[Test] // UploadData (Uri, byte [])
public void UploadData2_Address_Null ()
{
Assert.AreEqual ("data", ex.ParamName, "#6");
}
}
-#endif
[Test] // UploadData (string, string, byte [])
public void UploadData3_Address_Null ()
wc.UploadData ((string) null, "POST",
new byte [] { 0x1a });
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // UploadData (string, string, byte [])
}
[Test] // UploadData (string, string, byte [])
-#if ONLY_1_1
- [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
-#endif
public void UploadData3_Data_Null ()
{
WebClient wc = new WebClient ();
wc.UploadData ("http://www.mono-project.com",
"POST", (byte []) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("data", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("data", inner.ParamName, "#11");
- }
-#endif
}
-#if NET_2_0
[Test] // UploadData (Uri, string, byte [])
public void UploadData4_Address_Null ()
{
Assert.AreEqual ("data", ex.ParamName, "#6");
}
}
-#endif
[Test] // UploadFile (string, string)
public void UploadFile1_Address_Null ()
try {
wc.UploadFile ((string) null, tempFile);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // UploadFile (string, string)
wc.UploadFile ("tp://scheme.notsupported",
(string) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("fileName", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("path", inner.ParamName, "#11");
- }
-#endif
}
-#if NET_2_0
[Test] // UploadFile (Uri, string)
public void UploadFile2_Address_Null ()
{
Assert.AreEqual ("fileName", ex.ParamName, "#6");
}
}
-#endif
[Test] // UploadFile (string, string, string)
public void UploadFile3_Address_Null ()
try {
wc.UploadFile ((string) null, "POST", tempFile);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("path", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // UploadFile (string, string, string)
wc.UploadFile ("tp://scheme.notsupported",
"POST", (string) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("fileName", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("path", inner.ParamName, "#11");
- }
-#endif
}
-#if NET_2_0
[Test] // UploadFile (Uri, string, string)
public void UploadFile4_Address_Null ()
{
Assert.AreEqual ("data", ex.ParamName, "#6");
}
}
-#endif
[Test]
public void UploadValues1 ()
{
- IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
- string url = "http://" + IPAddress.Loopback.ToString () + ":8000/test/";
+ IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
+ string url = "http://" + ep.ToString () + "/test/";
using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
responder.Start ();
WebClient wc = new WebClient ();
-#if NET_2_0
wc.Encoding = Encoding.ASCII;
-#endif
NameValueCollection nvc = new NameValueCollection ();
nvc.Add ("Name", "\u0041\u2262\u0391\u002E");
try {
wc.UploadValues ((string) null, new NameValueCollection ());
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // UploadValues (string, NameValueCollection)
}
[Test] // UploadValues (string, NameValueCollection)
-#if ONLY_1_1
- [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
-#endif
public void UploadValues1_Data_Null ()
{
WebClient wc = new WebClient ();
wc.UploadValues ("http://www.mono-project.com",
(NameValueCollection) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("data", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("data", inner.ParamName, "#11");
- }
-#endif
}
-#if NET_2_0
[Test] // UploadValues (Uri, NameValueCollection)
public void UploadValues2_Address_Null ()
{
Assert.AreEqual ("data", ex.ParamName, "#6");
}
}
-#endif
[Test] // UploadValues (string, string, NameValueCollection)
public void UploadValues3_Address_Null ()
wc.UploadValues ((string) null, "POST",
new NameValueCollection ());
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("address", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("uriString", inner.ParamName, "#11");
- }
-#endif
}
[Test] // UploadValues (string, string, NameValueCollection)
}
[Test] // UploadValues (string, string, NameValueCollection)
-#if ONLY_1_1
- [Category ("NotDotNet")] // On MS, there's a nested NotImplementedException
-#endif
public void UploadValues3_Data_Null ()
{
WebClient wc = new WebClient ();
wc.UploadValues ("http://www.mono-project.com",
"POST", (NameValueCollection) null);
Assert.Fail ("#1");
-#if NET_2_0
} catch (ArgumentNullException ex) {
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("data", ex.ParamName, "#6");
}
-#else
- } catch (WebException ex) {
- // An error occurred performing a WebClient request
- Assert.AreEqual (typeof (WebException), ex.GetType (), "#2");
- Assert.IsNotNull (ex.Message, "#3");
- Assert.IsNull (ex.Response, "#4");
- Assert.AreEqual (WebExceptionStatus.UnknownError, ex.Status, "#5");
-
- ArgumentNullException inner = ex.InnerException
- as ArgumentNullException;
- Assert.IsNotNull (inner, "#6");
- Assert.AreEqual (typeof (ArgumentNullException), inner.GetType (), "#7");
- Assert.IsNull (inner.InnerException, "#8");
- Assert.IsNotNull (inner.Message, "#9");
- Assert.IsNotNull (inner.ParamName, "#10");
- Assert.AreEqual ("data", inner.ParamName, "#11");
- }
-#endif
}
-#if NET_2_0
[Test] // UploadValues (Uri, string, NameValueCollection)
public void UploadValues4_Address_Null ()
{
Assert.AreEqual ("data", ex.ParamName, "#6");
}
}
-#endif
+
+ [Test]
+ public void GetWebRequestOverriding ()
+ {
+ GetWebRequestOverridingTestClass testObject = new GetWebRequestOverridingTestClass ();
+ testObject.DownloadData ("http://www.mono-project.com");
+
+ Assert.IsTrue (testObject.overridedCodeRan, "Overrided code wasn't called");
+ }
+
+ class GetWebRequestOverridingTestClass : WebClient
+ {
+ internal bool overridedCodeRan = false;
+ protected override WebRequest GetWebRequest(Uri address)
+ {
+ overridedCodeRan = true;
+ return base.GetWebRequest (address);
+ }
+ }
static byte [] EchoRequestHandler (Socket socket)
{
int bytesReceived = socket.Receive (buffer);
while (bytesReceived > 0) {
ms.Write (buffer, 0, bytesReceived);
+ // We don't check for Content-Length or anything else here, so we give the client a little time to write
+ // after sending the headers
+ Thread.Sleep (200);
if (socket.Available > 0) {
bytesReceived = socket.Receive (buffer);
} else {
string expect = null;
StreamReader sr = new StreamReader (ms, Encoding.UTF8);
- string line = sr.ReadLine ();
+ string line = null;
byte state = 0;
- while (line != null) {
+ while ((line = sr.ReadLine ()) != null) {
if (state > 0) {
state = 2;
sb.Append (line);
sb.Append ("\r\n");
- line = sr.ReadLine ();
- } else {
- if (line.StartsWith ("Expect:"))
- expect = line.Substring (8);
- line = sr.ReadLine ();
- if (line.Length == 0) {
- state = 1;
- line = sr.ReadLine ();
- }
+ } if (line.Length == 0) {
+ state = 1;
+ } else if (line.StartsWith ("Expect:")) {
+ expect = line.Substring (8);
}
}
bytesReceived = socket.Receive (buffer);
while (bytesReceived > 0) {
ms.Write (buffer, 0, bytesReceived);
+ Thread.Sleep (200);
if (socket.Available > 0) {
bytesReceived = socket.Receive (buffer);
} else {
}
}
+ sw = new StringWriter ();
sw.WriteLine ("HTTP/1.1 200 OK");
sw.WriteLine ("Content-Type: text/xml");
sw.WriteLine ("Content-Length: " + sb.Length.ToString (CultureInfo.InvariantCulture));
return Encoding.UTF8.GetBytes (sw.ToString ());
}
+
+ [Test]
+ public void DefaultProxy ()
+ {
+ WebClient wc = new WebClient ();
+ // this is never null on .net
+ Assert.IsNotNull (wc.Proxy);
+ // and return the same instance as WebRequest.DefaultWebProxy
+ Assert.AreSame (wc.Proxy, WebRequest.DefaultWebProxy);
+ }
+
+#if NET_4_5
+ [Test]
+ public void UploadStringAsyncCancelEvent ()
+ {
+ UploadAsyncCancelEventTest (9301, (webClient, uri, cancelEvent) =>
+ {
+
+ webClient.UploadStringCompleted += (sender, args) =>
+ {
+ if (args.Cancelled)
+ cancelEvent.Set ();
+ };
+
+ webClient.UploadStringAsync (uri, "PUT", "text");
+ });
+ }
+
+ [Test]
+ public void UploadDataAsyncCancelEvent ()
+ {
+ UploadAsyncCancelEventTest (9302, (webClient, uri, cancelEvent) =>
+ {
+ webClient.UploadDataCompleted += (sender, args) =>
+ {
+ if (args.Cancelled)
+ cancelEvent.Set ();
+ };
+
+ webClient.UploadDataAsync (uri, "PUT", new byte[] { });
+ });
+ }
+
+ [Test]
+ public void UploadValuesAsyncCancelEvent ()
+ {
+ UploadAsyncCancelEventTest (9303, (webClient, uri, cancelEvent) =>
+ {
+ webClient.UploadValuesCompleted += (sender, args) =>
+ {
+ if (args.Cancelled)
+ cancelEvent.Set ();
+ };
+
+ webClient.UploadValuesAsync (uri, "PUT", new NameValueCollection ());
+ });
+ }
+
+ [Test]
+ public void UploadFileAsyncCancelEvent ()
+ {
+ UploadAsyncCancelEventTest (9304,(webClient, uri, cancelEvent) =>
+ {
+ string tempFile = Path.Combine (_tempFolder, "upload.tmp");
+ File.Create (tempFile).Close ();
+
+ webClient.UploadFileCompleted += (sender, args) =>
+ {
+ if (args.Cancelled)
+ cancelEvent.Set ();
+ };
+
+ webClient.UploadFileAsync (uri, "PUT", tempFile);
+ });
+ }
+
+ [Test]
+ public void UploadFileAsyncContentType ()
+ {
+ var serverUri = "http://localhost:13370/";
+ var filename = Path.GetTempFileName ();
+
+ HttpListener listener = new HttpListener ();
+ listener.Prefixes.Add (serverUri);
+ listener.Start ();
+
+ using (var client = new WebClient ())
+ {
+ client.UploadFileTaskAsync (new Uri (serverUri), filename);
+ var request = listener.GetContext ().Request;
+
+ var expected = "multipart/form-data; boundary=---------------------";
+ Assert.AreEqual (expected.Length + 15, request.ContentType.Length);
+ Assert.AreEqual (expected, request.ContentType.Substring (0, expected.Length));
+ }
+ listener.Close ();
+ }
+#endif
+
+#if NET_4_0
+ public void UploadAsyncCancelEventTest (int port, Action<WebClient, Uri, EventWaitHandle> uploadAction)
+ {
+ var ep = NetworkHelpers.LocalEphemeralEndPoint ();
+ string url = "http://" + ep.ToString() + "/test/";
+
+ using (var responder = new SocketResponder (ep, EchoRequestHandler))
+ {
+ responder.Start ();
+
+ var webClient = new WebClient ();
+
+ var cancellationTokenSource = new CancellationTokenSource ();
+ cancellationTokenSource.Token.Register (webClient.CancelAsync);
+
+ var cancelEvent = new ManualResetEvent (false);
+
+ uploadAction.Invoke (webClient, new Uri (url), cancelEvent);
+
+ cancellationTokenSource.Cancel ();
+
+ Assert.IsTrue (cancelEvent.WaitOne (1000));
+ }
+ }
+#endif
}
}