public void Should_return_the_source_of_the_asset() { var asset = new WebAsset("foo"); resolver = new AbsoluteWebAssetResolver(asset); Assert.Equal(asset.Source, resolver.Resolve(new ResolverContext()).ElementAt(0)); }
public void Should_be_able_to_set_item() { _collection.Add(new WebAsset("~/scripts/script.js")); _collection[0] = new WebAsset("~/scripts/script1.js"); Assert.Equal("~/scripts/script1.js", ((WebAsset)_collection[0]).Source); }
public void Setting_duplicate_item_should_throw_exception() { _collection.Add(new WebAsset("~/scripts/script.js")); _collection.Add(new WebAsset("~/scripts/script2.js")); Assert.Throws <ArgumentException>(() => _collection[1] = new WebAsset("~/scripts/script.js")); }
public void Setting_duplicate_item_should_throw_exception() { _collection.Add(new WebAsset("~/scripts/script.js")); _collection.Add(new WebAsset("~/scripts/script2.js")); Assert.Throws<ArgumentException>(() => _collection[1] = new WebAsset("~/scripts/script.js")); }
public WebAssetTests() { checker = new Mock <IWebAssetChecker>(); serializer = new Mock <IWebAssetGroupSerializer>(); resolverFactory = new Mock <IWebAssetResolverFactory>(); asset = new WebAsset("~/Script/content1.js"); }
public async Task <WebAsset> ProcessAsync(WebAsset webAsset, IOwinRequest request) { var endpointUrl = this.endpointUrlFunc?.Invoke(request) ?? ""; // take care about reverse proxy hosting scenarios var virtualFolder = request.PathBase.Value; var stripPath = request.Headers["X-Forwarded-Strip"] ?? ""; var prefix = request.Headers["X-Forwarded-Prefix"] ?? ""; if (virtualFolder.StartsWith(stripPath, StringComparison.OrdinalIgnoreCase)) { virtualFolder = virtualFolder.Remove(0, stripPath.Length); } if (!virtualFolder.StartsWith("/")) { virtualFolder += "/"; } var baseHref = prefix + virtualFolder; if (!baseHref.EndsWith("/")) { baseHref += "/"; } return(webAsset.WithNewContent(await webAsset.Content.ReplaceAsync( new[] {
public void Should_create_cdn_resolver_if_cdn_is_enabled_and_the_file_is_native() { checker.Setup(c => c.IsNative(It.IsAny<WebAsset>())).Returns(true); WebAsset asset = new WebAsset("foo.js"); asset.UseTelerikContentDeliveryNetwork = true; Assert.IsType<CdnWebAssetResolver>(factory.Create(asset)); }
public void Should_return_the_source_of_the_asset() { var asset = new WebAsset("foo"); resolver = new AbsoluteWebAssetResolver(asset); Assert.Equal(asset.Source, resolver.Resolve(new ResolverContext()).ElementAt(0)); }
public void Should_create_cdn_resolver_if_cdn_is_enabled_and_the_file_is_native() { checker.Setup(c => c.IsNative(It.IsAny <WebAsset>())).Returns(true); WebAsset asset = new WebAsset("foo.js"); asset.UseTelerikContentDeliveryNetwork = true; Assert.IsType <CdnWebAssetResolver>(factory.Create(asset)); }
public bool IsNative(WebAsset asset) { var fileName = Path.GetFileName(asset.Source); foreach (var predicate in Predicates) { if (predicate(fileName)) { return true; } } return false; }
public bool IsNative(WebAsset asset) { var fileName = Path.GetFileName(asset.Source); foreach (var predicate in Predicates) { if (predicate(fileName)) { return(true); } } return(false); }
public void Should_check_for_absolute_assets() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.Items.Add(asset); checker.Setup(c => c.IsAbsolute(asset)); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); checker.VerifyAll(); }
public void Should_not_check_for_native_assets_when_cdn_is_disabled() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.Items.Add(asset); checker.Setup(c => c.IsNative(asset)); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); checker.Verify(c => c.IsNative(asset), Times.Never()); }
public void Should_check_for_absolute_assets() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.Items.Add(asset); checker.Setup(c => c.IsAbsolute(asset)); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); checker.VerifyAll(); }
public WebAssetRenderer(WebAsset asset) : base(asset) { browser = new ChromiumWebBrowser(asset.data); browser.Width = 500; browser.Height = 5000; Window.MainWindowNotePanel.Children.Add(browser); browser.LoadingStateChanged += async(s, e) => { if (!e.IsLoading) // browser.CanExecuteJavascriptInMainFrame == TRUE ! { await FitBrowserHeightToPageContent(); } }; }
public void Should_check_for_native_assets_when_cdn_is_enabled() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.UseTelerikContentDeliveryNetwork = true; group.Items.Add(asset); checker.Setup(c => c.IsNative(asset)); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); checker.VerifyAll(); }
public void Should_use_group_name_if_asset_is_shared() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", true); group.Items.Add(asset); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); var result = resolver.Resolve(new ResolverContext { HttpHandlerPath = "baz.axd" }); Assert.Equal("baz.axd?" + WebAssetHttpHandler.IdParameterName + "=foo", result.First()); }
public void Should_resolve_absolute_assets() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.Items.Add(asset); checker.Setup(c => c.IsAbsolute(asset)).Returns(true); resolverFactory.Setup(f => f.Create(asset)).Returns(new Mock <IWebAssetResolver>().Object); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); resolverFactory.VerifyAll(); }
public void Should_check_for_native_assets_when_cdn_is_enabled() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.UseTelerikContentDeliveryNetwork = true; group.Items.Add(asset); checker.Setup(c => c.IsNative(asset)); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); checker.VerifyAll(); }
private IWebAssetResolver CreateAssetResolver(WebAsset asset) { if (checker.IsAbsolute(asset)) { return(new AbsoluteWebAssetResolver(asset)); } if (asset.UseTelerikContentDeliveryNetwork) { if (checker.IsNative(asset)) { return(new CdnWebAssetResolver(asset)); } } return(new LocalWebAssetResolver(asset, locator)); }
private IWebAssetResolver CreateAssetResolver(WebAsset asset) { if (checker.IsAbsolute(asset)) { return new AbsoluteWebAssetResolver(asset); } if (asset.UseTelerikContentDeliveryNetwork) { if (checker.IsNative(asset)) { return new CdnWebAssetResolver(asset); } } return new LocalWebAssetResolver(asset, locator); }
/// <summary> /// Collects info about data and injects it into track's assets list. /// </summary> public void RegisterAssets(Track track) { try { var filePaths = NTDFiles.Items; foreach (string file in filePaths) { // WEB ASSET if (Regex.IsMatch(file, WebAssetPattern)) { Match m = Regex.Match(file, WebAssetPattern); string url = m.Groups[1].Value; WebAsset webAsset = new WebAsset(url); track.Assets.Add(webAsset); continue; } // MODIFY if (_modifyMode) { Match m = Regex.Match(file, ModifyTrackPattern); if (m.Success) { int indexOfAsset = int.Parse(m.Groups[1].Value) - 1; track.Assets.Add(_track.Assets[indexOfAsset]); continue; } } // OTHER FILES FileInfo fi = new FileInfo(file); Type type = AssetConverter.GetAssetTypeByExtension(fi.Extension); var bytes = File.ReadAllBytes(file); var basset = new BinaryAsset(type, bytes); var asset = AssetConverter.ResolveBinaryAsset(basset); track.Assets.Add(asset); } } catch (Exception e) { throw new ForUserException( "A Problem occured during registering assets. Details: " + e.Message); } }
public void Should_append_asset_handler_path() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.Items.Add(asset); serializer.Setup(s => s.Serialize(group)).Returns("bar"); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); var result = resolver.Resolve(new ResolverContext { HttpHandlerPath = "baz.axd" }); Assert.Equal("baz.axd?" + WebAssetHttpHandler.IdParameterName + "=bar", result.First()); }
public void Should_append_asset_handler_path() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.Items.Add(asset); serializer.Setup(s => s.Serialize(group)).Returns("bar"); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); var result = resolver.Resolve(new ResolverContext { HttpHandlerPath = "baz.axd" }); Assert.Equal("baz.axd?" + WebAssetHttpHandler.IdParameterName + "=bar", result.First()); }
public void Should_use_group_name_if_asset_is_shared() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", true); group.Items.Add(asset); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); var result = resolver.Resolve(new ResolverContext { HttpHandlerPath = "baz.axd" }); Assert.Equal("baz.axd?" + WebAssetHttpHandler.IdParameterName + "=foo", result.First()); }
public LocalWebAssetResolver(WebAsset asset, IWebAssetLocator locator) { this.asset = asset; this.locator = locator; }
private IDictionary <string, object> FileToDictionary(WebAsset asset, int order) { return(new Dictionary <string, object> { { NameKey, asset.FileName }, { OrderKey, order } }); }
private string GetDirectoryName(WebAsset asset) { return(asset.Source.Substring(2, asset.Source.LastIndexOf("/") - 2)); }
public void Should_be_able_to_set_item() { _collection.Add(new WebAsset("~/scripts/script.js")); _collection[0] = new WebAsset("~/scripts/script1.js"); Assert.Equal("~/scripts/script1.js", ((WebAsset) _collection[0]).Source); }
public CdnWebAssetResolver(WebAsset asset) { this.asset = asset; }
public async Task <WebAsset> ProcessAsync(WebAsset webAsset, IOwinRequest request) { // return webAsset; var urlHelper = request.UrlHelper(); var newContent = await webAsset.Content.ReplaceAsync(new[] { ("{BASE_HREF}", urlHelper.ClientBaseHref.WithTailingSlash()) });
public AbsoluteWebAssetResolver(WebAsset asset) { this.asset = asset; }
public AbsoluteWebAssetResolver(WebAsset asset) { this.asset = asset; }
public CdnWebAssetResolver(WebAsset asset) { this.asset = asset; }
public LocalWebAssetResolver(WebAsset asset, IWebAssetLocator locator) { this.asset = asset; this.locator = locator; }
public bool IsAbsolute(WebAsset asset) { return asset.Source.Contains("//"); }
private IEnumerable <string> Resolve(ResolverContext resolverContext, WebAsset asset) { return(resolverFactory.Create(asset) .Resolve(resolverContext)); }
private IEnumerable<string> Resolve(ResolverContext resolverContext, WebAsset asset) { return resolverFactory.Create(asset) .Resolve(resolverContext); }
public void Should_resolve_native_assets() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.UseTelerikContentDeliveryNetwork = true; group.Items.Add(asset); checker.Setup(c => c.IsNative(asset)).Returns(true); resolverFactory.Setup(f => f.Create(asset)).Returns(new Mock<IWebAssetResolver>().Object); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); resolverFactory.VerifyAll(); }
public bool IsAbsolute(WebAsset asset) { return(asset.Source.Contains("//")); }
public void Should_not_check_for_native_assets_when_cdn_is_disabled() { var asset = new WebAsset("foo"); group = new WebAssetGroup("foo", false); group.Items.Add(asset); checker.Setup(c => c.IsNative(asset)); resolver = new CombinedWebAssetGroupResolver(group, resolverFactory.Object, checker.Object, serializer.Object); resolver.Resolve(new ResolverContext()); checker.Verify(c => c.IsNative(asset), Times.Never()); }
private void Process(Mock<Stream> outputStream, bool compress, int cacheDuration) { const string Id = "a-fake-id"; Mock<HttpRequestBase> httpRequest = new Mock<HttpRequestBase>(); httpRequest.SetupGet(request => request.QueryString).Returns(new NameValueCollection { { WebAssetHttpHandler.IdParameterName, Id } }); outputStream.SetupGet(stream => stream.CanRead).Returns(true); outputStream.SetupGet(stream => stream.CanWrite).Returns(true); outputStream.SetupGet(stream => stream.CanSeek).Returns(true); outputStream.Setup(stream => stream.Write(It.IsAny<byte[]>(), It.IsAny<int>(), It.IsAny<int>())).Verifiable(); Mock<HttpResponseBase> httpResponse = new Mock<HttpResponseBase>(); httpResponse.SetupGet(response => response.OutputStream).Returns(outputStream.Object); Mock<HttpContextBase> httpContext = new Mock<HttpContextBase>(); httpContext.SetupGet(context => context.IsDebuggingEnabled).Returns(false); httpContext.SetupGet(context => context.Request).Returns(httpRequest.Object); httpContext.SetupGet(context => context.Response).Returns(httpResponse.Object); WebAsset asset = new WebAsset("application/x-javascript", "2.0", compress, cacheDuration, "function ready(){ test.init(); }"); _registry.Setup(registry => registry.Retrieve(It.IsAny<string>())).Returns(asset); httpResponse.SetupSet(response => response.ContentType).Verifiable(); _compressor.Setup(compressor => compressor.Compress(httpContext.Object)).Verifiable(); _cacher.Setup(cacher => cacher.Cache(httpContext.Object, It.IsAny<TimeSpan>())).Verifiable(); _handler.ProcessRequest(httpContext.Object); }