public void GetReturnUrlThrowsIfReturnUrlIsNotAppRelative()
        {
            // Arrange
            var mockRequest = new Mock <HttpRequestBase>();
            var queryString = new NameValueCollection();

            queryString["ReturnUrl"] = "http://www.bing.com";
            mockRequest.Setup(m => m.QueryString).Returns(queryString);

            // Act & Assert
            Assert.Throws <InvalidOperationException>(() => SiteAdmin.GetReturnUrl(mockRequest.Object), "The return URL specified for request redirection is invalid.");
        }
        public void GetReturnUrlReturnsNullIfNotSet()
        {
            // Arrange
            var mockRequest = new Mock <HttpRequestBase>();

            mockRequest.Setup(m => m.QueryString).Returns(new NameValueCollection());

            // Act
            string returlUrl = SiteAdmin.GetReturnUrl(mockRequest.Object);

            // Assert
            Assert.Null(returlUrl);
        }
        public void GetReturnUrlReturnsReturlUrlQueryStringParameterIfItIsAppRelative()
        {
            // Arrange
            var mockRequest = new Mock <HttpRequestBase>();
            var queryString = new NameValueCollection();

            queryString["ReturnUrl"] = "~/_Admin/bar?foo=1";
            mockRequest.Setup(m => m.QueryString).Returns(queryString);

            // Act
            string returnUrl = SiteAdmin.GetReturnUrl(mockRequest.Object);

            // Assert
            Assert.Equal("~/_Admin/bar?foo=1", returnUrl);
        }