Exemplo n.º 1
0
        public void OnAuthorizationThrowsIfFilterContextIsNull() {
            // Arrange
            RequireSslAttribute attr = new RequireSslAttribute();

            // Act & assert
            ExceptionHelper.ExpectArgumentNullException(
                delegate {
                    attr.OnAuthorization(null);
                }, "filterContext");
        }
Exemplo n.º 2
0
        public void OnAuthorizationDoesNothingIfRequestIsSecure() {
            // Arrange
            Mock<AuthorizationContext> mockAuthContext = new Mock<AuthorizationContext>();
            mockAuthContext.Expect(c => c.HttpContext.Request.IsSecureConnection).Returns(true);
            AuthorizationContext authContext = mockAuthContext.Object;

            RequireSslAttribute attr = new RequireSslAttribute();

            // Act
            attr.OnAuthorization(authContext);

            // Assert
            Assert.IsNull(authContext.Result, "Result should not have been set.");
        }
Exemplo n.º 3
0
        public void OnAuthorizationThrowsIfRequestIsNotSecureAndRedirectPropertyIsNotSet() {
            // Arrange
            Mock<AuthorizationContext> mockAuthContext = new Mock<AuthorizationContext>();
            mockAuthContext.Expect(c => c.HttpContext.Request.IsSecureConnection).Returns(false);
            AuthorizationContext authContext = mockAuthContext.Object;

            RequireSslAttribute attr = new RequireSslAttribute();

            // Act & assert
            ExceptionHelper.ExpectHttpException(
                delegate {
                    attr.OnAuthorization(authContext);
                },
                @"Access forbidden. The requested resource requires an SSL connection.",
                (int)HttpStatusCode.Forbidden);
        }
Exemplo n.º 4
0
        public void OnAuthorizationRedirectsIfRequestIsNotSecureAndRedirectPropertyIsSet() {
            // Arrange
            Mock<AuthorizationContext> mockAuthContext = new Mock<AuthorizationContext>();
            mockAuthContext.Expect(c => c.HttpContext.Request.IsSecureConnection).Returns(false);
            mockAuthContext.Expect(c => c.HttpContext.Request.RawUrl).Returns("/alpha/bravo/charlie");
            mockAuthContext.Expect(c => c.HttpContext.Request.Url).Returns(new Uri("http://www.example.com/foo/bar/baz"));
            AuthorizationContext authContext = mockAuthContext.Object;

            RequireSslAttribute attr = new RequireSslAttribute() { Redirect = true };

            // Act
            attr.OnAuthorization(authContext);
            RedirectResult result = authContext.Result as RedirectResult;

            // Assert
            Assert.IsNotNull(result, "Result should have been a RedirectResult.");
            Assert.AreEqual("https://www.example.com/alpha/bravo/charlie", result.Url);
        }