コード例 #1
0
        public void Constructor_WithParameterUrlAndPermanent_SetsResultUrlAndPermanent()
        {
            // Arrange
            var url = "/test/url";

            // Act
            var result = new LocalRedirectResult(url, permanent: true);

            // Assert
            Assert.True(result.Permanent);
            Assert.Same(url, result.Url);
        }
コード例 #2
0
        public void Constructor_WithParameterUrlAndPermanent_SetsResultUrlAndPermanent()
        {
            // Arrange
            var url = "/test/url";

            // Act
            var result = new LocalRedirectResult(url, permanent: true);

            // Assert
            Assert.True(result.Permanent);
            Assert.Same(url, result.Url);
        }
コード例 #3
0
        public void Execute_ReturnsExpectedValues()
        {
            // Arrange
            var appRoot = "/";
            var contentPath = "~/Home/About";
            var expectedPath = "/Home/About";
            var httpResponse = new Mock<HttpResponse>();
            httpResponse.Setup(o => o.Redirect(expectedPath, false))
                        .Verifiable();

            var httpContext = GetHttpContext(appRoot, contentPath, expectedPath, httpResponse.Object);
            var actionContext = GetActionContext(httpContext);
            var result = new LocalRedirectResult(contentPath);

            // Act
            result.ExecuteResult(actionContext);

            // Assert
            httpResponse.Verify();
        }
コード例 #4
0
        public void Execute_ReturnsExpectedValues()
        {
            // Arrange
            var appRoot      = "/";
            var contentPath  = "~/Home/About";
            var expectedPath = "/Home/About";
            var httpResponse = new Mock <HttpResponse>();

            httpResponse.Setup(o => o.Redirect(expectedPath, false))
            .Verifiable();

            var httpContext   = GetHttpContext(appRoot, contentPath, expectedPath, httpResponse.Object);
            var actionContext = GetActionContext(httpContext);
            var result        = new LocalRedirectResult(contentPath);

            // Act
            result.ExecuteResult(actionContext);

            // Assert
            httpResponse.Verify();
        }
コード例 #5
0
        public void Execute_Throws_ForNonLocalUrl(
            string appRoot,
            string contentPath,
            string expectedPath)
        {
            // Arrange
            var httpResponse = new Mock<HttpResponse>();
            httpResponse.Setup(o => o.Redirect(expectedPath, false))
                        .Verifiable();

            var httpContext = GetHttpContext(appRoot, contentPath, expectedPath, httpResponse.Object);
            var actionContext = GetActionContext(httpContext);
            var result = new LocalRedirectResult(contentPath);

            // Act & Assert
            var exception = Assert.Throws<InvalidOperationException>(() => result.ExecuteResult(actionContext));
            Assert.Equal(
                "The supplied URL is not local. A URL with an absolute path is considered local if it does not " +
                "have a host/authority part. URLs using virtual paths ('~/') are also local.",
                exception.Message);
        }
コード例 #6
0
        public void Execute_Throws_ForNonLocalUrl(
            string appRoot,
            string contentPath,
            string expectedPath)
        {
            // Arrange
            var httpResponse = new Mock <HttpResponse>();

            httpResponse.Setup(o => o.Redirect(expectedPath, false))
            .Verifiable();

            var httpContext   = GetHttpContext(appRoot, contentPath, expectedPath, httpResponse.Object);
            var actionContext = GetActionContext(httpContext);
            var result        = new LocalRedirectResult(contentPath);

            // Act & Assert
            var exception = Assert.Throws <InvalidOperationException>(() => result.ExecuteResult(actionContext));

            Assert.Equal(
                "The supplied URL is not local. A URL with an absolute path is considered local if it does not " +
                "have a host/authority part. URLs using virtual paths ('~/') are also local.",
                exception.Message);
        }