|
12 | 12 | using System.Web; |
13 | 13 | using AutoFixture; |
14 | 14 | using Microsoft.AspNetCore.Http; |
| 15 | +using Microsoft.AspNetCore.Http.Extensions; |
15 | 16 | using Microsoft.AspNetCore.Http.Features; |
16 | 17 | using Microsoft.AspNetCore.SystemWebAdapters.Features; |
17 | 18 | using Microsoft.AspNetCore.SystemWebAdapters.Internal; |
@@ -535,10 +536,52 @@ public void UrlReferrer() |
535 | 536 | // Act |
536 | 537 | var result = request.UrlReferrer; |
537 | 538 |
|
538 | | - // AssertexpectedResult |
| 539 | + // Assert |
539 | 540 | Assert.Equal(new Uri(referrer), result); |
540 | 541 | } |
541 | 542 |
|
| 543 | + [Fact] |
| 544 | + public void UrlRelativeReferrer() |
| 545 | + { |
| 546 | + // Arrange |
| 547 | + var referrer = "/some-relative-url"; |
| 548 | + var headers = new HeaderDictionary |
| 549 | + { |
| 550 | + { HeaderNames.Referer, referrer }, |
| 551 | + }; |
| 552 | + |
| 553 | + var coreRequest = new Mock<HttpRequestCore>(); |
| 554 | + coreRequest.Setup(c => c.Scheme).Returns("https"); |
| 555 | + coreRequest.Setup(c => c.Host).Returns(new HostString("microsoft.com")); |
| 556 | + coreRequest.Setup(c => c.Headers).Returns(headers); |
| 557 | + |
| 558 | + var request = new HttpRequest(coreRequest.Object); |
| 559 | + |
| 560 | + // Act |
| 561 | + var result = request.UrlReferrer; |
| 562 | + |
| 563 | + // Assert |
| 564 | + Assert.NotNull(result); |
| 565 | + Assert.True(result.IsAbsoluteUri); |
| 566 | + Assert.Equal(new Uri("https://microsoft.com/some-relative-url"), result); |
| 567 | + } |
| 568 | + |
| 569 | + [Fact] |
| 570 | + public void NoReferer() |
| 571 | + { |
| 572 | + // Arrange |
| 573 | + var coreRequest = new Mock<HttpRequestCore>(); |
| 574 | + coreRequest.Setup(c => c.Headers).Returns(new HeaderDictionary()); |
| 575 | + |
| 576 | + var request = new HttpRequest(coreRequest.Object); |
| 577 | + |
| 578 | + // Act |
| 579 | + var result = request.UrlReferrer; |
| 580 | + |
| 581 | + // Assert |
| 582 | + Assert.Null(result); |
| 583 | + } |
| 584 | + |
542 | 585 | [Fact] |
543 | 586 | public void TotalBytes() |
544 | 587 | { |
|
0 commit comments