You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
@ -55,8 +55,9 @@ namespace MonoTests.System.Net
|
||||
|
||||
IAsyncResult async = Dns.BeginResolve (site1Dot, null, null);
|
||||
IPHostEntry entry = Dns.EndResolve (async);
|
||||
SubTestValidIPHostEntry (entry);
|
||||
Assert.AreEqual (site1Dot, entry.AddressList [0].ToString ());
|
||||
SubTestValidIPHostEntry (entry);
|
||||
var ip = GetIPv4Address (entry);
|
||||
Assert.AreEqual (site1Dot, ip.ToString ());
|
||||
}
|
||||
|
||||
void ResolveCallback (IAsyncResult ar)
|
||||
@ -205,12 +206,21 @@ namespace MonoTests.System.Net
|
||||
}
|
||||
}
|
||||
|
||||
static IPAddress GetIPv4Address (IPHostEntry h)
|
||||
{
|
||||
var al = h.AddressList.FirstOrDefault (x => x.AddressFamily == AddressFamily.InterNetwork);
|
||||
if (al == null)
|
||||
Assert.Ignore ("Could not resolve an IPv4 address as required by this test case, e.g. running on an IPv6 only network");
|
||||
return al;
|
||||
}
|
||||
|
||||
void SubTestGetHostByName (string siteName, string siteDot)
|
||||
{
|
||||
IPHostEntry h = Dns.GetHostByName (siteName);
|
||||
SubTestValidIPHostEntry (h);
|
||||
Assert.AreEqual (siteName, h.HostName, "siteName");
|
||||
Assert.AreEqual (siteDot, h.AddressList [0].ToString (), "siteDot");
|
||||
var ip = GetIPv4Address (h);
|
||||
Assert.AreEqual (siteDot, ip.ToString (), "siteDot");
|
||||
}
|
||||
|
||||
[Test]
|
||||
@ -287,7 +297,8 @@ namespace MonoTests.System.Net
|
||||
IPAddress addr = new IPAddress (IPAddress.NetworkToHostOrder ((int) site1IP));
|
||||
IPHostEntry h = Dns.GetHostByAddress (addr);
|
||||
SubTestValidIPHostEntry (h);
|
||||
Assert.AreEqual (addr.ToString (), h.AddressList [0].ToString ());
|
||||
var ip = GetIPv4Address (h);
|
||||
Assert.AreEqual (addr.ToString (), ip.ToString ());
|
||||
}
|
||||
|
||||
[Test]
|
||||
@ -295,8 +306,9 @@ namespace MonoTests.System.Net
|
||||
{
|
||||
IPAddress addr = new IPAddress (IPAddress.NetworkToHostOrder ((int) site2IP));
|
||||
IPHostEntry h = Dns.GetHostByAddress (addr);
|
||||
SubTestValidIPHostEntry (h);
|
||||
Assert.AreEqual (addr.ToString (), h.AddressList [0].ToString ());
|
||||
SubTestValidIPHostEntry (h);
|
||||
var ip = GetIPv4Address (h);
|
||||
Assert.AreEqual (addr.ToString (), ip.ToString ());
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -660,7 +660,7 @@ namespace MonoTests.System.Net
|
||||
Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#3");
|
||||
Assert.IsNotNull (ex.Message, "#4");
|
||||
Assert.IsNotNull (ex.ParamName, "#5");
|
||||
Assert.IsFalse (ex.ParamName == "value", "#6");
|
||||
Assert.AreEqual ("value", ex.ParamName, "#6");
|
||||
Assert.IsNull (ex.InnerException, "#7");
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,8 @@ using System.Threading;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using MonoTests.Helpers;
|
||||
|
||||
// ***************************************************************************************
|
||||
// NOTE: when adding prefixes, make then unique per test, as MS might take 'some time' to
|
||||
// unregister it even after explicitly closing the listener.
|
||||
@ -79,13 +81,23 @@ namespace MonoTests.System.Net {
|
||||
|
||||
public static MyNetworkStream CreateNS (int port)
|
||||
{
|
||||
return CreateNS (port, 5000);
|
||||
return CreateNS (IPAddress.Loopback, port, 5000);
|
||||
}
|
||||
|
||||
public static MyNetworkStream CreateNS (int port, int timeout_ms)
|
||||
{
|
||||
return CreateNS (IPAddress.Loopback, port, timeout_ms);
|
||||
}
|
||||
|
||||
public static MyNetworkStream CreateNS (IPAddress ip, int port)
|
||||
{
|
||||
return CreateNS (ip, port, 5000);
|
||||
}
|
||||
|
||||
public static MyNetworkStream CreateNS (IPAddress ip, int port, int timeout_ms)
|
||||
{
|
||||
Socket sock = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
sock.Connect (new IPEndPoint (IPAddress.Loopback, port));
|
||||
sock.Connect (new IPEndPoint (ip, port));
|
||||
sock.SendTimeout = timeout_ms;
|
||||
sock.ReceiveTimeout = timeout_ms;
|
||||
return new MyNetworkStream (sock);
|
||||
@ -136,8 +148,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test1 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test1/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test1/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "GET / HTTP/1.1\r\n\r\n"); // No host
|
||||
string response = Receive (ns, 512);
|
||||
ns.Close ();
|
||||
@ -147,8 +160,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test2 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test2/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test2/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n"); // no prefix
|
||||
string response = Receive (ns, 512);
|
||||
ns.Close ();
|
||||
@ -182,8 +196,9 @@ namespace MonoTests.System.Net {
|
||||
bad.Append ('}');
|
||||
|
||||
foreach (char b in bad.ToString ()){
|
||||
HttpListener listener = CreateAndStartListener ("http://127.0.0.1:9000/test3/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
HttpListener listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test3/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, String.Format ("MA{0} / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n", b)); // bad method
|
||||
|
||||
string response = Receive (ns, 512);
|
||||
@ -196,8 +211,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test4 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test4/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test4/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test4/ HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n"); // length required
|
||||
string response = Receive (ns, 512);
|
||||
ns.Close ();
|
||||
@ -207,8 +223,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test5 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test5/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test5/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST / HTTP/1.1\r\nHost: 127.0.0.1\r\nTransfer-Encoding: pepe\r\n\r\n"); // not implemented
|
||||
string response = Receive (ns, 512);
|
||||
ns.Close ();
|
||||
@ -218,8 +235,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test6 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test6/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test6/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
// not implemented! This is against the RFC. Should be a bad request/length required
|
||||
Send (ns, "POST /test6/ HTTP/1.1\r\nHost: 127.0.0.1\r\nTransfer-Encoding: identity\r\n\r\n");
|
||||
string response = Receive (ns, 512);
|
||||
@ -230,8 +248,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test7 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test7/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test7/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test7/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
HttpListenerContext ctx = _listener.GetContext ();
|
||||
Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
@ -245,8 +264,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test8 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test8/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test8/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
// Just like Test7, but 1.0
|
||||
Send (ns, "POST /test8/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
HttpListenerContext ctx = _listener.GetContext ();
|
||||
@ -261,9 +281,10 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test9 ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
// 1.0 + "Transfer-Encoding: chunked"
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test9/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test9/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test9/ HTTP/1.0\r\nHost: 127.0.0.1\r\nTransfer-Encoding: chunked\r\n\r\n3\r\n123\r\n0\r\n\r\n");
|
||||
bool timeout;
|
||||
string response = ReceiveWithTimeout (ns, 512, 1000, out timeout);
|
||||
@ -275,9 +296,10 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test10 ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
// Same as Test9, but now we shutdown the socket for sending.
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test10/");
|
||||
MyNetworkStream ns = CreateNS (9000);
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test10/");
|
||||
MyNetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test10/ HTTP/1.0\r\nHost: 127.0.0.1\r\nTransfer-Encoding: chunked\r\n\r\n3\r\n123\r\n0\r\n\r\n");
|
||||
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
||||
bool timeout;
|
||||
@ -290,9 +312,10 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test11 ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
// 0.9
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test11/");
|
||||
MyNetworkStream ns = CreateNS (9000);
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test11/");
|
||||
MyNetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test11/ HTTP/0.9\r\nHost: 127.0.0.1\r\n\r\n123");
|
||||
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
||||
string input = Receive (ns, 512);
|
||||
@ -303,9 +326,10 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test12 ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
// 0.9
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test12/");
|
||||
MyNetworkStream ns = CreateNS (9000);
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test12/");
|
||||
MyNetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test12/ HTTP/0.9\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
||||
string input = Receive (ns, 512);
|
||||
@ -316,9 +340,10 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test13 ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
// 0.9
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test13/");
|
||||
MyNetworkStream ns = CreateNS (9000);
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test13/");
|
||||
MyNetworkStream ns = CreateNS (port);
|
||||
Send (ns, "GEt /test13/ HTTP/0.9\r\nHost: 127.0.0.1\r\n\r\n");
|
||||
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
||||
string input = Receive (ns, 512);
|
||||
@ -332,8 +357,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test14 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test14/");
|
||||
MyNetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test14/");
|
||||
MyNetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test14/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
HttpListenerContext c = _listener.GetContext ();
|
||||
test14_request = c.Request;
|
||||
@ -367,9 +393,10 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test15 ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
// 2 separate writes -> 2 packets. Body size > 8kB
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test15/");
|
||||
MyNetworkStream ns = CreateNS (9000);
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test15/");
|
||||
MyNetworkStream ns = CreateNS (port);
|
||||
Send (ns, "POST /test15/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 8888\r\n\r\n");
|
||||
Thread.Sleep (800);
|
||||
string data = new string ('a', 8888);
|
||||
@ -388,9 +415,10 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test16 ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
// 1 single write with headers + body (size > 8kB)
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test16/");
|
||||
MyNetworkStream ns = CreateNS (9000);
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test16/");
|
||||
MyNetworkStream ns = CreateNS (port);
|
||||
StringBuilder sb = new StringBuilder ();
|
||||
sb.Append ("POST /test16/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 8888\r\n\r\n");
|
||||
string eights = new string ('b', 8888);
|
||||
@ -411,8 +439,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test17 ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/test17/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test17/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "RANDOM /test17/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
HttpListenerContext ctx = _listener.GetContext ();
|
||||
Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
@ -426,8 +455,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test_MultipleClosesOnOuputStreamAllowed ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/MultipleCloses/");
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/MultipleCloses/");
|
||||
NetworkStream ns = CreateNS (port);
|
||||
Send (ns, "GET /MultipleCloses/ HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
||||
|
||||
HttpListenerContext ctx = _listener.GetContext ();
|
||||
@ -438,8 +468,8 @@ namespace MonoTests.System.Net {
|
||||
}
|
||||
|
||||
void SendCookie ()
|
||||
{
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
{
|
||||
NetworkStream ns = CreateNS (sendCookiePort);
|
||||
Send (ns, "GET /SendCookie/ HTTP/1.1\r\nHost: 127.0.0.1\r\n"+
|
||||
"Cookie:$Version=\"1\"; "+
|
||||
"Cookie1=Value1; $Path=\"/\"; "+
|
||||
@ -455,7 +485,8 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void ReceiveCookiesFromClient ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/SendCookie/");
|
||||
sendCookiePort = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + sendCookiePort + "/SendCookie/");
|
||||
Thread clientThread = new Thread (new ThreadStart (SendCookie));
|
||||
clientThread.Start ();
|
||||
|
||||
@ -486,10 +517,12 @@ namespace MonoTests.System.Net {
|
||||
|
||||
private object _lock = new Object();
|
||||
private string cookieResponse;
|
||||
private int receiveCookiePort;
|
||||
private int sendCookiePort;
|
||||
|
||||
void ReceiveCookie () {
|
||||
lock (_lock) {
|
||||
NetworkStream ns = CreateNS (9000);
|
||||
NetworkStream ns = CreateNS (receiveCookiePort);
|
||||
Send (ns, "GET /ReceiveCookie/ HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
||||
cookieResponse = Receive (ns, 512);
|
||||
}
|
||||
@ -498,7 +531,8 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void SendCookiestoClient ()
|
||||
{
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:9000/ReceiveCookie/");
|
||||
receiveCookiePort = NetworkHelpers.FindFreePort ();
|
||||
_listener = CreateAndStartListener ("http://127.0.0.1:" + receiveCookiePort + "/ReceiveCookie/");
|
||||
Thread clientThread = new Thread (new ThreadStart (ReceiveCookie));
|
||||
clientThread.Start ();
|
||||
|
||||
@ -548,6 +582,7 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void MultiResponses ()
|
||||
{
|
||||
echoServerPort = NetworkHelpers.FindFreePort ();
|
||||
Thread srv = new Thread (new ThreadStart (EchoServer));
|
||||
srv.Start ();
|
||||
Thread.Sleep (200);
|
||||
@ -557,7 +592,7 @@ namespace MonoTests.System.Net {
|
||||
"Client{0}", i);
|
||||
|
||||
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (
|
||||
"http://localhost:8888/foobar/");
|
||||
"http://localhost:" + echoServerPort + "/foobar/");
|
||||
req.ServicePoint.Expect100Continue = false;
|
||||
req.ServicePoint.UseNagleAlgorithm = false;
|
||||
req.Method = "POST";
|
||||
@ -575,10 +610,11 @@ namespace MonoTests.System.Net {
|
||||
srv.Join ();
|
||||
}
|
||||
|
||||
int echoServerPort;
|
||||
void EchoServer ()
|
||||
{
|
||||
_listener = new HttpListener ();
|
||||
_listener.Prefixes.Add ("http://*:8888/foobar/");
|
||||
_listener.Prefixes.Add ("http://*:" + echoServerPort + "/foobar/");
|
||||
_listener.Start ();
|
||||
|
||||
manualReset = new ManualResetEvent (false);
|
||||
@ -613,11 +649,12 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void TestNonChunkedAsync ()
|
||||
{
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:9123/");
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:" + port + "/");
|
||||
|
||||
listener.BeginGetContext (callback, listener);
|
||||
|
||||
HttpListener2Test.MyNetworkStream ns = HttpListener2Test.CreateNS (9123);
|
||||
HttpListener2Test.MyNetworkStream ns = HttpListener2Test.CreateNS (port);
|
||||
string message = "<script>\n"+
|
||||
" <!-- register the blueprint for our show-headers service -->\n"+
|
||||
" <action verb=\"POST\" path=\"/host/register\">\n" +
|
||||
@ -666,10 +703,11 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test_MultipleConnections ()
|
||||
{
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:9000/multiple/");
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:" + port + "/multiple/");
|
||||
|
||||
// First one
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (9000);
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "POST /multiple/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
HttpListenerContext ctx = listener.GetContext ();
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
@ -678,7 +716,7 @@ namespace MonoTests.System.Net {
|
||||
ns.Close ();
|
||||
|
||||
// Second one
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "POST /multiple/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
ctx = listener.GetContext ();
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
@ -697,11 +735,12 @@ namespace MonoTests.System.Net {
|
||||
{
|
||||
var wait = new ManualResetEvent (false);
|
||||
var wait2 = new ManualResetEvent (false);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
|
||||
Thread t = new Thread (delegate (object a) {
|
||||
wait.WaitOne ();
|
||||
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (9145);
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "GET http://www.google.com/ HTTP/1.1\r\nHost: www.google.com\r\nContent-Length: 3\r\n\r\n123456");
|
||||
|
||||
wait2.WaitOne ();
|
||||
@ -709,11 +748,11 @@ namespace MonoTests.System.Net {
|
||||
});
|
||||
t.Start ();
|
||||
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://*:9145/");
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://*:" + port + "/");
|
||||
wait.Set ();
|
||||
HttpListenerContext ctx = listener.GetContext ();
|
||||
|
||||
Assert.AreEqual ("http://www.google.com:9145/", ctx.Request.Url.ToString ());
|
||||
Assert.AreEqual ("http://www.google.com:" + port + "/", ctx.Request.Url.ToString ());
|
||||
Assert.AreEqual ("http://www.google.com/", ctx.Request.RawUrl);
|
||||
wait2.Set ();
|
||||
|
||||
@ -723,12 +762,13 @@ namespace MonoTests.System.Net {
|
||||
[Test] // bug #513849
|
||||
public void ClosePort ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
var h = new HttpListener ();
|
||||
h.Prefixes.Add ("http://127.0.0.1:30158/");
|
||||
h.Prefixes.Add ("http://127.0.0.1:" + port + "/");
|
||||
h.Start ();
|
||||
h.BeginGetContext (null, null);
|
||||
h.Stop ();
|
||||
TcpListener t = new TcpListener (IPAddress.Parse ("127.0.0.1"), 30158);
|
||||
TcpListener t = new TcpListener (IPAddress.Parse ("127.0.0.1"), port);
|
||||
t.Start ();
|
||||
t.Stop ();
|
||||
}
|
||||
@ -754,7 +794,7 @@ namespace MonoTests.System.Net {
|
||||
Assert.Ignore ("Hostname couldn't be resolved.");
|
||||
}
|
||||
|
||||
int port = 61234;
|
||||
int port = NetworkHelpers.FindFreePort ();;
|
||||
var h = new HttpListener ();
|
||||
h.Prefixes.Add ("http://" + machineAddress [0] + ":" + port + "/");
|
||||
h.Start ();
|
||||
@ -772,7 +812,7 @@ namespace MonoTests.System.Net {
|
||||
public void BindToAllInterfaces ()
|
||||
{
|
||||
var h = new HttpListener ();
|
||||
int port = 62234;
|
||||
int port = NetworkHelpers.FindFreePort ();
|
||||
h.Prefixes.Add ("http://*:" + port + "/");
|
||||
h.Start ();
|
||||
var c = new TcpClient ("localhost", port);
|
||||
@ -783,8 +823,9 @@ namespace MonoTests.System.Net {
|
||||
[Test]
|
||||
public void Test_EmptyLineAtStart ()
|
||||
{
|
||||
var listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:9124/");
|
||||
var ns = HttpListener2Test.CreateNS (9124);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
var listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:" + port + "/");
|
||||
var ns = HttpListener2Test.CreateNS (port);
|
||||
|
||||
HttpListener2Test.Send (ns, "\r\nGET / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
||||
|
||||
|
@ -30,11 +30,15 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using MonoTests.Helpers;
|
||||
|
||||
namespace MonoTests.System.Net
|
||||
{
|
||||
[TestFixture]
|
||||
@ -47,12 +51,12 @@ namespace MonoTests.System.Net
|
||||
HttpListenerContext ctx;
|
||||
HttpListenerRequest request;
|
||||
NetworkStream ns;
|
||||
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener (
|
||||
"http://127.0.0.1:9000/HasEntityBody/");
|
||||
"http://127.0.0.1:" + port + "/HasEntityBody/");
|
||||
|
||||
// POST with non-zero Content-Lenth
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "POST /HasEntityBody/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -60,7 +64,7 @@ namespace MonoTests.System.Net
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
|
||||
// POST with zero Content-Lenth
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "POST /HasEntityBody/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 0\r\n\r\n123");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -68,7 +72,7 @@ namespace MonoTests.System.Net
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
|
||||
// POST with chunked encoding
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "POST /HasEntityBody HTTP/1.1\r\nHost: 127.0.0.1\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -76,7 +80,7 @@ namespace MonoTests.System.Net
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
|
||||
// GET with no Content-Length
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "GET /HasEntityBody HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -84,7 +88,7 @@ namespace MonoTests.System.Net
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
|
||||
// GET with non-zero Content-Length
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "GET /HasEntityBody HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -92,7 +96,7 @@ namespace MonoTests.System.Net
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
|
||||
// GET with zero Content-Length
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "GET /HasEntityBody HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 0\r\n\r\n");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -100,7 +104,7 @@ namespace MonoTests.System.Net
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
|
||||
// GET with chunked encoding
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "GET /HasEntityBody HTTP/1.1\r\nHost: 127.0.0.1\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -108,35 +112,35 @@ namespace MonoTests.System.Net
|
||||
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
||||
|
||||
// PUT with non-zero Content-Lenth
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "PUT /HasEntityBody/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
Assert.IsTrue (request.HasEntityBody, "#H");
|
||||
|
||||
// PUT with zero Content-Lenth
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "PUT /HasEntityBody/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 0\r\n\r\n123");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
Assert.IsFalse (request.HasEntityBody, "#I");
|
||||
|
||||
// INVALID with non-zero Content-Lenth
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "INVALID /HasEntityBody/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
Assert.IsTrue (request.HasEntityBody, "#J");
|
||||
|
||||
// INVALID with zero Content-Lenth
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "INVALID /HasEntityBody/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 0\r\n\r\n123");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
Assert.IsFalse (request.HasEntityBody, "#K");
|
||||
|
||||
// INVALID with chunked encoding
|
||||
ns = HttpListener2Test.CreateNS (9000);
|
||||
ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "INVALID /HasEntityBody/ HTTP/1.1\r\nHost: 127.0.0.1\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n");
|
||||
ctx = listener.GetContext ();
|
||||
request = ctx.Request;
|
||||
@ -148,9 +152,10 @@ namespace MonoTests.System.Net
|
||||
[Test]
|
||||
public void HttpMethod ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener (
|
||||
"http://127.0.0.1:9000/HttpMethod/");
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (9000);
|
||||
"http://127.0.0.1:" + port + "/HttpMethod/");
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "pOsT /HttpMethod/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
||||
HttpListenerContext ctx = listener.GetContext ();
|
||||
HttpListenerRequest request = ctx.Request;
|
||||
@ -161,10 +166,11 @@ namespace MonoTests.System.Net
|
||||
[Test]
|
||||
public void HttpBasicAuthScheme ()
|
||||
{
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://*:9000/authTest/", AuthenticationSchemes.Basic);
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://*:" + port + "/authTest/", AuthenticationSchemes.Basic);
|
||||
//dummy-wait for context
|
||||
listener.BeginGetContext (null, listener);
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (9000);
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "GET /authTest/ HTTP/1.0\r\n\r\n");
|
||||
String response = HttpListener2Test.Receive (ns, 512);
|
||||
Assert.IsTrue (response.Contains ("WWW-Authenticate: Basic realm"), "#A");
|
||||
@ -175,9 +181,10 @@ namespace MonoTests.System.Net
|
||||
[Test]
|
||||
public void HttpRequestUriIsNotDecoded ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener (
|
||||
"http://127.0.0.1:9000/RequestUriDecodeTest/");
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (9000);
|
||||
"http://127.0.0.1:" + port + "/RequestUriDecodeTest/");
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (port);
|
||||
HttpListener2Test.Send (ns, "GET /RequestUriDecodeTest/?a=b&c=d%26e HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
||||
HttpListenerContext ctx = listener.GetContext ();
|
||||
HttpListenerRequest request = ctx.Request;
|
||||
@ -185,10 +192,37 @@ namespace MonoTests.System.Net
|
||||
listener.Close ();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void HttpRequestIsLocal ()
|
||||
{
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
var ips = new List<IPAddress> ();
|
||||
ips.Add (IPAddress.Loopback);
|
||||
foreach (var adapter in NetworkInterface.GetAllNetworkInterfaces ()) {
|
||||
foreach (var ip in adapter.GetIPProperties ().UnicastAddresses) {
|
||||
ips.Add (ip.Address);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var ip in ips) {
|
||||
if (ip.AddressFamily != AddressFamily.InterNetwork)
|
||||
continue;
|
||||
|
||||
HttpListener listener = HttpListener2Test.CreateAndStartListener (
|
||||
"http://" + ip + ":" + port + "/HttpRequestIsLocal/");
|
||||
NetworkStream ns = HttpListener2Test.CreateNS (ip, port);
|
||||
HttpListener2Test.Send (ns, "GET /HttpRequestIsLocal/ HTTP/1.0\r\n\r\n");
|
||||
HttpListenerContext ctx = listener.GetContext ();
|
||||
HttpListenerRequest request = ctx.Request;
|
||||
Assert.AreEqual (true, request.IsLocal, "IP " + ip + " is not local");
|
||||
listener.Close ();
|
||||
}
|
||||
}
|
||||
|
||||
[Test] // #29927
|
||||
public void HttpRequestUriUnescape ()
|
||||
{
|
||||
var prefix = "http://localhost:12345/";
|
||||
var prefix = "http://localhost:" + NetworkHelpers.FindFreePort () + "/";
|
||||
var key = "Product/1";
|
||||
|
||||
var expectedUrl = prefix + key + "/";
|
||||
|
@ -352,7 +352,7 @@ namespace MonoTests.System.Net {
|
||||
public void CloseWhileBegin ()
|
||||
{
|
||||
HttpListener listener = new HttpListener ();
|
||||
listener.Prefixes.Add ("http://127.0.0.1:9001/closewhilebegin/");
|
||||
listener.Prefixes.Add ("http://127.0.0.1:" + NetworkHelpers.FindFreePort () + "/closewhilebegin/");
|
||||
listener.Start ();
|
||||
CallMe cm = new CallMe ();
|
||||
listener.BeginGetContext (cm.Callback, listener);
|
||||
@ -368,7 +368,7 @@ namespace MonoTests.System.Net {
|
||||
public void AbortWhileBegin ()
|
||||
{
|
||||
HttpListener listener = new HttpListener ();
|
||||
listener.Prefixes.Add ("http://127.0.0.1:9001/abortwhilebegin/");
|
||||
listener.Prefixes.Add ("http://127.0.0.1:" + NetworkHelpers.FindFreePort () + "/abortwhilebegin/");
|
||||
listener.Start ();
|
||||
CallMe cm = new CallMe ();
|
||||
listener.BeginGetContext (cm.Callback, listener);
|
||||
@ -390,7 +390,7 @@ namespace MonoTests.System.Net {
|
||||
// at MonoTests.System.Net.HttpListenerTest.CloseWhileGet()
|
||||
|
||||
HttpListener listener = new HttpListener ();
|
||||
listener.Prefixes.Add ("http://127.0.0.1:9001/closewhileget/");
|
||||
listener.Prefixes.Add ("http://127.0.0.1:" + NetworkHelpers.FindFreePort () + "/closewhileget/");
|
||||
listener.Start ();
|
||||
RunMe rm = new RunMe (1000, new ThreadStart (listener.Close), new object [0]);
|
||||
rm.Start ();
|
||||
@ -407,7 +407,7 @@ namespace MonoTests.System.Net {
|
||||
// at MonoTests.System.Net.HttpListenerTest.CloseWhileGet()
|
||||
|
||||
HttpListener listener = new HttpListener ();
|
||||
listener.Prefixes.Add ("http://127.0.0.1:9001/abortwhileget/");
|
||||
listener.Prefixes.Add ("http://127.0.0.1:" + NetworkHelpers.FindFreePort () + "/abortwhileget/");
|
||||
listener.Start ();
|
||||
RunMe rm = new RunMe (1000, new ThreadStart (listener.Abort), new object [0]);
|
||||
rm.Start ();
|
||||
|
@ -1 +1 @@
|
||||
ea928e50b3028df3f637377e58caab11f8e20610
|
||||
a289a6b5e76e2ac19ac91ec28b641c358d2fcf10
|
@ -145,16 +145,8 @@ public class IPAddressTest
|
||||
"0xff.0x7f.0x20.0xf", "255.127.32.15",
|
||||
"0.0.0.0", IPAddress.Any.ToString(),
|
||||
"255.255.255.255", IPAddress.Broadcast.ToString(),
|
||||
"12.1.1.3 abc", "12.1.1.3",
|
||||
"12.1 .1.2", "12.0.0.1",
|
||||
"12.1 .zzzz.2", "12.0.0.1",
|
||||
"12.1.7", "12.1.0.7",
|
||||
"12", "0.0.0.12",
|
||||
"12.5.3 foo.67.test.test.7FFFFFFFFFfaFFF789FFFFFFFFFFFFFFF", "12.5.0.3",
|
||||
"12.1 foo.bar.test.test.baf", "12.0.0.1",
|
||||
"12.1.4.6 foo.bar.test.test.baf", "12.1.4.6",
|
||||
"12.3 foo.bar.test.test.4", "12.0.0.3",
|
||||
"12 foo.bar.test.test.baf", "0.0.0.12",
|
||||
"65536", "0.1.0.0",
|
||||
"65535", "0.0.255.255",
|
||||
"20.65535", "20.0.255.255",
|
||||
@ -187,6 +179,14 @@ public class IPAddressTest
|
||||
"12...",
|
||||
" ",
|
||||
"7848198702",
|
||||
"12.1.1.3 abc",
|
||||
"12.1 .1.2",
|
||||
"12.1 .zzzz.2",
|
||||
"12.5.3 foo.67.test.test.7FFFFFFFFFfaFFF789FFFFFFFFFFFFFFF",
|
||||
"12.1 foo.bar.test.test.baf",
|
||||
"12.1.4.6 foo.bar.test.test.baf",
|
||||
"12.3 foo.bar.test.test.4",
|
||||
"12 foo.bar.test.test.baf",
|
||||
};
|
||||
|
||||
static byte [] ipv4MappedIPv6Prefix = new byte [] { 0,0, 0,0, 0,0, 0,0, 0,0, 0xFF,0xFF };
|
||||
@ -197,8 +197,8 @@ public class IPAddressTest
|
||||
Assert.AreEqual ((long) 0, IPAddress.Any.Address, "#1");
|
||||
Assert.AreEqual ((long) 0xFFFFFFFF, IPAddress.Broadcast.Address, "#2");
|
||||
long loopback = IPAddress.HostToNetworkOrder (BitConverter.IsLittleEndian ?
|
||||
0x7f000001 :
|
||||
0x0100007f);
|
||||
0x7f000001 :
|
||||
0x0100007f);
|
||||
Assert.AreEqual (loopback, IPAddress.Loopback.Address, "#3");
|
||||
Assert.AreEqual ((long) 0xFFFFFFFF, IPAddress.None.Address, "#4");
|
||||
}
|
||||
@ -241,8 +241,8 @@ public class IPAddressTest
|
||||
[Test]
|
||||
public void IsLoopbackV6 ()
|
||||
{
|
||||
if (!Socket.SupportsIPv6)
|
||||
Assert.Ignore ("IPv6 must be enabled in machine.config");
|
||||
// if (!Socket.SupportsIPv6)
|
||||
// Assert.Ignore ("IPv6 must be enabled in machine.config");
|
||||
|
||||
IPAddress ip = IPAddress.IPv6Loopback;
|
||||
Assert.IsTrue (IPAddress.IsLoopback (ip), "#1");
|
||||
@ -277,24 +277,16 @@ public class IPAddressTest
|
||||
[Test]
|
||||
public void Address ()
|
||||
{
|
||||
// hm, lame, anything is accepted by ms.net
|
||||
/*
|
||||
try {
|
||||
IPAddress ip1 = new IPAddress (0x0000000100000000);
|
||||
Assertion.Fail ("#1");
|
||||
Assert.Fail ("#1");
|
||||
} catch (ArgumentOutOfRangeException) {}
|
||||
|
||||
IPAddress ip = IPAddress.Parse ("127.0.0.1");
|
||||
ip.Address = 0;
|
||||
ip.Address = 0xffffffff;
|
||||
try {
|
||||
ip.Address = -1;
|
||||
Assertion.Fail ("#2");
|
||||
} catch (ArgumentOutOfRangeException) {}
|
||||
try {
|
||||
ip.Address = 0x0000000100000000;
|
||||
Assertion.Fail ("#3");
|
||||
} catch (ArgumentOutOfRangeException) {}
|
||||
*/
|
||||
ip.Address = -1;
|
||||
ip.Address = 0x0000000100000000;
|
||||
}
|
||||
|
||||
[Test]
|
||||
@ -532,16 +524,11 @@ public class IPAddressTest
|
||||
public void TryParse_IpString_Null ()
|
||||
{
|
||||
IPAddress i;
|
||||
|
||||
try {
|
||||
IPAddress.TryParse ((string) null, out i);
|
||||
Assert.Fail ("#1");
|
||||
} catch (ArgumentNullException ex) {
|
||||
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
|
||||
Assert.IsNull (ex.InnerException, "#3");
|
||||
Assert.IsNotNull (ex.Message, "#4");
|
||||
Assert.AreEqual ("ipString", ex.ParamName, "#5");
|
||||
}
|
||||
|
||||
bool val1 = IPAddress.TryParse ((string) null, out i);
|
||||
|
||||
Assert.IsFalse (val1, "#1");
|
||||
Assert.IsNull (i, "#2");
|
||||
}
|
||||
|
||||
[Test]
|
||||
@ -625,8 +612,8 @@ public class IPAddressTest
|
||||
[Test]
|
||||
public void ParseWrongV6 ()
|
||||
{
|
||||
if (!Socket.SupportsIPv6)
|
||||
Assert.Ignore ("IPv6 must be enabled in machine.config");
|
||||
//if (!Socket.SupportsIPv6)
|
||||
// Assert.Ignore ("IPv6 must be enabled in machine.config");
|
||||
|
||||
for (int i = 0; i < ipv6ParseWrong.Length; i++) {
|
||||
string ipAddress = ipv6ParseWrong [i];
|
||||
@ -636,14 +623,12 @@ public class IPAddressTest
|
||||
Assert.Fail ("#1:" + i + " (" + ipAddress + ")");
|
||||
} catch (FormatException ex) {
|
||||
Assert.AreEqual (typeof (FormatException), ex.GetType (), "#2:" + i);
|
||||
Assert.IsNull (ex.InnerException, "#3:" + i);
|
||||
Assert.AreEqual(typeof(SocketException), ex.InnerException.GetType (), "#3:" + i);
|
||||
Assert.IsNotNull (ex.Message, "#4:" + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if NET_4_5
|
||||
|
||||
[Test]
|
||||
public void MapToIPv6 ()
|
||||
{
|
||||
@ -678,8 +663,6 @@ public class IPAddressTest
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
[Test]
|
||||
public void EqualsFromBytes ()
|
||||
{
|
||||
@ -691,6 +674,18 @@ public class IPAddressTest
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category ("NotDotNet")]
|
||||
public void UnixInterfaceNameAsZoneIndex ()
|
||||
{
|
||||
var ip = IPAddress.Parse ("fe80::bae8:56ff:fe47:af7e%en0");
|
||||
|
||||
// Should be en0 but it's of long type!
|
||||
Assert.AreEqual (0, ip.ScopeId);
|
||||
|
||||
Assert.AreEqual ("fe80::bae8:56ff:fe47:af7e", ip.ToString ());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -219,7 +219,7 @@ public class ServicePointTest
|
||||
|
||||
ServicePointManager.DnsRefreshTimeout = dnsRefreshTimeout;
|
||||
|
||||
uri = new Uri ("http://www.google.com/");
|
||||
uri = new Uri ("http://localhost/");
|
||||
sp = ServicePointManager.FindServicePoint (uri);
|
||||
|
||||
hostEntryProperty = typeof (ServicePoint).GetProperty ("HostEntry", BindingFlags.NonPublic | BindingFlags.Instance);
|
||||
|
@ -1853,7 +1853,8 @@ namespace MonoTests.System.Net
|
||||
[Category ("AndroidNotWorking")] // Test suite hangs if the tests runs as part of the entire BCL suite. Works when only this fixture is ran
|
||||
public void UploadFileAsyncContentType ()
|
||||
{
|
||||
var serverUri = "http://localhost:13370/";
|
||||
var port = NetworkHelpers.FindFreePort ();
|
||||
var serverUri = "http://localhost:" + port + "/";
|
||||
var filename = Path.GetTempFileName ();
|
||||
|
||||
HttpListener listener = new HttpListener ();
|
||||
|
Reference in New Issue
Block a user