private static ControllerContext CreateControllerContext(HttpRequest httpRequest, HttpResponse httpResponse, CrowbarViewContext crowbarViewContext)
{
// There are still dependencies on HttpContext.Currrent in the ASP.NET (MVC) framework, eg., AntiForgeryRequestToken (as of ASP.NET MVC 4).
var httpContext = new HttpContext(httpRequest, httpResponse) { User = crowbarViewContext.User };
System.Web.HttpContext.Current = httpContext;
var requestContext = new RequestContext(new HttpContextWrapper(httpContext), crowbarViewContext.GetRouteData());
return new ControllerContext(requestContext, new CrowbarController());
}