Include default imports when ImportsFileName is null
This commit is contained in:
parent
aa597309a2
commit
310ccc31d0
|
|
@ -188,20 +188,19 @@ namespace Microsoft.AspNetCore.Razor.Evolution
|
||||||
throw new InvalidOperationException(Resources.FormatRazorTemplateEngine_ItemCouldNotBeFound(projectItem.Path));
|
throw new InvalidOperationException(Resources.FormatRazorTemplateEngine_ItemCouldNotBeFound(projectItem.Path));
|
||||||
}
|
}
|
||||||
|
|
||||||
var importsFileName = Options.ImportsFileName;
|
|
||||||
if (string.IsNullOrEmpty(importsFileName))
|
|
||||||
{
|
|
||||||
return Enumerable.Empty<RazorSourceDocument>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var result = new List<RazorSourceDocument>();
|
var result = new List<RazorSourceDocument>();
|
||||||
var importProjectItems = Project.FindHierarchicalItems(projectItem.Path, importsFileName);
|
|
||||||
foreach (var importItem in importProjectItems)
|
var importsFileName = Options.ImportsFileName;
|
||||||
|
if (!string.IsNullOrEmpty(importsFileName))
|
||||||
{
|
{
|
||||||
if (importItem.Exists)
|
var importProjectItems = Project.FindHierarchicalItems(projectItem.Path, importsFileName);
|
||||||
|
foreach (var importItem in importProjectItems)
|
||||||
{
|
{
|
||||||
// We want items in descending order. FindHierarchicalItems returns items in ascending order.
|
if (importItem.Exists)
|
||||||
result.Insert(0, RazorSourceDocument.ReadFrom(importItem));
|
{
|
||||||
|
// We want items in descending order. FindHierarchicalItems returns items in ascending order.
|
||||||
|
result.Insert(0, RazorSourceDocument.ReadFrom(importItem));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -191,5 +191,29 @@ namespace Microsoft.AspNetCore.Razor.Evolution
|
||||||
import => Assert.Equal("/MyImport.cshtml", import.FileName),
|
import => Assert.Equal("/MyImport.cshtml", import.FileName),
|
||||||
import => Assert.Equal("/Views/Home/MyImport.cshtml", import.FileName));
|
import => Assert.Equal("/Views/Home/MyImport.cshtml", import.FileName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void CreateCodeDocument_NullImportFileName_IncludesDefaultImportIfNotNull()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var projectItem = new TestRazorProjectItem("/Views/Home/Index.cshtml");
|
||||||
|
var project = new TestRazorProject(new[] { projectItem });
|
||||||
|
var razorEngine = RazorEngine.Create();
|
||||||
|
var defaultImport = RazorSourceDocument.ReadFrom(new MemoryStream(), "Default.cshtml");
|
||||||
|
var templateEngine = new RazorTemplateEngine(razorEngine, project)
|
||||||
|
{
|
||||||
|
Options =
|
||||||
|
{
|
||||||
|
DefaultImports = defaultImport,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var codeDocument = templateEngine.CreateCodeDocument(projectItem);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Collection(codeDocument.Imports,
|
||||||
|
import => Assert.Same(defaultImport, import));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue