예제 #1
0
        public void CanonicaliseUrl_ShouldChangeProtocolToMatchExpected(string inputUrl, bool enableHttps, string expectedResult)
        {
            var service = new CanonicalService
            {
                HostName    = "example.com",
                EnableHttps = enableHttps
            };

            var result = service.CanonicaliseUrl(inputUrl);

            result.Should().Be(expectedResult);
        }
예제 #2
0
        public void CanonicaliseUrl_ShouldLowercaseQueryKey_ButNotQueryValue(string inputUrl, string expectedResult)
        {
            var parsedHost = new Uri(inputUrl).Host;
            var service    = new CanonicalService
            {
                HostName            = parsedHost,
                EnableTrailingSlash = false,
                EnableLowerCase     = true,
            };

            var result = service.CanonicaliseUrl(inputUrl);

            result.Should().Be(expectedResult);
        }
예제 #3
0
        public void CanonicaliseUrl_ShouldReturnSameResult_WhenCanonical(
            string hostName, bool enableTrailingSlash, bool enableLowerCase, string inputUrl)
        {
            var service = new CanonicalService
            {
                HostName            = hostName,
                EnableTrailingSlash = enableTrailingSlash,
                EnableLowerCase     = enableLowerCase,
            };

            var result = service.CanonicaliseUrl(inputUrl);

            result.Should().Be(expected: inputUrl);
        }
예제 #4
0
        public void CanonicaliseUrl_ShouldTrimTrailingSlashes_WhenEnabled(string inputUrl, string expectedResult)
        {
            var parsedHost = new Uri(inputUrl).Host;
            var service    = new CanonicalService
            {
                HostName            = parsedHost,
                EnableTrailingSlash = false,
                EnableLowerCase     = true,
            };

            var result = service.CanonicaliseUrl(inputUrl);

            result.Should().Be(expectedResult);
        }
예제 #5
0
        public void CanonicaliseUrl_ShouldProduceResult_WhenCallingOverrides()
        {
            var inputUrl       = new Uri("https://example.com/Ok/Hi/");
            var expectedResult = "https://example.com/ok/hi";

            var service = new CanonicalService
            {
                HostName            = "example.com",
                EnableTrailingSlash = false,
                EnableLowerCase     = true,
            };

            var result = service.CanonicaliseUrl(inputUrl);

            result.Should().Be(expectedResult);
        }
예제 #6
0
        public void CanonicaliseUrl_ShouldRemovePort_WhenDefault(string inputUrl, bool expectedPortRemoved)
        {
            var service = new CanonicalService
            {
                HostName            = "example.com",
                EnableTrailingSlash = true,
                EnableLowerCase     = true,
            };

            var result = service.CanonicaliseUrl(inputUrl);

            if (expectedPortRemoved)
            {
                result.Should().NotMatchRegex(@":\d+");
            }
            else
            {
                result.Should().MatchRegex(@":\d+");
            }
        }