public void OutputCacheSetsVaryByValues() { // Arrange var timestamp = new DateTime(2011, 1, 1, 0, 0, 0); var context = new Mock <HttpContextBase>(); context.SetupGet(c => c.Timestamp).Returns(timestamp); var response = new Mock <HttpResponseBase>().Object; var varyByParams = new HttpCacheVaryByParams(); var varyByHeader = new HttpCacheVaryByHeaders(); var varyByContentEncoding = new HttpCacheVaryByContentEncodings(); var cache = new Mock <HttpCachePolicyBase>(); cache.SetupGet(c => c.VaryByParams).Returns(varyByParams); cache.SetupGet(c => c.VaryByHeaders).Returns(varyByHeader); cache.SetupGet(c => c.VaryByContentEncodings).Returns(varyByContentEncoding); // Act ResponseExtensions.OutputCache(context.Object, cache.Object, 20, false, new[] { "foo" }, new[] { "bar", "bar2" }, new[] { "baz", "baz2" }, HttpCacheability.Public); // Assert Assert.Equal(varyByParams["foo"], true); Assert.Equal(varyByHeader["bar"], true); Assert.Equal(varyByHeader["bar2"], true); Assert.Equal(varyByContentEncoding["baz"], true); Assert.Equal(varyByContentEncoding["baz2"], true); }
public void Properties() { HttpResponse response = new HttpResponse(Console.Out); HttpCacheVaryByHeaders hdrs = response.Cache.VaryByHeaders; /* first test all the getters/setters for the builtin fields */ hdrs.AcceptTypes = true; hdrs.UserAgent = true; hdrs.UserCharSet = true; hdrs.UserLanguage = true; hdrs["custom-field"] = true; Assert.IsTrue(hdrs.AcceptTypes, "hdrs.AcceptTypes == true"); Assert.IsTrue(hdrs.UserAgent, "hdrs.UserAgent == true"); Assert.IsTrue(hdrs.UserCharSet, "hdrs.UserCharSet == true"); Assert.IsTrue(hdrs.UserLanguage, "hdrs.UserLanguage == true"); Assert.IsTrue(hdrs["custom-field"], "hdrs['custom-field'] == true"); /* test case sensitivity */ Assert.IsTrue(hdrs["Custom-Field"], "hdrs['Custom-Field'] == true"); hdrs.VaryByUnspecifiedParameters(); /* now verify that they're all false */ Assert.IsFalse(hdrs.AcceptTypes, "hdrs.AcceptTypes == false"); Assert.IsFalse(hdrs.UserAgent, "hdrs.UserAgent == false"); Assert.IsFalse(hdrs.UserCharSet, "hdrs.UserCharSet == false"); Assert.IsFalse(hdrs.UserLanguage, "hdrs.UserLanguage == false"); Assert.IsFalse(hdrs["custom-field"], "hdrs['custom-field'] == false"); }
public void Deny_Unrestricted() { HttpCacheVaryByHeaders cache = response.Cache.VaryByHeaders; Assert.IsFalse(cache.AcceptTypes, "AcceptTypes"); cache.AcceptTypes = true; Assert.IsFalse(cache.UserAgent, "UserAgent"); cache.UserAgent = true; Assert.IsFalse(cache.UserCharSet, "UserCharSet"); cache.UserCharSet = true; Assert.IsFalse(cache.UserLanguage, "UserLanguage"); cache.UserLanguage = true; Assert.IsFalse(cache["mono"], "this[string]"); cache["mono"] = true; cache.VaryByUnspecifiedParameters(); }
public void HttpHandler_GetContentByQueryString_ReturnsFile() { AssertInconclusiveIfInDebugMode(); var mockRequest = new Mock <HttpRequestBase>(); mockRequest.SetupGet(r => r.Path).Returns("/Content/"); mockRequest.SetupGet(r => r.ApplicationPath).Returns("/"); var nameValueCollection = new NameValueCollection(); nameValueCollection.Add("resource", "/Images/picto/check.gif"); mockRequest.SetupGet(r => r.QueryString).Returns(nameValueCollection); var mockCtx = new Mock <HttpContextBase>(); mockCtx.SetupGet(c => c.Request).Returns(mockRequest.Object); var mockResponse = new Mock <HttpResponseBase>(); mockResponse.SetupProperty(p => p.ContentType); mockCtx.SetupGet(c => c.Response).Returns(mockResponse.Object); var mockCachePolicy = new Mock <HttpCachePolicyBase>(); mockResponse.SetupGet(r => r.Cache).Returns(mockCachePolicy.Object); var headers = new HttpCacheVaryByHeaders(); mockCachePolicy.SetupGet(c => c.VaryByHeaders).Returns(headers); var varyByParams = new HttpCacheVaryByParams(); mockCachePolicy.SetupGet(c => c.VaryByParams).Returns(varyByParams); var contentRetriever = new FakeAssetLoader(); var handler = new HttpHandler(() => contentRetriever, "Content"); handler.ProcessRequestInternal(mockCtx.Object); mockResponse.VerifySet(r => r.ContentType = "image/gif", Times.Once); mockResponse.Verify(r => r.BinaryWrite(It.Is <byte[]>(b => b == contentRetriever.RawData)), Times.Once()); mockCachePolicy.Verify(c => c.SetCacheability(HttpCacheability.Public), Times.Once); mockCachePolicy.Verify(c => c.SetExpires(It.Is <DateTime>(d => DateTime.Now.AddHours(1.0) - d < TimeSpan.FromSeconds(5))), Times.Once); mockCachePolicy.Verify(c => c.SetLastModified(It.Is <DateTime>(d => d == contentRetriever.LastModified)), Times.Once); Assert.That(headers["Host"], Is.EqualTo(true)); }