public void WhenAScriptIsInMoreThanOneGroup_AndOneGroupWasExplicitlyRequired_ThenGroupExplicitlyRequiredGroupIsIncluded() { var aOnlyFile = _finder.CreateResource("~/a/script.js"); var bOnlyFile = _finder.CreateResource("~/b/scripts.js"); var fileInBothGroups = _finder.CreateResource("~/shared/script.js"); var groupA = new ScriptGroupElement(); groupA.ConsolidatedUrl = "~/groups/groupA.js"; groupA.Include.AddPath(aOnlyFile.VirtualPath); groupA.Include.AddPath(fileInBothGroups.VirtualPath); _context.ScriptGroups.Add(groupA); var groupB = new ScriptGroupElement(); groupB.ConsolidatedUrl = "~/groups/groupB.js"; groupB.Include.AddPath(bOnlyFile.VirtualPath); groupB.Include.AddPath(fileInBothGroups.VirtualPath); _context.ScriptGroups.Add(groupB); var scriptRegistry1 = _accessor.ScriptRegistry; scriptRegistry1.Require(fileInBothGroups.VirtualPath); scriptRegistry1.Require(groupB.ConsolidatedUrl); var includedScripts = scriptRegistry1.GetIncludes().ToList(); includedScripts.CountShouldEqual(1); includedScripts[0].ShouldEqual(groupB.ConsolidatedUrl); }
public void SetupContext() { _context = AssmanContext.Create(ResourceMode.Debug); _groupElement = new ScriptGroupElement(); _groupElement.ConsolidatedUrl = "~" + ConsolidatedPath; _context.ScriptGroups.Add(_groupElement); _configLoader = new Mock<IConfigLoader>(); _configLoader.Setup(l => l.GetSection<CompilationSection>(It.IsAny<string>())).Returns(new CompilationSection()); _handlerFactory = new ResourceHttpHandlerFactory(_context, _configLoader.Object); }
public void FilesInSecondGroupAndNotInFirstReturnSecondGroupUrl() { const string secondGroupUrl = "~/mysecondconsolidation.js"; _context.ConsolidateScripts = true; _groupElement.Exclude.AddPattern(mySecondScript); var secondGroupElement = new ScriptGroupElement(); _context.ScriptGroups.Add(secondGroupElement); secondGroupElement.ConsolidatedUrl = secondGroupUrl; _registry.Require(mySecondScript); string scriptToInclude = _registry.GetIncludes().Single(); Assert.That(scriptToInclude, Is.EqualTo(secondGroupUrl).IgnoreCase); }
public void AfterPreConsolidatedReportIsLoaded_WhenUrlForFileThatDoesNotExistButWhosePatternMatchesGroup_ItsGroupUrlCanStillBeResolved() { var group = new ScriptGroupElement(); group.ConsolidatedUrl = "~/scripts/consolidated/common.js"; group.Include.AddPattern("~/scripts/.+"); _context.ScriptGroups.Add(group); var preConsolidationReport = new PreCompilationReport(); var scriptGroup = new PreCompiledResourceGroup { ConsolidatedUrl = "~/scripts/consolidated/common.js", Resources = new List<string> { "~/scripts/myscript.js" } }; preConsolidationReport.Scripts.Groups.Add(scriptGroup); _context.LoadPreCompilationReport(preConsolidationReport); var resolvedUrl = _context.ScriptPathResolver.GetMatchingGroupUrls("~/scripts/bogusscript.js").Single(); resolvedUrl.ShouldEqual("~/scripts/consolidated/common.js"); }
public void WhenTwoScriptsMappingToTheSameGroupAreRequiredInTwoSeparateRegistries_TheGroupIsOnlyIncludedInOneRegistry() { var scriptA = _finder.CreateResource("~/scriptA.js"); var scriptB = _finder.CreateResource("~/scriptB.js"); var group = new ScriptGroupElement(); group.ConsolidatedUrl = "~/groups.js"; group.Include.AddPath(scriptA.VirtualPath); group.Include.AddPath(scriptB.VirtualPath); _context.ScriptGroups.Add(group); var scriptRegistry1 = _accessor.ScriptRegistry; scriptRegistry1.Require(scriptA.VirtualPath); var scriptRegistry2 = _accessor.NamedScriptRegistry("another"); scriptRegistry2.Require(scriptB.VirtualPath); var includedScripts1 = scriptRegistry1.GetIncludes().ToList(); includedScripts1.CountShouldEqual(1); includedScripts1[0].ShouldEqual(group.ConsolidatedUrl); scriptRegistry2.GetIncludes().CountShouldEqual(0); }
public void WhenAScriptIsRequiredThatIsPartOfAGroupAlreadyClaimed_ItIsIgnored() { var scriptA = _finder.CreateResource("~/scriptA.js"); var scriptB = _finder.CreateResource("~/scriptB.js"); var group = new ScriptGroupElement(); group.ConsolidatedUrl = "~/groups.js"; group.Include.AddPath(scriptA.VirtualPath); group.Include.AddPath(scriptB.VirtualPath); _context.ScriptGroups.Add(group); var scriptRegistry1 = _accessor.ScriptRegistry; scriptRegistry1.Require(scriptA.VirtualPath); var includedScripts1 = scriptRegistry1.GetIncludes().ToList(); includedScripts1.CountShouldEqual(1); includedScripts1[0].ShouldEqual(group.ConsolidatedUrl); var scriptRegistry2 = _accessor.NamedScriptRegistry("another"); scriptRegistry2.Require(scriptB.VirtualPath); scriptRegistry2.GetIncludes().CountShouldEqual(0); }
public void WhenGroupUrlIsRequiredThatMatchesThePatternOfAPreviousGroup_TheGroupUrlIsReturned() { var anotherGroup = new ScriptGroupElement(); anotherGroup.ConsolidatedUrl = "~/another_consolidated_url.js"; anotherGroup.Include.AddPath(myScript); _context.ScriptGroups.Add(anotherGroup); _groupElement.Include.AddPattern("another_consolidated_url"); _registry.Require(anotherGroup.ConsolidatedUrl); var resolvedScriptPath = _registry.GetIncludes().Single(); resolvedScriptPath.ShouldEqual(anotherGroup.ConsolidatedUrl); }
public void WhenGroupUrlIsPassedIntoGetResourceUrlAndConsolidationIsEnabled_GroupUrlIsReturned() { _groupElement.Include.AddPattern("~/Scripts/.+"); var secondGroup = new ScriptGroupElement(); secondGroup.ConsolidatedUrl = "~/Scripts/Consolidated/SecondGroup.js"; _context.ScriptGroups.Add(secondGroup); _registry.Require(secondGroup.ConsolidatedUrl); var resolvedScriptPath = _registry.GetIncludes().Single(); resolvedScriptPath.ShouldEqual(secondGroup.ConsolidatedUrl); }
public void Init() { _finder = new StubResourceFinder(); _finder.CreateResource(myScript); _finder.CreateResource(mySecondScript); _finder.CreateResource(excludedScript); _dependencyProvider = new StubDependencyProvider(); DependencyManagerFactory.ClearDependencyCache(); _context = AssmanContext.Create(ResourceMode.Debug); _context.ConsolidateScripts = true; _context.ConfigurationLastModified = DateTime.MinValue; _context.AddFinder(_finder); _context.MapExtensionToDependencyProvider(".js", _dependencyProvider); _groupElement = new ScriptGroupElement(); _groupElement.ConsolidatedUrl = consolidatedScript; _groupElement.Exclude.AddPattern(excludedScript); _context.ScriptGroups.Add(_groupElement); _registry = new ConsolidatingResourceRegistry(new ResourceRequirementCollection(), "Default", _context.ScriptPathResolver, new ConfiguredVersioningStrategy(() => _context.Version)); }