Adds .Value to logger calls to avoid calling .ToUriComponents on a bad header. (#1169)
* Add .Value to request properties in HostingRequestStartLog
This commit is contained in:
parent
456957bf57
commit
c74d0e7458
|
|
@ -64,10 +64,10 @@ namespace Microsoft.AspNetCore.Hosting.Internal
|
||||||
_request.Protocol,
|
_request.Protocol,
|
||||||
_request.Method,
|
_request.Method,
|
||||||
_request.Scheme,
|
_request.Scheme,
|
||||||
_request.Host,
|
_request.Host.Value,
|
||||||
_request.PathBase,
|
_request.PathBase.Value,
|
||||||
_request.Path,
|
_request.Path.Value,
|
||||||
_request.QueryString,
|
_request.QueryString.Value,
|
||||||
_request.ContentType,
|
_request.ContentType,
|
||||||
_request.ContentLength);
|
_request.ContentLength);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Hosting.Internal;
|
||||||
|
using Moq;
|
||||||
|
using Xunit;
|
||||||
|
namespace Microsoft.AspNetCore.Hosting.Tests.Internal
|
||||||
|
{
|
||||||
|
public class HostingRequestStartLogTests
|
||||||
|
{
|
||||||
|
[Theory]
|
||||||
|
[InlineData(",XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Request starting GET 1.1 http://,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//?query test 0")]
|
||||||
|
[InlineData(" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Request starting GET 1.1 http:// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//?query test 0")]
|
||||||
|
public void InvalidHttpContext_DoesNotThrowOnAccessingProperties(string input, string expected)
|
||||||
|
{
|
||||||
|
var mockRequest = new Mock<HttpRequest>();
|
||||||
|
mockRequest.Setup(request => request.Protocol).Returns("GET");
|
||||||
|
mockRequest.Setup(request => request.Method).Returns("1.1");
|
||||||
|
mockRequest.Setup(request => request.Scheme).Returns("http");
|
||||||
|
mockRequest.Setup(request => request.Host).Returns(new HostString(input));
|
||||||
|
mockRequest.Setup(request => request.PathBase).Returns(new PathString("/"));
|
||||||
|
mockRequest.Setup(request => request.Path).Returns(new PathString("/"));
|
||||||
|
mockRequest.Setup(request => request.QueryString).Returns(new QueryString("?query"));
|
||||||
|
mockRequest.Setup(request => request.ContentType).Returns("test");
|
||||||
|
mockRequest.Setup(request => request.ContentLength).Returns(0);
|
||||||
|
|
||||||
|
var mockContext = new Mock<HttpContext>();
|
||||||
|
mockContext.Setup(context => context.Request).Returns(mockRequest.Object);
|
||||||
|
|
||||||
|
var logger = new HostingRequestStartingLog(mockContext.Object);
|
||||||
|
Assert.Equal(expected, logger.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue