public void Test_OnPostAuthorizeRequestFile() { MagickModule module = CreateFileModule(); TestHttpContextBase context = new TestHttpContextBase(); module.OnBeginRequest(context); module.OnPostAuthorizeRequest(context); Assert.IsNull(context.RemapedHandler); TestFileUrlResolver.Result = new TestFileUrlResolverResult(); module.OnPostAuthorizeRequest(context); Assert.IsNull(context.RemapedHandler); TestFileUrlResolver.Result.FileName = "c:\foo.bar"; module.OnPostAuthorizeRequest(context); Assert.IsNull(context.RemapedHandler); string tempFile = Path.GetTempFileName(); try { TestFileUrlResolver.Result.FileName = tempFile; module.OnPostAuthorizeRequest(context); Assert.IsNull(context.RemapedHandler); TestFileUrlResolver.Result.Format = MagickFormat.Stegano; module.OnPostAuthorizeRequest(context); Assert.IsNull(context.RemapedHandler); TestFileUrlResolver.Result.Format = MagickFormat.Tiff; module.OnPostAuthorizeRequest(context); Assert.IsNull(context.RemapedHandler); TestFileUrlResolver.Result.Format = MagickFormat.Svg; module.OnPostAuthorizeRequest(context); Assert.IsNotNull(context.RemapedHandler); Assert.AreEqual(context.RemapedHandler.GetType(), typeof(GzipHandler)); } finally { Cleanup.DeleteFile(tempFile); } }
private MagickWebSettings LoadSettings(string config) { config = CreateConfig(config); _tempFile = Path.GetTempFileName(); try { File.WriteAllText(_tempFile, config); MagickWebSettings settings = MagickWebSettings.CreateInstance(this); Assert.IsNotNull(settings); return(settings); } finally { Cleanup.DeleteFile(_tempFile); } }
public void Test_OnPostMapRequestHandlerFile() { MagickModule module = CreateFileModule(); module.Init(new TestHttpApplication()); TestHttpContextBase context = new TestHttpContextBase(); module.OnBeginRequest(context); module.OnPostMapRequestHandler(context); Assert.IsNull(context.Handler); string tempFile = Path.GetTempFileName(); try { TestFileUrlResolver.Result = new TestFileUrlResolverResult() { FileName = tempFile, Format = MagickFormat.Jpg, }; module.OnPostMapRequestHandler(context); Assert.IsNotNull(context.Handler); Assert.AreEqual(context.Handler.GetType(), typeof(ImageOptimizerHandler)); TestFileUrlResolver.ScriptResult = new TestScriptData() { OutputFormat = MagickFormat.Tiff, Script = XElement.Parse("<test/>").CreateNavigator(), }; module.OnPostMapRequestHandler(context); Assert.IsNotNull(context.Handler); Assert.AreEqual(context.Handler.GetType(), typeof(MagickScriptHandler)); } finally { Cleanup.DeleteFile(tempFile); } }
public void Test_Write304() { string config = @"<magick.net.web canCreateDirectories=""false"" cacheDirectory=""c:\cache""/>"; MagickWebSettings settings = TestSectionLoader.Load(config); TestMagickHandler handler = new TestMagickHandler(settings, ImageData); HttpRequest request = new HttpRequest("foo", "https://bar", string.Empty); using (MemoryStream memStream = new MemoryStream()) { using (StreamWriter writer = new StreamWriter(memStream)) { HttpResponse response = new HttpResponse(writer); HttpContext context = new HttpContext(request, response); FileInfo file = new FileInfo(handler.FileName); string modifiedSince = file.LastWriteTimeUtc.AddMinutes(1).ToString("r", CultureInfo.InvariantCulture); request.SetHeaders("If-Modified-Since", modifiedSince); handler.ProcessRequest(context); Assert.AreEqual(200, response.StatusCode); Assert.AreEqual(file.LastWriteTimeUtc.ToString(), response.Cache.GetLastModified().ToString()); request.SetHeaders("If-Modified-Since", "foobar"); handler.ProcessRequest(context); Assert.AreEqual(200, response.StatusCode); modifiedSince = file.LastWriteTimeUtc.AddMinutes(1).ToString("r", CultureInfo.InvariantCulture) + "; foo"; request.SetHeaders("If-Modified-Since", modifiedSince); handler.ProcessRequest(context); Assert.AreEqual(200, response.StatusCode); modifiedSince = file.LastWriteTimeUtc.ToString("r", CultureInfo.InvariantCulture); request.SetHeaders("If-Modified-Since", modifiedSince); handler.ProcessRequest(context); Assert.AreEqual(304, response.StatusCode); string tempFile = Path.GetTempFileName(); try { File.Copy(handler.FileName, tempFile, true); File.SetLastWriteTimeUtc(tempFile, DateTime.Now.AddYears(2)); handler.FileName = tempFile; request.SetHeaders("If-Modified-Since", modifiedSince); handler.ProcessRequest(context); Assert.AreEqual(304, response.StatusCode); Assert.AreEqual(DateTime.Now.Year, response.Cache.GetLastModified().Year); } finally { Cleanup.DeleteFile(tempFile); } } } }