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 Deny_Unrestricted() { HttpCacheVaryByParams cache = response.Cache.VaryByParams; Assert.IsFalse(cache.IgnoreParams, "IgnoreParams"); cache.IgnoreParams = true; Assert.IsFalse(cache["mono"], "this[string]"); cache["mono"] = true; }
internal void SetVaryByParamsCollectionFromString(string varyByParams) { if (varyByParams != null) { string[] parameters = varyByParams.Split(new char[] { ';' }); this._varyByParamsCollection = new HttpCacheVaryByParams(); this._varyByParamsCollection.ResetFromParams(parameters); } }
internal void SetVaryByParamsCollectionFromString(string varyByParams) { Debug.Assert(_varyByParamsCollection == null); if (varyByParams == null) { return; } string[] varyByParamsStrings = varyByParams.Split(varySeparator); _varyByParamsCollection = new HttpCacheVaryByParams(); _varyByParamsCollection.SetParams(varyByParamsStrings); }
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)); }
public void Properties() { HttpResponse response = new HttpResponse(Console.Out); HttpCacheVaryByParams vary = response.Cache.VaryByParams; vary["hi"] = true; Assert.IsTrue(vary["hi"], "vary[hi] == true"); /* make sure setting IgnoreParams to either case doesn't clear the value */ vary.IgnoreParams = true; Assert.IsTrue(vary["hi"], "vary[hi] == true when IgnoreParams == true"); vary.IgnoreParams = false; Assert.IsTrue(vary["hi"], "vary[hi] == true when IgnoreParams == false"); /* test case sensitivity */ Assert.IsTrue(vary["Hi"], "vary[Hi] == true"); }