public ActionResult Image(int?code) { if (code == null) { code = IdenticonUtil.Code(HttpContext.Request.UserHostAddress); } string etag = IdenticonUtil.ETag(code.Value, Size); if (HttpContext != null && HttpContext.Request != null && HttpContext.Request.Headers != null && HttpContext.Request.Headers["If-None-Match"] == etag) { // browser already has the image cached return(new NotModifiedResult()); } return(new IdenticonResult(code.Value, Size, etag)); }
public void Image_WithRequestMatchingEtag_ReturnsNotModifiedResult() { // arrange string etag = IdenticonUtil.ETag(-1234, 40); var controller = new IdenticonController(); var controllerContext = new Mock <ControllerContext>(); controller.ControllerContext = controllerContext.Object; controllerContext.Setup(c => c.HttpContext.Request.Headers).Returns(new NameValueCollection { { "If-None-Match", etag } }); // act var result = controller.Image(-1234) as NotModifiedResult; // assert Assert.IsNotNull(result); }