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); }
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")); }
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); }
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"))); }