Skip to content

Commit 65170cb

Browse files
committed
Added test for websocket (echo) #5
1 parent 048cc5e commit 65170cb

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,46 @@
11
namespace AngleSharp.Io.Tests.Network
22
{
3+
using AngleSharp.Dom.Events;
4+
using AngleSharp.Io.Dom;
5+
using FluentAssertions;
36
using NUnit.Framework;
7+
using System;
8+
using System.Collections.Generic;
9+
using System.Threading.Tasks;
410

511
[TestFixture]
612
public class WebSocketTests
713
{
14+
[Test]
15+
public async Task ConnectToWebSocketEcho()
16+
{
17+
if (Helper.IsNetworkAvailable())
18+
{
19+
// ARRANGE
20+
var message = "foo";
21+
var haserror = false;
22+
var messages = new List<String>();
23+
var closed = new TaskCompletionSource<Boolean>();
24+
var document = await BrowsingContext.New().OpenNewAsync("https://www.websocket.org/echo.html");
25+
var ws = new WebSocket(document.DefaultView, "wss://echo.websocket.org");
26+
27+
// ACT
28+
ws.Opened += (s, ev) => ws.Send(message);
29+
ws.Message += (s, ev) =>
30+
{
31+
var msg = ev as MessageEvent;
32+
messages.Add(msg.Data.ToString());
33+
ws.Close();
34+
};
35+
ws.Closed += (s, ev) => closed.SetResult(true);
36+
ws.Error += (s, ev) => haserror = true;
37+
await closed.Task;
38+
39+
// ASSERT
40+
haserror.Should().BeFalse();
41+
messages.Count.Should().Be(1);
42+
messages[0].Should().Be(message);
43+
}
44+
}
845
}
946
}

0 commit comments

Comments
 (0)