Example #1
0
        public void SuppressFormsAuthenticationRedirect_RequireSuppressRedirect()
        {
            // Arrange
            Mock <HttpContextBase> contextMock = new Mock <HttpContextBase>()
            {
                DefaultValue = DefaultValue.Mock
            };
            IDictionary contextItems = new Hashtable();

            contextMock.SetupGet(hcb => hcb.Response.StatusCode).Returns(401);
            contextMock.SetupGet(hcb => hcb.Items).Returns(contextItems);

            PropertyInfo suppressRedirect = typeof(HttpResponseBase).GetProperty(SuppressFormsAuthRedirectModule.SuppressFormsAuthenticationRedirectPropertyName, BindingFlags.Instance | BindingFlags.Public);

            // Act
            HttpControllerHandler.EnsureSuppressFormsAuthenticationRedirect(contextMock.Object);

            // Assert
            if (suppressRedirect == null)
            {
                // .NET 4.0
                Assert.True(contextItems.Contains(SuppressFormsAuthRedirectModule.DisableAuthenticationRedirectKey));
                Assert.True((bool)contextItems[SuppressFormsAuthRedirectModule.DisableAuthenticationRedirectKey]);
            }
            else
            {
                // .NET 4.5
                Assert.True((bool)suppressRedirect.GetValue(contextMock.Object, null));
            }
        }
        public void SuppressFormsAuthenticationRedirect_RequireSuppressRedirect()
        {
            // Arrange
            Mock <HttpContextBase> contextMock = new Mock <HttpContextBase>()
            {
                DefaultValue = DefaultValue.Mock
            };
            IDictionary contextItems = new Hashtable();

            contextMock.SetupGet(hcb => hcb.Response.StatusCode).Returns(401);
            contextMock.SetupGet(hcb => hcb.Items).Returns(contextItems);

            // Act
            HttpControllerHandler.EnsureSuppressFormsAuthenticationRedirect(contextMock.Object);

            // Assert
            Assert.True(contextMock.Object.Response.SuppressFormsAuthenticationRedirect);
        }
        public void OnEndRequest_IfWebApiControllerReturnsARedirect_DoNothing()
        {
            // Arrange
            HttpResponse           response     = new HttpResponse(null);
            IDictionary            contextItems = new Hashtable();
            Mock <HttpContextBase> contextMock  = new Mock <HttpContextBase>()
            {
                DefaultValue = DefaultValue.Mock
            };
            DisableRedirectStub disableRedirectStub = new DisableRedirectStub(contextItems, response);

            contextMock.SetupGet(hcb => hcb.Items).Returns(contextItems);
            response.StatusCode = 302;

            // Act
            HttpControllerHandler.EnsureSuppressFormsAuthenticationRedirect(contextMock.Object);

            SuppressFormsAuthRedirectModule.AllowAuthenticationRedirect(contextMock.Object);
            SuppressFormsAuthRedirectModule.EnsureRestoreUnauthorized(disableRedirectStub);

            // Assert
            Assert.Equal(302, response.StatusCode);
        }