Remove some test flakiness and add logging (#1402)
This commit is contained in:
parent
5ade419c53
commit
5ccc9e3a0e
|
|
@ -17,20 +17,28 @@ using Microsoft.AspNetCore.Http.Internal;
|
||||||
using Microsoft.AspNetCore.Sockets.Features;
|
using Microsoft.AspNetCore.Sockets.Features;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
using Microsoft.Extensions.Primitives;
|
using Microsoft.Extensions.Primitives;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Sockets.Tests
|
namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
{
|
{
|
||||||
public class HttpConnectionDispatcherTests
|
public class HttpConnectionDispatcherTests : LoggedTest
|
||||||
{
|
{
|
||||||
|
public HttpConnectionDispatcherTests(ITestOutputHelper output) : base(output)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task NegotiateReservesConnectionIdAndReturnsIt()
|
public async Task NegotiateReservesConnectionIdAndReturnsIt()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
services.AddEndPoint<TestEndPoint>();
|
services.AddEndPoint<TestEndPoint>();
|
||||||
|
|
@ -45,6 +53,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.True(manager.TryGetConnection(connectionId, out var connectionContext));
|
Assert.True(manager.TryGetConnection(connectionId, out var connectionContext));
|
||||||
Assert.Equal(connectionId, connectionContext.ConnectionId);
|
Assert.Equal(connectionId, connectionContext.ConnectionId);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.All)]
|
[InlineData(TransportType.All)]
|
||||||
|
|
@ -52,8 +61,10 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(TransportType.LongPolling | TransportType.WebSockets)]
|
[InlineData(TransportType.LongPolling | TransportType.WebSockets)]
|
||||||
public async Task NegotiateReturnsAvailableTransports(TransportType transports)
|
public async Task NegotiateReturnsAvailableTransports(TransportType transports)
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
|
|
@ -74,6 +85,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(transports, availableTransports);
|
Assert.Equal(transports, availableTransports);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.WebSockets)]
|
[InlineData(TransportType.WebSockets)]
|
||||||
|
|
@ -81,8 +93,10 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(TransportType.LongPolling)]
|
[InlineData(TransportType.LongPolling)]
|
||||||
public async Task EndpointsThatAcceptConnectionId404WhenUnknownConnectionIdProvided(TransportType transportType)
|
public async Task EndpointsThatAcceptConnectionId404WhenUnknownConnectionIdProvided(TransportType transportType)
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
using (var strm = new MemoryStream())
|
using (var strm = new MemoryStream())
|
||||||
{
|
{
|
||||||
|
|
@ -111,12 +125,15 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal("No Connection with that ID", Encoding.UTF8.GetString(strm.ToArray()));
|
Assert.Equal("No Connection with that ID", Encoding.UTF8.GetString(strm.ToArray()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task EndpointsThatAcceptConnectionId404WhenUnknownConnectionIdProvidedForPost()
|
public async Task EndpointsThatAcceptConnectionId404WhenUnknownConnectionIdProvidedForPost()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
using (var strm = new MemoryStream())
|
using (var strm = new MemoryStream())
|
||||||
{
|
{
|
||||||
|
|
@ -143,12 +160,15 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal("No Connection with that ID", Encoding.UTF8.GetString(strm.ToArray()));
|
Assert.Equal("No Connection with that ID", Encoding.UTF8.GetString(strm.ToArray()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task PostNotAllowedForWebSocketConnections()
|
public async Task PostNotAllowedForWebSocketConnections()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
connection.Metadata[ConnectionMetadataNames.Transport] = TransportType.WebSockets;
|
connection.Metadata[ConnectionMetadataNames.Transport] = TransportType.WebSockets;
|
||||||
|
|
||||||
|
|
@ -177,14 +197,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal("POST requests are not allowed for WebSocket connections.", Encoding.UTF8.GetString(strm.ToArray()));
|
Assert.Equal("POST requests are not allowed for WebSocket connections.", Encoding.UTF8.GetString(strm.ToArray()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.ServerSentEvents)]
|
[InlineData(TransportType.ServerSentEvents)]
|
||||||
[InlineData(TransportType.LongPolling)]
|
[InlineData(TransportType.LongPolling)]
|
||||||
public async Task EndpointsThatRequireConnectionId400WhenNoConnectionIdProvided(TransportType transportType)
|
public async Task EndpointsThatRequireConnectionId400WhenNoConnectionIdProvided(TransportType transportType)
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
using (var strm = new MemoryStream())
|
using (var strm = new MemoryStream())
|
||||||
{
|
{
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
|
|
@ -208,12 +231,15 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal("Connection ID required", Encoding.UTF8.GetString(strm.ToArray()));
|
Assert.Equal("Connection ID required", Encoding.UTF8.GetString(strm.ToArray()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task EndpointsThatRequireConnectionId400WhenNoConnectionIdProvidedForPost()
|
public async Task EndpointsThatRequireConnectionId400WhenNoConnectionIdProvidedForPost()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
using (var strm = new MemoryStream())
|
using (var strm = new MemoryStream())
|
||||||
{
|
{
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
|
|
@ -234,6 +260,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal("Connection ID required", Encoding.UTF8.GetString(strm.ToArray()));
|
Assert.Equal("Connection ID required", Encoding.UTF8.GetString(strm.ToArray()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.LongPolling, 204)]
|
[InlineData(TransportType.LongPolling, 204)]
|
||||||
|
|
@ -241,7 +268,10 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(TransportType.ServerSentEvents, 404)]
|
[InlineData(TransportType.ServerSentEvents, 404)]
|
||||||
public async Task EndPointThatOnlySupportsLongPollingRejectsOtherTransports(TransportType transportType, int status)
|
public async Task EndPointThatOnlySupportsLongPollingRejectsOtherTransports(TransportType transportType, int status)
|
||||||
{
|
{
|
||||||
await CheckTransportSupported(TransportType.LongPolling, transportType, status);
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
await CheckTransportSupported(TransportType.LongPolling, transportType, status, loggerFactory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
|
|
@ -250,7 +280,10 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(TransportType.LongPolling, 404)]
|
[InlineData(TransportType.LongPolling, 404)]
|
||||||
public async Task EndPointThatOnlySupportsSSERejectsOtherTransports(TransportType transportType, int status)
|
public async Task EndPointThatOnlySupportsSSERejectsOtherTransports(TransportType transportType, int status)
|
||||||
{
|
{
|
||||||
await CheckTransportSupported(TransportType.ServerSentEvents, transportType, status);
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
await CheckTransportSupported(TransportType.ServerSentEvents, transportType, status, loggerFactory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
|
|
@ -259,23 +292,31 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(TransportType.LongPolling, 404)]
|
[InlineData(TransportType.LongPolling, 404)]
|
||||||
public async Task EndPointThatOnlySupportsWebSockesRejectsOtherTransports(TransportType transportType, int status)
|
public async Task EndPointThatOnlySupportsWebSockesRejectsOtherTransports(TransportType transportType, int status)
|
||||||
{
|
{
|
||||||
await CheckTransportSupported(TransportType.WebSockets, transportType, status);
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
await CheckTransportSupported(TransportType.WebSockets, transportType, status, loggerFactory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.LongPolling, 404)]
|
[InlineData(TransportType.LongPolling, 404)]
|
||||||
public async Task EndPointThatOnlySupportsWebSocketsAndSSERejectsLongPolling(TransportType transportType, int status)
|
public async Task EndPointThatOnlySupportsWebSocketsAndSSERejectsLongPolling(TransportType transportType, int status)
|
||||||
{
|
{
|
||||||
await CheckTransportSupported(TransportType.WebSockets | TransportType.ServerSentEvents, transportType, status);
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
await CheckTransportSupported(TransportType.WebSockets | TransportType.ServerSentEvents, transportType, status, loggerFactory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CompletedEndPointEndsConnection()
|
public async Task CompletedEndPointEndsConnection()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
SetTransport(context, TransportType.ServerSentEvents);
|
SetTransport(context, TransportType.ServerSentEvents);
|
||||||
|
|
@ -292,14 +333,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
||||||
Assert.False(exists);
|
Assert.False(exists);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task SynchronusExceptionEndsConnection()
|
public async Task SynchronusExceptionEndsConnection()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
SetTransport(context, TransportType.ServerSentEvents);
|
SetTransport(context, TransportType.ServerSentEvents);
|
||||||
|
|
||||||
|
|
@ -315,14 +359,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
||||||
Assert.False(exists);
|
Assert.False(exists);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CompletedEndPointEndsLongPollingConnection()
|
public async Task CompletedEndPointEndsLongPollingConnection()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
|
|
||||||
|
|
@ -338,14 +385,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
||||||
Assert.False(exists);
|
Assert.False(exists);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task LongPollingTimeoutSets200StatusCode()
|
public async Task LongPollingTimeoutSets200StatusCode()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
|
|
||||||
|
|
@ -360,14 +410,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task WebSocketTransportTimesOutWhenCloseFrameNotReceived()
|
public async Task WebSocketTransportTimesOutWhenCloseFrameNotReceived()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Trace))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
SetTransport(context, TransportType.WebSockets);
|
SetTransport(context, TransportType.WebSockets);
|
||||||
|
|
@ -384,16 +437,19 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
await task.OrTimeout();
|
await task.OrTimeout();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.WebSockets)]
|
[InlineData(TransportType.WebSockets)]
|
||||||
[InlineData(TransportType.ServerSentEvents)]
|
[InlineData(TransportType.ServerSentEvents)]
|
||||||
public async Task RequestToActiveConnectionId409ForStreamingTransports(TransportType transportType)
|
public async Task RequestToActiveConnectionId409ForStreamingTransports(TransportType transportType)
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context1 = MakeRequest("/foo", connection);
|
var context1 = MakeRequest("/foo", connection);
|
||||||
var context2 = MakeRequest("/foo", connection);
|
var context2 = MakeRequest("/foo", connection);
|
||||||
|
|
@ -425,14 +481,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
await request1.OrTimeout();
|
await request1.OrTimeout();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task RequestToActiveConnectionIdKillsPreviousConnectionLongPolling()
|
public async Task RequestToActiveConnectionIdKillsPreviousConnectionLongPolling()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context1 = MakeRequest("/foo", connection);
|
var context1 = MakeRequest("/foo", connection);
|
||||||
var context2 = MakeRequest("/foo", connection);
|
var context2 = MakeRequest("/foo", connection);
|
||||||
|
|
@ -457,17 +516,20 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
await request2;
|
await request2;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.ServerSentEvents)]
|
[InlineData(TransportType.ServerSentEvents)]
|
||||||
[InlineData(TransportType.LongPolling)]
|
[InlineData(TransportType.LongPolling)]
|
||||||
public async Task RequestToDisposedConnectionIdReturns404(TransportType transportType)
|
public async Task RequestToDisposedConnectionIdReturns404(TransportType transportType)
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
connection.Status = DefaultConnectionContext.ConnectionStatus.Disposed;
|
connection.Status = DefaultConnectionContext.ConnectionStatus.Disposed;
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
SetTransport(context, transportType);
|
SetTransport(context, transportType);
|
||||||
|
|
@ -483,14 +545,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(StatusCodes.Status404NotFound, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status404NotFound, context.Response.StatusCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task ConnectionStateSetToInactiveAfterPoll()
|
public async Task ConnectionStateSetToInactiveAfterPoll()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
|
|
||||||
|
|
@ -514,14 +579,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task BlockingConnectionWorksWithStreamingConnections()
|
public async Task BlockingConnectionWorksWithStreamingConnections()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
SetTransport(context, TransportType.ServerSentEvents);
|
SetTransport(context, TransportType.ServerSentEvents);
|
||||||
|
|
@ -545,14 +613,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
||||||
Assert.False(exists);
|
Assert.False(exists);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task BlockingConnectionWorksWithLongPollingConnection()
|
public async Task BlockingConnectionWorksWithLongPollingConnection()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
|
|
||||||
|
|
@ -575,14 +646,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
bool exists = manager.TryGetConnection(connection.ConnectionId, out _);
|
||||||
Assert.False(exists);
|
Assert.False(exists);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task AttemptingToPollWhileAlreadyPollingReplacesTheCurrentPoll()
|
public async Task AttemptingToPollWhileAlreadyPollingReplacesTheCurrentPoll()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
services.AddEndPoint<TestEndPoint>();
|
services.AddEndPoint<TestEndPoint>();
|
||||||
|
|
@ -610,6 +684,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal(StatusCodes.Status200OK, context2.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status200OK, context2.Response.StatusCode);
|
||||||
Assert.Equal("Hello, World", GetContentAsString(context2.Response.Body));
|
Assert.Equal("Hello, World", GetContentAsString(context2.Response.Body));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(TransportType.LongPolling, TransferMode.Binary | TransferMode.Text)]
|
[InlineData(TransportType.LongPolling, TransferMode.Binary | TransferMode.Text)]
|
||||||
|
|
@ -617,10 +692,12 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(TransportType.WebSockets, TransferMode.Binary | TransferMode.Text)]
|
[InlineData(TransportType.WebSockets, TransferMode.Binary | TransferMode.Text)]
|
||||||
public async Task TransportCapabilitiesSet(TransportType transportType, TransferMode expectedTransportCapabilities)
|
public async Task TransportCapabilitiesSet(TransportType transportType, TransferMode expectedTransportCapabilities)
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
SetTransport(context, transportType);
|
SetTransport(context, transportType);
|
||||||
|
|
@ -637,13 +714,16 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(expectedTransportCapabilities, connection.TransportCapabilities);
|
Assert.Equal(expectedTransportCapabilities, connection.TransportCapabilities);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task UnauthorizedConnectionFailsToStartEndPoint()
|
public async Task UnauthorizedConnectionFailsToStartEndPoint()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
@ -679,13 +759,16 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(StatusCodes.Status401Unauthorized, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status401Unauthorized, context.Response.StatusCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task AuthenticatedUserWithoutPermissionCausesForbidden()
|
public async Task AuthenticatedUserWithoutPermissionCausesForbidden()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
@ -723,13 +806,16 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(StatusCodes.Status403Forbidden, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status403Forbidden, context.Response.StatusCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task AuthorizedConnectionCanConnectToEndPoint()
|
public async Task AuthorizedConnectionCanConnectToEndPoint()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
|
|
@ -776,13 +862,16 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
||||||
Assert.Equal("Hello, World", GetContentAsString(context.Response.Body));
|
Assert.Equal("Hello, World", GetContentAsString(context.Response.Body));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task AllPoliciesRequiredForAuthorizedEndPoint()
|
public async Task AllPoliciesRequiredForAuthorizedEndPoint()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
|
|
@ -854,13 +943,16 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
||||||
Assert.Equal("Hello, World", GetContentAsString(context.Response.Body));
|
Assert.Equal("Hello, World", GetContentAsString(context.Response.Body));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task AuthorizedConnectionWithAcceptedSchemesCanConnectToEndPoint()
|
public async Task AuthorizedConnectionWithAcceptedSchemesCanConnectToEndPoint()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
context.Features.Set<IHttpResponseFeature>(new ResponseFeature());
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
|
|
@ -908,13 +1000,16 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
|
||||||
Assert.Equal("Hello, World", GetContentAsString(context.Response.Body));
|
Assert.Equal("Hello, World", GetContentAsString(context.Response.Body));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task AuthorizedConnectionWithRejectedSchemesFailsToConnectToEndPoint()
|
public async Task AuthorizedConnectionWithRejectedSchemesFailsToConnectToEndPoint()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
services.AddOptions();
|
services.AddOptions();
|
||||||
|
|
@ -958,14 +1053,17 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
|
|
||||||
Assert.Equal(StatusCodes.Status401Unauthorized, context.Response.StatusCode);
|
Assert.Equal(StatusCodes.Status401Unauthorized, context.Response.StatusCode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task SetsInherentKeepAliveFeatureOnFirstLongPollingRequest()
|
public async Task SetsInherentKeepAliveFeatureOnFirstLongPollingRequest()
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
|
{
|
||||||
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
|
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
|
|
||||||
var context = MakeRequest("/foo", connection);
|
var context = MakeRequest("/foo", connection);
|
||||||
|
|
||||||
|
|
@ -984,6 +1082,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
Assert.NotNull(connection.Features.Get<IConnectionInherentKeepAliveFeature>());
|
Assert.NotNull(connection.Features.Get<IConnectionInherentKeepAliveFeature>());
|
||||||
Assert.Equal(options.LongPolling.PollTimeout, connection.Features.Get<IConnectionInherentKeepAliveFeature>().KeepAliveInterval);
|
Assert.Equal(options.LongPolling.PollTimeout, connection.Features.Get<IConnectionInherentKeepAliveFeature>().KeepAliveInterval);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class RejectHandler : TestAuthenticationHandler
|
private class RejectHandler : TestAuthenticationHandler
|
||||||
{
|
{
|
||||||
|
|
@ -1029,11 +1128,11 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task CheckTransportSupported(TransportType supportedTransports, TransportType transportType, int status)
|
private static async Task CheckTransportSupported(TransportType supportedTransports, TransportType transportType, int status, ILoggerFactory loggerFactory)
|
||||||
{
|
{
|
||||||
var manager = CreateConnectionManager();
|
var manager = CreateConnectionManager(loggerFactory);
|
||||||
var connection = manager.CreateConnection();
|
var connection = manager.CreateConnection();
|
||||||
var dispatcher = new HttpConnectionDispatcher(manager, new LoggerFactory());
|
var dispatcher = new HttpConnectionDispatcher(manager, loggerFactory);
|
||||||
using (var strm = new MemoryStream())
|
using (var strm = new MemoryStream())
|
||||||
{
|
{
|
||||||
var context = new DefaultHttpContext();
|
var context = new DefaultHttpContext();
|
||||||
|
|
@ -1101,9 +1200,9 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ConnectionManager CreateConnectionManager()
|
private static ConnectionManager CreateConnectionManager(ILoggerFactory loggerFactory)
|
||||||
{
|
{
|
||||||
return new ConnectionManager(new Logger<ConnectionManager>(new LoggerFactory()), new EmptyApplicationLifetime());
|
return new ConnectionManager(new Logger<ConnectionManager>(loggerFactory ?? new LoggerFactory()), new EmptyApplicationLifetime());
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetContentAsString(Stream body)
|
private string GetContentAsString(Stream body)
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@ using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Channels;
|
using System.Threading.Channels;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.SignalR.Internal;
|
|
||||||
using Microsoft.AspNetCore.Sockets.Internal;
|
using Microsoft.AspNetCore.Sockets.Internal;
|
||||||
using Microsoft.AspNetCore.Sockets.Internal.Transports;
|
using Microsoft.AspNetCore.Sockets.Internal.Transports;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Logging.Testing;
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Xunit.Abstractions;
|
using Xunit.Abstractions;
|
||||||
|
|
@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(WebSocketMessageType.Binary)]
|
[InlineData(WebSocketMessageType.Binary)]
|
||||||
public async Task ReceivedFramesAreWrittenToChannel(WebSocketMessageType webSocketMessageType)
|
public async Task ReceivedFramesAreWrittenToChannel(WebSocketMessageType webSocketMessageType)
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[InlineData(TransferMode.Binary, WebSocketMessageType.Binary)]
|
[InlineData(TransferMode.Binary, WebSocketMessageType.Binary)]
|
||||||
public async Task WebSocketTransportSetsMessageTypeBasedOnTransferModeFeature(TransferMode transferMode, WebSocketMessageType expectedMessageType)
|
public async Task WebSocketTransportSetsMessageTypeBasedOnTransferModeFeature(TransferMode transferMode, WebSocketMessageType expectedMessageType)
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
@ -113,7 +113,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task TransportFailsWhenClientDisconnectsAbnormally()
|
public async Task TransportFailsWhenClientDisconnectsAbnormally()
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
@ -159,7 +159,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task ClientReceivesInternalServerErrorWhenTheApplicationFails()
|
public async Task ClientReceivesInternalServerErrorWhenTheApplicationFails()
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
@ -194,7 +194,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task TransportClosesOnCloseTimeoutIfClientDoesNotSendCloseFrame()
|
public async Task TransportClosesOnCloseTimeoutIfClientDoesNotSendCloseFrame()
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
@ -231,7 +231,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task TransportFailsOnTimeoutWithErrorWhenApplicationFailsAndClientDoesNotSendCloseFrame()
|
public async Task TransportFailsOnTimeoutWithErrorWhenApplicationFailsAndClientDoesNotSendCloseFrame()
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
@ -268,7 +268,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task ServerGracefullyClosesWhenApplicationEndsThenClientSendsCloseFrame()
|
public async Task ServerGracefullyClosesWhenApplicationEndsThenClientSendsCloseFrame()
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
@ -310,7 +310,7 @@ namespace Microsoft.AspNetCore.Sockets.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task ServerGracefullyClosesWhenClientSendsCloseFrameThenApplicationEnds()
|
public async Task ServerGracefullyClosesWhenClientSendsCloseFrameThenApplicationEnds()
|
||||||
{
|
{
|
||||||
using (StartLog(out var loggerFactory))
|
using (StartLog(out var loggerFactory, LogLevel.Debug))
|
||||||
{
|
{
|
||||||
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
var transportToApplication = Channel.CreateUnbounded<byte[]>();
|
||||||
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
var applicationToTransport = Channel.CreateUnbounded<byte[]>();
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
"longRunningTestSeconds": 30,
|
"longRunningTestSeconds": 30,
|
||||||
"diagnosticMessages": true
|
"diagnosticMessages": true,
|
||||||
|
"maxParallelThreads": 16
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue