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