Exemplo n.º 1
0
        public void ApplyRule_WithoutCanonicalUrl_301PermanentRedirectToCanonicalUrl(
            bool appendTrailingSlash,
            bool lowercaseUrls,
            string url,
            string canonicalUrl)
        {
            var rule    = new RedirectToCanonicalUrlRule(appendTrailingSlash, lowercaseUrls);
            var context = new RewriteContext()
            {
                HttpContext = new DefaultHttpContext()
            };

            context.HttpContext.SetEndpoint(new Endpoint(x => Task.CompletedTask, new EndpointMetadataCollection(), "Name"));
            var request  = context.HttpContext.Request;
            var response = context.HttpContext.Response;

            request.Method = HttpMethods.Get;
            SetUrl(url, request);

            rule.ApplyRule(context);

            Assert.Equal(RuleResult.EndResponse, context.Result);
            Assert.Equal(StatusCodes.Status301MovedPermanently, response.StatusCode);
            Assert.Equal(canonicalUrl, response.Headers[HeaderNames.Location].ToString());
        }
Exemplo n.º 2
0
        public void ApplyRule_HttpMethodNotGet_DoNothing(string httpMethod)
        {
            var rule    = new RedirectToCanonicalUrlRule(true, true);
            var context = new RewriteContext()
            {
                HttpContext = new DefaultHttpContext()
            };

            context.HttpContext.Request.Method = httpMethod;

            rule.ApplyRule(context);

            Assert.Equal(RuleResult.ContinueRules, context.Result);
            Assert.Equal(StatusCodes.Status200OK, context.HttpContext.Response.StatusCode);
        }
Exemplo n.º 3
0
        public void ApplyRule_WithCanonicalUrl_DoNothing(
            bool appendTrailingSlash,
            bool lowercaseUrls,
            string url)
        {
            var rule    = new RedirectToCanonicalUrlRule(appendTrailingSlash, lowercaseUrls);
            var context = new RewriteContext()
            {
                HttpContext = new DefaultHttpContext()
            };

            context.HttpContext.SetEndpoint(new Endpoint(x => Task.CompletedTask, new EndpointMetadataCollection(), "Name"));
            var request = context.HttpContext.Request;

            request.Method = HttpMethods.Get;
            SetUrl(url, request);

            rule.ApplyRule(context);

            Assert.Equal(RuleResult.ContinueRules, context.Result);
            Assert.Equal(StatusCodes.Status200OK, context.HttpContext.Response.StatusCode);
        }