public void GetCompressionType(string acceptEncodingHeader, string browser, int browserMajorVersion, CompressionType expectedCompressionType) { Mock<IDateTimeProvider> dateTimeProviderMock = new Mock<IDateTimeProvider>(); DateTime now = DateTime.Now; dateTimeProviderMock.SetupGet(x => x.UtcNow).Returns(now); HttpResponseStub httpResponseStub = new HttpResponseStub(new MemoryStream()); HttpRequestStub httpRequestStub = new HttpRequestStub(new NameValueCollection(), new HttpBrowserCapabilitiesStub(browser, browserMajorVersion)); httpRequestStub.Headers.Add("Accept-Encoding", acceptEncodingHeader); Mock<HttpContextBase> httpContextMock = HttpContextMockHelper.CreateHttpContext(httpResponseStub, httpRequestStub); HttpResponseCompressor httpResponseCompressor = new HttpResponseCompressor(); Assert.AreEqual(expectedCompressionType, httpResponseCompressor.GetRequestCompressionType(httpContextMock.Object)); }
public void HandleResource_AssertCompressionContentEncoding_AccordingToAccepEncodingHeaderAndCompressResourceConfiguration(string acceptEncodingHeader, bool compressResource, string expectedContentEncodingHeader) { HttpRequestStub httpRequestStub = new HttpRequestStub(); httpRequestStub.Headers.Add("Accept-Encoding", acceptEncodingHeader); Mock<HttpContextBase> httpContextBaseMock = HandleResource("js", "~/js.js", ResourceType.Js, compressResource, httpRequestStub); if (expectedContentEncodingHeader.IsNullOrEmpty()) { Assert.AreEqual(null, httpContextBaseMock.Object.Response.Headers["Content-Encoding"]); } else { Assert.IsTrue(httpContextBaseMock.Object.Response.Headers["Content-Encoding"].Contains(expectedContentEncodingHeader)); } }
public void Cache() { Mock<IDateTimeProvider> dateTimeProviderMock = new Mock<IDateTimeProvider>(); DateTime now = DateTime.Now; dateTimeProviderMock.SetupGet(x => x.UtcNow).Returns(now); HttpResponseStub httpResponseStub = new HttpResponseStub(new MemoryStream()); HttpRequestStub httpRequestStub = new HttpRequestStub(); Mock<HttpContextBase> httpContext = HttpContextMockHelper.CreateHttpContext(httpResponseStub, httpRequestStub); HttpResponseCacher httpResponseCacher = new HttpResponseCacher(dateTimeProviderMock.Object); httpResponseCacher.Cache(httpContext.Object, now); Assert.AreEqual("Accept-Encoding", httpResponseStub.CacheStub.VaryByCustom); Assert.AreEqual(now, httpResponseStub.CacheStub.LastModifiedDate); Assert.AreEqual(true, httpResponseStub.CacheStub.ValidUntilExpires); Assert.AreEqual(HttpCacheability.Public, httpResponseStub.CacheStub.Cacheability); Assert.AreEqual(now.AddYears(1), httpResponseStub.CacheStub.ExpireDate); Assert.AreEqual(TimeSpan.FromDays(365), httpResponseStub.CacheStub.MaxAge); }
public void Compress(string acceptEncodingHeader, string expectedContentEncodingHeader) { Mock<IDateTimeProvider> dateTimeProviderMock = new Mock<IDateTimeProvider>(); DateTime now = DateTime.Now; dateTimeProviderMock.SetupGet(x => x.UtcNow).Returns(now); HttpResponseStub httpResponseStub = new HttpResponseStub(new MemoryStream()); HttpRequestStub httpRequestStub = new HttpRequestStub(); httpRequestStub.Headers.Add("Accept-Encoding", acceptEncodingHeader); Mock<HttpContextBase> httpContextMock = HttpContextMockHelper.CreateHttpContext(httpResponseStub, httpRequestStub); HttpResponseCompressor httpResponseCompressor = new HttpResponseCompressor(); httpResponseCompressor.Compress(httpContextMock.Object, httpResponseCompressor.GetRequestCompressionType(httpContextMock.Object)); if (expectedContentEncodingHeader.IsNullOrEmpty()) { Assert.AreEqual(null, httpContextMock.Object.Response.Headers["Content-Encoding"]); } else { Assert.IsTrue(httpContextMock.Object.Response.Headers["Content-Encoding"].Contains(expectedContentEncodingHeader)); } }