本文整理汇总了C#中RequestReduce.Module.RequestReduceModule类的典型用法代码示例。如果您正苦于以下问题:C# RequestReduceModule类的具体用法?C# RequestReduceModule怎么用?C# RequestReduceModule使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
RequestReduceModule类属于RequestReduce.Module命名空间,在下文中一共展示了RequestReduceModule类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WillCorrectlySetContentType
public void WillCorrectlySetContentType(string path, string contentType, bool contentInStore)
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
var response = new Mock<HttpResponseBase>();
response.SetupProperty(x => x.ContentType);
response.Setup(x => x.Headers).Returns(new NameValueCollection());
response.Setup(x => x.Cache).Returns(new Mock<HttpCachePolicyBase>().Object);
context.Setup(x => x.Request.Headers).Returns(new NameValueCollection());
context.Setup(x => x.Response).Returns(response.Object);
context.Setup(x => x.Request.RawUrl).Returns(path);
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.SpriteVirtualPath).Returns("/RRContent");
var store = new Mock<IStore>();
store.Setup(
x => x.SendContent(It.IsAny<string>(), response.Object)).
Returns(contentInStore);
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IStore>().Use(store.Object);
x.For<IUriBuilder>().Use(new UriBuilder(config.Object));
});
module.HandleRRContent(context.Object);
Assert.Equal(contentType, response.Object.ContentType);
RRContainer.Current = null;
}
示例2: WillDelegateContentNotInMyDirectoryFriendHandlers
public void WillDelegateContentNotInMyDirectoryFriendHandlers()
{
var module = new RequestReduceModule();
var handler = new DefaultHttpHandler();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.SpriteVirtualPath).Returns("/RRContent");
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.RawUrl).Returns("/content/someresource.less");
context.Setup(x => x.Request.Url).Returns(new Uri("http://host/content/someresource.less"));
context.Setup(x => x.Request.Headers).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
context.Setup(x => x.Items).Returns(new Hashtable());
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IUriBuilder>().Use<UriBuilder>();
});
Registry.HandlerMaps.Add(x => x.AbsolutePath.EndsWith(".less") ? handler : null);
Registry.HandlerMaps.Add(x => x.AbsolutePath.EndsWith(".les") ? new DefaultHttpHandler() : null);
module.HandleRRContent(context.Object);
//context.Verify(x => x.RemapHandler(handler), Times.Once());
Assert.Equal(handler, context.Object.Items["remapped handler"]);
RRContainer.Current = null;
Registry.HandlerMaps.Clear();
}
示例3: WillFlushFailuresOnFlushFailureUrlWhenAndAuthorizedUsersIsAnonymous
public void WillFlushFailuresOnFlushFailureUrlWhenAndAuthorizedUsersIsAnonymous()
{
var module = new RequestReduceModule();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.AuthorizedUserList).Returns(RRConfiguration.Anonymous);
config.Setup(x => x.SpriteVirtualPath).Returns("/RRContent");
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.RawUrl).Returns("/RRContent/FlushFailures");
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
var identity = new Mock<IIdentity>();
identity.Setup(x => x.IsAuthenticated).Returns(false);
context.Setup(x => x.User.Identity).Returns(identity.Object);
var queue = new Mock<IReducingQueue>();
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IReducingQueue>().Use(queue.Object);
x.For<IUriBuilder>().Use<UriBuilder>();
});
module.HandleRRFlush(context.Object);
queue.Verify(x => x.ClearFailures(), Times.Once());
RRContainer.Current = null;
}
示例4: WillDelegateContentMappedToHandler
public void WillDelegateContentMappedToHandler()
{
var module = new RequestReduceModule();
var handler = new DefaultHttpHandler();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.ResourceAbsolutePath).Returns("/RRContent");
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.Url).Returns(new Uri("http://host/content/someresource.less"));
context.Setup(x => x.Request.Headers).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
context.Setup(x => x.Items).Returns(new Hashtable());
var handlerFactory = new HandlerFactory(config.Object, new UriBuilder(config.Object));
handlerFactory.AddHandlerMap(x => x.AbsolutePath.EndsWith(".less") ? handler : null);
handlerFactory.AddHandlerMap(x => x.AbsolutePath.EndsWith(".les") ? new DefaultHttpHandler() : null);
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IUriBuilder>().Use<UriBuilder>();
x.For<IHandlerFactory>().Use(handlerFactory);
});
module.HandleRRContent(context.Object);
Assert.Equal(handler, context.Object.Items["remapped handler"]);
RRContainer.Current = null;
}
示例5: WillNotSetResponseFilterIfFaviconIco
public void WillNotSetResponseFilterIfFaviconIco()
{
RRContainer.Current = null;
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.ResourceVirtualPath).Returns("/Virtual");
context.Setup(x => x.Items.Contains(ResponseFilter.ContextKey)).Returns(false);
context.Setup(x => x.Response.ContentType).Returns("text/html");
context.Setup(x => x.Request.QueryString).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
context.Setup(x => x.Request.Url).Returns(new Uri("http://host/favicon.ico"));
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<AbstractFilter>().Use(new Mock<AbstractFilter>().Object);
});
module.InstallFilter(context.Object);
context.VerifySet(x => x.Response.Filter = It.IsAny<Stream>(), Times.Never());
RRContainer.Current = null;
}
示例6: WillGetAndSetResponseFilterIfXHtmlContent
public void WillGetAndSetResponseFilterIfXHtmlContent()
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.ResourceAbsolutePath).Returns("/Virtual");
context.Setup(x => x.Items.Contains(ResponseFilter.ContextKey)).Returns(false);
context.Setup(x => x.Request.Url).Returns(new Uri("http://host/Content/blah"));
context.Setup(x => x.Response.ContentType).Returns("application/xhtml+xml");
context.Setup(x => x.Request.QueryString).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IHostingEnvironmentWrapper>().Use(new Mock<IHostingEnvironmentWrapper>().Object);
x.For<AbstractFilter>().Use(new Mock<AbstractFilter>().Object);
});
module.InstallFilter(context.Object);
context.VerifyGet(x => x.Response.Filter, Times.Once());
context.VerifySet(x => x.Response.Filter = It.IsAny<Stream>(), Times.Once());
RRContainer.Current = null;
}
示例7: WillSetResponseFilterIfHtmlContent
public void WillSetResponseFilterIfHtmlContent()
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Items.Contains(RequestReduceModule.CONTEXT_KEY)).Returns(false);
context.Setup(x => x.Request.RawUrl).Returns("/content/blah");
context.Setup(x => x.Response.ContentType).Returns("text/html");
context.Setup(x => x.Request.QueryString).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
module.InstallFilter(context.Object);
context.VerifySet(x => x.Response.Filter = It.IsAny<Stream>(), Times.Once());
}
示例8: WillSetResponseFilterIfJustJsProcessingIsDisabledFromConfig
public void WillSetResponseFilterIfJustJsProcessingIsDisabledFromConfig()
{
var module = new RequestReduceModule();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.SpriteVirtualPath).Returns("/Virtual");
config.Setup(x => x.JavaScriptProcessingDisabled).Returns(true);
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Items.Contains(RequestReduceModule.ContextKey)).Returns(false);
context.Setup(x => x.Response.ContentType).Returns("text/html");
context.Setup(x => x.Request.QueryString).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
context.Setup(x => x.Request.RawUrl).Returns("/NotVirtual/blah");
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<AbstractFilter>().Use(new Mock<AbstractFilter>().Object);
});
module.InstallFilter(context.Object);
context.VerifySet(x => x.Response.Filter = It.IsAny<Stream>(), Times.Once());
RRContainer.Current = null;
}
示例9: WillSetPhysicalPathToMappedVirtualPathOnFlush
public void WillSetPhysicalPathToMappedVirtualPathOnFlush()
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.SpriteVirtualPath).Returns("/RRContent");
config.Setup(x => x.AuthorizedUserList).Returns(RRConfiguration.Anonymous);
context.Setup(x => x.Server.MapPath("/RRContent")).Returns("physical");
context.Setup(x => x.Request.RawUrl).Returns("/RRContent/FlushFailures");
var identity = new Mock<IIdentity>();
identity.Setup(x => x.IsAuthenticated).Returns(false);
context.Setup(x => x.User.Identity).Returns(identity.Object);
var queue = new Mock<IReducingQueue>();
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IReducingQueue>().Use(queue.Object);
});
module.HandleRRFlush(context.Object);
config.VerifySet(x => x.SpritePhysicalPath = "physical", Times.Once());
RRContainer.Current = null;
}
示例10: WillSetCachabilityIfInRRPathAndStoreSendsContent
public void WillSetCachabilityIfInRRPathAndStoreSendsContent(string path)
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.RawUrl).Returns("/RRContent/css.css");
context.Setup(x => x.Request.Url).Returns(new Uri("http://localhost/RRContent/css.css"));
context.Setup(x => x.Response.Headers).Returns(new NameValueCollection());
context.Setup(x => x.Request.Headers).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
var cache = new Mock<HttpCachePolicyBase>();
context.Setup(x => x.Response.Cache).Returns(cache.Object);
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.SpriteVirtualPath).Returns(path);
var store = new Mock<IStore>();
store.Setup(
x => x.SendContent(It.IsAny<string>(), context.Object.Response)).
Returns(true);
var builder = new Mock<IUriBuilder>();
builder.Setup(x => x.ParseSignature("/RRContent/css.css")).Returns("sig");
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IStore>().Use(store.Object);
x.For<IUriBuilder>().Use(builder.Object);
});
module.HandleRRContent(context.Object);
Assert.Equal(60*24*360, context.Object.Response.Expires);
cache.Verify(x => x.SetETag(@"""sig"""), Times.Once());
cache.Verify(x => x.SetCacheability(HttpCacheability.Public), Times.Once());
RRContainer.Current = null;
}
示例11: WillNotSetCachabilityIfNotInRRPatOrStoreDoesNotSendContent
public void WillNotSetCachabilityIfNotInRRPatOrStoreDoesNotSendContent(string path, bool contentSent)
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.RawUrl).Returns("/RRContent/css.css");
context.Setup(x => x.Request.Url).Returns(new Uri("http://localhost/RRContent/css.css"));
context.Setup(x => x.Request.Headers).Returns(new NameValueCollection());
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
var cache = new Mock<HttpCachePolicyBase>();
context.Setup(x => x.Response.Cache).Returns(cache.Object);
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.SpriteVirtualPath).Returns(path);
var store = new Mock<IStore>();
store.Setup(
x => x.SendContent(It.IsAny<string>(), context.Object.Response)).
Returns(contentSent);
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IStore>().Use(store.Object);
x.For<IUriBuilder>().Use(new UriBuilder(config.Object));
});
module.HandleRRContent(context.Object);
cache.Verify(x => x.SetCacheability(HttpCacheability.Public), Times.Never());
RRContainer.Current = null;
}
示例12: WillFlushFailuresOnFlushFailureUrlWhenAndAuthorizedUsersIsAnonymousAndNull
public void WillFlushFailuresOnFlushFailureUrlWhenAndAuthorizedUsersIsAnonymousAndNull()
{
var module = new RequestReduceModule();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.AuthorizedUserList).Returns(RRConfiguration.Anonymous);
config.Setup(x => x.SpriteVirtualPath).Returns("/RRContent");
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.RawUrl).Returns("/RRContent/FlushFailures");
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
context.Setup(x => x.User).Returns(null as IPrincipal);
var queue = new Mock<IReducingQueue>();
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IHostingEnvironmentWrapper>().Use(new Mock<IHostingEnvironmentWrapper>().Object);
x.For<IReducingQueue>().Use(queue.Object);
x.For<IUriBuilder>().Use<UriBuilder>();
x.For<IIpFilter>().Use<IpFilter>();
});
module.HandleRRFlush(context.Object);
queue.Verify(x => x.ClearFailures(), Times.Once());
RRContainer.Current = null;
}
示例13: WillStripQueryStringDromGeneratedUrls
public void WillStripQueryStringDromGeneratedUrls()
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.RawUrl).Returns("/RRContent/key-match-css.css?somequerystring");
context.Setup(x => x.Request.Url).Returns(new Uri("http://localhost/RRContent/key-match-css.css?somequerystring"));
context.Setup(x => x.Request.Headers).Returns(new NameValueCollection() { { "If-None-Match", @"""match""" } });
context.Setup(x => x.Response.Headers).Returns(new NameValueCollection());
var cache = new Mock<HttpCachePolicyBase>();
context.Setup(x => x.Response.Cache).Returns(cache.Object);
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.SpriteVirtualPath).Returns("/RRContent");
var store = new Mock<IStore>();
var builder = new Mock<IUriBuilder>();
builder.Setup(x => x.ParseSignature("/RRContent/key-match-css.css")).Returns("match");
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IHostingEnvironmentWrapper>().Use(new Mock<IHostingEnvironmentWrapper>().Object);
x.For<IStore>().Use(store.Object);
x.For<IUriBuilder>().Use(builder.Object);
});
module.HandleRRContent(context.Object);
store.Verify(x => x.SendContent("/RRContent/key-match-css.css", context.Object.Response), Times.Never());
RRContainer.Current = null;
}
示例14: WillSetResponseFilterOnce
public void WillSetResponseFilterOnce()
{
var module = new RequestReduceModule();
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Items.Contains(RequestReduceModule.CONTEXT_KEY)).Returns(true);
module.InstallFilter(context.Object);
context.VerifySet((x => x.Response.Filter = It.IsAny<Stream>()), Times.Never());
}
示例15: WillNotFlushReductionsIfNotOnFlushUrl
public void WillNotFlushReductionsIfNotOnFlushUrl()
{
var module = new RequestReduceModule();
var config = new Mock<IRRConfiguration>();
config.Setup(x => x.AuthorizedUserList).Returns(RRConfiguration.Anonymous);
config.Setup(x => x.SpriteVirtualPath).Returns("/RRContent");
var context = new Mock<HttpContextBase>();
context.Setup(x => x.Request.RawUrl).Returns("/RRContent/notflush");
var identity = new Mock<IIdentity>();
identity.Setup(x => x.IsAuthenticated).Returns(false);
context.Setup(x => x.User.Identity).Returns(identity.Object);
context.Setup(x => x.Server).Returns(new Mock<HttpServerUtilityBase>().Object);
var store = new Mock<IStore>();
RRContainer.Current = new Container(x =>
{
x.For<IRRConfiguration>().Use(config.Object);
x.For<IStore>().Use(store.Object);
x.For<IUriBuilder>().Use<UriBuilder>();
});
module.HandleRRFlush(context.Object);
store.Verify(x => x.Flush(It.IsAny<Guid>()), Times.Never());
RRContainer.Current = null;
}