public void AspxPathPassedByCustomErrors()
        {
            var requestUrl = new Uri("http://www.example.org/404page.aspx?aspxerrorpath=/broken/page.aspx");

            var resolver = new NotFoundRequestPathResolver();
            var originalUrl = resolver.NormaliseRequestedPath(requestUrl);

            Assert.AreEqual(new Uri("http://www.example.org/broken/page.aspx"), originalUrl);
        }
        public void NotFoundPageIgnoresItself()
        {
            var requestUrl = new Uri("http://www.example.org/404page.aspx?404;http://www.example.org/404page.aspx");

            var resolver = new NotFoundRequestPathResolver();
            var originalUrl = resolver.NormaliseRequestedPath(requestUrl);

            Assert.IsNull(originalUrl);
        }
        public void HomePageNotFoundByIis(string homeUrl, string expected)
        {
            var requestUrl = new Uri(homeUrl);

            var resolver = new NotFoundRequestPathResolver();
            var originalUrl = resolver.NormaliseRequestedPath(requestUrl);

            Assert.AreEqual(new Uri(expected), originalUrl);
        }
        public void TrailingSlashIsNormalised()
        {
            var requestUrl1 = new Uri("http://www.example.org/404page.aspx?404;http://www.example.org/broken");
            var requestUrl2 = new Uri("http://www.example.org/404page.aspx?404;http://www.example.org/broken/");

            var resolver = new NotFoundRequestPathResolver();
            var originalUrl1 = resolver.NormaliseRequestedPath(requestUrl1);
            var originalUrl2 = resolver.NormaliseRequestedPath(requestUrl2);

            Assert.AreEqual(originalUrl1, originalUrl2);
        }