Esempio n. 1
0
        public void DecodeError_RoundTrip()
        {
            // test
            string p1, p2, p3, p4;

            ServerErrorHttpModule.DecodeError(ServerErrorHttpModule.EncodeError("1", "2", "3", "4"), out p1, out p2, out p3, out p4);

            // sense
            Assert.Equal("1", p1);
            Assert.Equal("2", p2);
            Assert.Equal("3", p3);
            Assert.Equal("4", p4);
        }
Esempio n. 2
0
        public void EncodeError_Parts()
        {
            // test
            var res = ServerErrorHttpModule.EncodeError("1", "2", "3", "4");

            // sense
            var dec = Encoding.UTF8.GetString(Convert.FromBase64String(res));

            Assert.False(string.IsNullOrEmpty(dec));
            var parts = dec.Split(ServerErrorHttpModule.ErrorSepChar);

            Assert.Equal(4, parts.Length);
            Assert.True(parts.Contains("1"));
            Assert.True(parts.Contains("2"));
            Assert.True(parts.Contains("3"));
            Assert.True(parts.Contains("4"));
        }
Esempio n. 3
0
        public void OnError_RedirectsToErrorPageNoSessionService()
        {
            // setup
            const string url  = "http://myserver.com/site/page?param=value";
            var          x    = NewHttpContext(url);
            var          guid = Guid.NewGuid();

            x.Items.Add("loggingId", guid);
            const string msg = "booboo";
            Exception    exc;

            try
            {
                throw new Exception(msg); // to get a stack trace
            }
            catch (Exception ex)
            {
                exc = ex;
            }
            x.AddError(exc);
            //_linkGenerator.Setup(l => l.GenerateServerErrorLink()).Returns("/site/errorpage");
            var module = DependencyResolver.Current.Get <MyServerErrorHttpModule>();

            // test
            module.CallOnError(x);

            // sense
            Assert.True(x.Response.IsRequestBeingRedirected);
            Assert.Equal("/site/errorpage", x.Response.RedirectLocation);
            var cookie = x.Response.Cookies[ServerErrorHttpModule.ServerErrorCookieName];

            Assert.NotNull(cookie);
            string id, uri, ms, trace;

            ServerErrorHttpModule.DecodeError(cookie.Value, out id, out uri, out ms, out trace);
            Assert.Equal(guid.ToString(), id);
            Assert.Equal(uri, url);
            Assert.Equal(msg, ms);
            Assert.Contains("OnError_RedirectsToErrorPage", trace);
        }
Esempio n. 4
0
        public void EncodeError_FromHttpContext()
        {
            // setup
            const string url  = "http://myserver.com/site/page?param=value";
            var          x    = new HttpContext(new HttpRequest("file", url, "param=value"), new HttpResponse(TextWriter.Null));
            var          guid = Guid.NewGuid();

            x.Items.Add("loggingId", guid);
            const string msg = "booboo";
            Exception    exc;

            try
            {
                throw new Exception(msg); // to get a stack trace
            }
            catch (Exception ex)
            {
                exc = ex;
            }
            x.AddError(exc);

            // test
            var res = ServerErrorHttpModule.EncodeError(x);

            // sense
            var dec = Encoding.UTF8.GetString(Convert.FromBase64String(res));

            Assert.False(string.IsNullOrEmpty(dec));
            var parts = dec.Split(ServerErrorHttpModule.ErrorSepChar);

            Assert.Equal(4, parts.Length);
            Assert.True(parts.Contains(guid.ToString()));
            Assert.True(parts.Contains(url));
            Assert.True(parts.Contains(msg));
            Assert.Equal(1, parts.Count(p => p.Contains("EncodeError_FromHttpContext")));
        }