File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
AngleSharp.Io.Tests/Network Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 1
1
namespace AngleSharp . Io . Tests . Network
2
2
{
3
+ using AngleSharp . Dom . Events ;
4
+ using AngleSharp . Io . Dom ;
5
+ using FluentAssertions ;
3
6
using NUnit . Framework ;
7
+ using System ;
8
+ using System . Collections . Generic ;
9
+ using System . Threading . Tasks ;
4
10
5
11
[ TestFixture ]
6
12
public class WebSocketTests
7
13
{
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
+ }
8
45
}
9
46
}
You can’t perform that action at this time.
0 commit comments