Added NightAlert project for travel kit
This commit is contained in:
211
ThirdParty/EngineIoClientDotNet/Src/EngineIoClientDotNet.Tests.mono/ClientTests/ConnectionTest.cs
vendored
Normal file
211
ThirdParty/EngineIoClientDotNet/Src/EngineIoClientDotNet.Tests.mono/ClientTests/ConnectionTest.cs
vendored
Normal file
@@ -0,0 +1,211 @@
|
||||
using Quobject.EngineIoClientDotNet.Client;
|
||||
using Quobject.EngineIoClientDotNet.Client.Transports;
|
||||
using Quobject.EngineIoClientDotNet.ComponentEmitter;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace Quobject.EngineIoClientDotNet_Tests.ClientTests
|
||||
{
|
||||
public class ConnectionTest : Connection
|
||||
{
|
||||
private ManualResetEvent _manualResetEvent = null;
|
||||
private Socket socket;
|
||||
public string Message;
|
||||
|
||||
[Fact]
|
||||
public void ConnectToLocalhost()
|
||||
{
|
||||
_manualResetEvent = new ManualResetEvent(false);
|
||||
|
||||
socket = new Socket(CreateOptions());
|
||||
socket.On(Socket.EVENT_OPEN, new TestListener());
|
||||
socket.On(Socket.EVENT_MESSAGE, new MessageListener(socket, this));
|
||||
socket.Open();
|
||||
_manualResetEvent.WaitOne();
|
||||
socket.Close();
|
||||
Assert.Equal("hi", this.Message);
|
||||
}
|
||||
|
||||
public class TestListener : IListener
|
||||
{
|
||||
public void Call(params object[] args)
|
||||
{
|
||||
//log.Info("open");
|
||||
}
|
||||
|
||||
public int CompareTo(IListener other)
|
||||
{
|
||||
return this.GetId().CompareTo(other.GetId());
|
||||
}
|
||||
|
||||
public int GetId()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class MessageListener : IListener
|
||||
{
|
||||
private Socket socket;
|
||||
private ConnectionTest connectionTest;
|
||||
|
||||
public MessageListener(Socket socket)
|
||||
{
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
public MessageListener(Socket socket, ConnectionTest connectionTest)
|
||||
{
|
||||
this.socket = socket;
|
||||
this.connectionTest = connectionTest;
|
||||
}
|
||||
|
||||
public void Call(params object[] args)
|
||||
{
|
||||
//log.Info("message = " + args[0]);
|
||||
connectionTest.Message = (string)args[0];
|
||||
connectionTest._manualResetEvent.Set();
|
||||
}
|
||||
|
||||
public int CompareTo(IListener other)
|
||||
{
|
||||
return this.GetId().CompareTo(other.GetId());
|
||||
}
|
||||
|
||||
public int GetId()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConnectToLocalhost2()
|
||||
{
|
||||
_manualResetEvent = new ManualResetEvent(false);
|
||||
this.Message = "";
|
||||
|
||||
var options = CreateOptions();
|
||||
options.Transports = ImmutableList.Create<string>(Polling.NAME);
|
||||
socket = new Socket(options);
|
||||
|
||||
//socket = new Socket(CreateOptions());
|
||||
socket.On(Socket.EVENT_OPEN, () =>
|
||||
{
|
||||
//log.Info("open");
|
||||
//socket.Send("test send");
|
||||
});
|
||||
socket.On(Socket.EVENT_MESSAGE, (d) =>
|
||||
{
|
||||
var data = (string)d;
|
||||
|
||||
//log.Info("message2 = " + data);
|
||||
this.Message = data;
|
||||
_manualResetEvent.Set();
|
||||
});
|
||||
|
||||
socket.Open();
|
||||
_manualResetEvent.WaitOne();
|
||||
socket.Close();
|
||||
Assert.Equal("hi", this.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestmultibyteUtf8StringsWithPolling()
|
||||
{
|
||||
_manualResetEvent = new ManualResetEvent(false);
|
||||
|
||||
const string SendMessage = "cash money €€€";
|
||||
|
||||
socket = new Socket(CreateOptions());
|
||||
socket.On(Socket.EVENT_OPEN, () =>
|
||||
{
|
||||
//log.Info("open");
|
||||
|
||||
socket.Send(SendMessage);
|
||||
});
|
||||
socket.On(Socket.EVENT_MESSAGE, (d) =>
|
||||
{
|
||||
var data = (string)d;
|
||||
|
||||
//log.Info("TestMessage data = " + data);
|
||||
|
||||
if (data == "hi")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.Message = data;
|
||||
_manualResetEvent.Set();
|
||||
});
|
||||
|
||||
socket.Open();
|
||||
_manualResetEvent.WaitOne();
|
||||
socket.Close();
|
||||
//log.Info("TestmultibyteUtf8StringsWithPolling this.Message = " + this.Message);
|
||||
Assert.Equal(SendMessage, this.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Testemoji()
|
||||
{
|
||||
_manualResetEvent = new ManualResetEvent(false);
|
||||
const string SendMessage = "\uD800-\uDB7F\uDB80-\uDBFF\uDC00-\uDFFF\uE000-\uF8FF";
|
||||
|
||||
var options = CreateOptions();
|
||||
socket = new Socket(options);
|
||||
|
||||
socket.On(Socket.EVENT_OPEN, () =>
|
||||
{
|
||||
//log.Info("open");
|
||||
|
||||
socket.Send(SendMessage);
|
||||
});
|
||||
|
||||
socket.On(Socket.EVENT_MESSAGE, (d) =>
|
||||
{
|
||||
var data = (string)d;
|
||||
|
||||
//log.Info(Socket.EVENT_MESSAGE);
|
||||
|
||||
if (data == "hi")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.Message = data;
|
||||
_manualResetEvent.Set();
|
||||
});
|
||||
|
||||
socket.Open();
|
||||
_manualResetEvent.WaitOne();
|
||||
socket.Close();
|
||||
|
||||
Assert.True(SendMessage == this.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task NotSendPacketsIfSocketCloses()
|
||||
{
|
||||
var noPacket = true;
|
||||
|
||||
socket = new Socket(CreateOptions());
|
||||
socket.On(Socket.EVENT_OPEN, () =>
|
||||
{
|
||||
noPacket = true;
|
||||
});
|
||||
|
||||
socket.Open();
|
||||
socket.On(Socket.EVENT_PACKET_CREATE, () =>
|
||||
{
|
||||
noPacket = false;
|
||||
//log.Info("NotSendPacketsIfSocketCloses EVENT_PACKET_CREATE noPacket = " + noPacket);
|
||||
});
|
||||
socket.Close();
|
||||
await Task.Delay(1000);
|
||||
//log.Info("NotSendPacketsIfSocketCloses end noPacket = " + noPacket);
|
||||
Assert.True(noPacket);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user