Removing _PageStart.cshtml
Pages now also use _ViewStart.cshtml Also contains some naming/text cleanup that was missed in the previous commit.
This commit is contained in:
parent
c6e4609096
commit
4032de064e
|
|
@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
|
||||||
pageContext.ViewData.Model = result.Model;
|
pageContext.ViewData.Model = result.Model;
|
||||||
}
|
}
|
||||||
|
|
||||||
var view = new RazorView(_razorViewEngine, _razorPageActivator, pageContext.PageStarts, result.Page, _htmlEncoder);
|
var view = new RazorView(_razorViewEngine, _razorPageActivator, pageContext.ViewStarts, result.Page, _htmlEncoder);
|
||||||
pageContext.View = view;
|
pageContext.View = view;
|
||||||
return ExecuteAsync(pageContext, result.ContentType, result.StatusCode);
|
return ExecuteAsync(pageContext, result.ContentType, result.StatusCode);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -307,22 +307,22 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
_pageContext.Page = _page;
|
_pageContext.Page = _page;
|
||||||
_pageContext.ValueProviderFactories = _valueProviderFactories;
|
_pageContext.ValueProviderFactories = _valueProviderFactories;
|
||||||
|
|
||||||
IRazorPage[] pageStarts;
|
IRazorPage[] viewStarts;
|
||||||
|
|
||||||
if (CacheEntry.PageStartFactories == null || CacheEntry.PageStartFactories.Count == 0)
|
if (CacheEntry.ViewStartFactories == null || CacheEntry.ViewStartFactories.Count == 0)
|
||||||
{
|
{
|
||||||
pageStarts = Array.Empty<IRazorPage>();
|
viewStarts = Array.Empty<IRazorPage>();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pageStarts = new IRazorPage[CacheEntry.PageStartFactories.Count];
|
viewStarts = new IRazorPage[CacheEntry.ViewStartFactories.Count];
|
||||||
for (var i = 0; i < pageStarts.Length; i++)
|
for (var i = 0; i < viewStarts.Length; i++)
|
||||||
{
|
{
|
||||||
var pageFactory = CacheEntry.PageStartFactories[i];
|
var pageFactory = CacheEntry.ViewStartFactories[i];
|
||||||
pageStarts[i] = pageFactory();
|
viewStarts[i] = pageFactory();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_pageContext.PageStarts = pageStarts;
|
_pageContext.ViewStarts = viewStarts;
|
||||||
|
|
||||||
if (actionDescriptor.ModelTypeInfo == null)
|
if (actionDescriptor.ModelTypeInfo == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
Func<PageContext, object> modelFactory,
|
Func<PageContext, object> modelFactory,
|
||||||
Action<PageContext, object> releaseModel,
|
Action<PageContext, object> releaseModel,
|
||||||
Func<Page, object, Task> propertyBinder,
|
Func<Page, object, Task> propertyBinder,
|
||||||
IReadOnlyList<Func<IRazorPage>> pageStartFactories,
|
IReadOnlyList<Func<IRazorPage>> viewStartFactories,
|
||||||
FilterItem[] cacheableFilters)
|
FilterItem[] cacheableFilters)
|
||||||
{
|
{
|
||||||
ActionDescriptor = actionDescriptor;
|
ActionDescriptor = actionDescriptor;
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
ModelFactory = modelFactory;
|
ModelFactory = modelFactory;
|
||||||
ReleaseModel = releaseModel;
|
ReleaseModel = releaseModel;
|
||||||
PropertyBinder = propertyBinder;
|
PropertyBinder = propertyBinder;
|
||||||
PageStartFactories = pageStartFactories;
|
ViewStartFactories = viewStartFactories;
|
||||||
CacheableFilters = cacheableFilters;
|
CacheableFilters = cacheableFilters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -54,9 +54,9 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
public Func<Page, object, Task> PropertyBinder { get; }
|
public Func<Page, object, Task> PropertyBinder { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the applicable PageStarts.
|
/// Gets the applicable ViewStart pages.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IReadOnlyList<Func<IRazorPage>> PageStartFactories { get; }
|
public IReadOnlyList<Func<IRazorPage>> ViewStartFactories { get; }
|
||||||
|
|
||||||
public FilterItem[] CacheableFilters { get; }
|
public FilterItem[] CacheableFilters { get; }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
{
|
{
|
||||||
public class PageActionInvokerProvider : IActionInvokerProvider
|
public class PageActionInvokerProvider : IActionInvokerProvider
|
||||||
{
|
{
|
||||||
private const string PageStartFileName = "_PageStart.cshtml";
|
private const string ViewStartFileName = "_ViewStart.cshtml";
|
||||||
|
|
||||||
private readonly IPageLoader _loader;
|
private readonly IPageLoader _loader;
|
||||||
private readonly IPageFactoryProvider _pageFactoryProvider;
|
private readonly IPageFactoryProvider _pageFactoryProvider;
|
||||||
private readonly IPageModelFactoryProvider _modelFactoryProvider;
|
private readonly IPageModelFactoryProvider _modelFactoryProvider;
|
||||||
|
|
@ -192,7 +193,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
modelReleaser = _modelFactoryProvider.CreateModelDisposer(compiledActionDescriptor);
|
modelReleaser = _modelFactoryProvider.CreateModelDisposer(compiledActionDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageStartFactories = GetPageStartFactories(compiledActionDescriptor);
|
var viewStartFactories = GetViewStartFactories(compiledActionDescriptor);
|
||||||
|
|
||||||
return new PageActionInvokerCacheEntry(
|
return new PageActionInvokerCacheEntry(
|
||||||
compiledActionDescriptor,
|
compiledActionDescriptor,
|
||||||
|
|
@ -201,31 +202,31 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
modelFactory,
|
modelFactory,
|
||||||
modelReleaser,
|
modelReleaser,
|
||||||
propertyBinder,
|
propertyBinder,
|
||||||
pageStartFactories,
|
viewStartFactories,
|
||||||
cachedFilters);
|
cachedFilters);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Internal for testing.
|
// Internal for testing.
|
||||||
internal List<Func<IRazorPage>> GetPageStartFactories(CompiledPageActionDescriptor descriptor)
|
internal List<Func<IRazorPage>> GetViewStartFactories(CompiledPageActionDescriptor descriptor)
|
||||||
{
|
{
|
||||||
var pageStartFactories = new List<Func<IRazorPage>>();
|
var viewStartFactories = new List<Func<IRazorPage>>();
|
||||||
var pageStartItems = _razorProject.FindHierarchicalItems(
|
var viewStartItems = _razorProject.FindHierarchicalItems(
|
||||||
_razorPagesOptions.RootDirectory,
|
_razorPagesOptions.RootDirectory,
|
||||||
descriptor.RelativePath,
|
descriptor.RelativePath,
|
||||||
PageStartFileName);
|
ViewStartFileName);
|
||||||
foreach (var item in pageStartItems)
|
foreach (var item in viewStartItems)
|
||||||
{
|
{
|
||||||
if (item.Exists)
|
if (item.Exists)
|
||||||
{
|
{
|
||||||
var factoryResult = _razorPageFactoryProvider.CreateFactory(item.Path);
|
var factoryResult = _razorPageFactoryProvider.CreateFactory(item.Path);
|
||||||
if (factoryResult.Success)
|
if (factoryResult.Success)
|
||||||
{
|
{
|
||||||
pageStartFactories.Insert(0, factoryResult.RazorPageFactory);
|
viewStartFactories.Insert(0, factoryResult.RazorPageFactory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return pageStartFactories;
|
return viewStartFactories;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Internal for testing.
|
// Internal for testing.
|
||||||
|
|
|
||||||
|
|
@ -79,9 +79,9 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the applicable _PageStart instances.
|
/// Gets or sets the applicable _ViewStart instances.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IReadOnlyList<IRazorPage> PageStarts { get; set; }
|
public IReadOnlyList<IRazorPage> ViewStarts { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the list of <see cref="IValueProviderFactory"/> instances for the current request.
|
/// Gets or sets the list of <see cref="IValueProviderFactory"/> instances for the current request.
|
||||||
|
|
|
||||||
|
|
@ -444,28 +444,28 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task PageStart_IsDiscoveredWhenRootDirectoryIsNotSpecified()
|
public async Task ViewStart_IsDiscoveredWhenRootDirectoryIsNotSpecified()
|
||||||
{
|
{
|
||||||
// Test for https://github.com/aspnet/Mvc/issues/5915
|
// Test for https://github.com/aspnet/Mvc/issues/5915
|
||||||
//Arrange
|
//Arrange
|
||||||
var expected = $"Hello from _PageStart{Environment.NewLine}Hello from /Pages/WithPageStart/Index.cshtml!";
|
var expected = $"Hello from _ViewStart{Environment.NewLine}Hello from /Pages/WithViewStart/Index.cshtml!";
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await Client.GetStringAsync("/Pages/WithPageStart");
|
var response = await Client.GetStringAsync("/Pages/WithViewStart");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expected, response.Trim());
|
Assert.Equal(expected, response.Trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task PageImport_IsDiscoveredWhenRootDirectoryIsNotSpecified()
|
public async Task ViewImport_IsDiscoveredWhenRootDirectoryIsNotSpecified()
|
||||||
{
|
{
|
||||||
// Test for https://github.com/aspnet/Mvc/issues/5915
|
// Test for https://github.com/aspnet/Mvc/issues/5915
|
||||||
// Arrange
|
// Arrange
|
||||||
var expected = "Hello from CustomService!";
|
var expected = "Hello from CustomService!";
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await Client.GetStringAsync("/Pages/WithPageImport");
|
var response = await Client.GetStringAsync("/Pages/WithViewImport");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expected, response.Trim());
|
Assert.Equal(expected, response.Trim());
|
||||||
|
|
|
||||||
|
|
@ -116,28 +116,28 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task PageStart_IsDiscoveredWhenRootDirectoryIsSpecified()
|
public async Task ViewStart_IsDiscoveredWhenRootDirectoryIsSpecified()
|
||||||
{
|
{
|
||||||
// Test for https://github.com/aspnet/Mvc/issues/5915
|
// Test for https://github.com/aspnet/Mvc/issues/5915
|
||||||
//Arrange
|
//Arrange
|
||||||
var expected = $"Hello from _PageStart{Environment.NewLine}Hello from /Pages/WithPageStart/Index.cshtml!";
|
var expected = $"Hello from _ViewStart{Environment.NewLine}Hello from /Pages/WithViewStart/Index.cshtml!";
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await Client.GetStringAsync("/WithPageStart");
|
var response = await Client.GetStringAsync("/WithViewStart");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expected, response.Trim());
|
Assert.Equal(expected, response.Trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task PageImport_IsDiscoveredWhenRootDirectoryIsSpecified()
|
public async Task ViewImport_IsDiscoveredWhenRootDirectoryIsSpecified()
|
||||||
{
|
{
|
||||||
// Test for https://github.com/aspnet/Mvc/issues/5915
|
// Test for https://github.com/aspnet/Mvc/issues/5915
|
||||||
//Arrange
|
//Arrange
|
||||||
var expected = "Hello from CustomService!";
|
var expected = "Hello from CustomService!";
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await Client.GetStringAsync("/WithPageImport");
|
var response = await Client.GetStringAsync("/WithViewImport");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expected, response.Trim());
|
Assert.Equal(expected, response.Trim());
|
||||||
|
|
|
||||||
|
|
@ -240,13 +240,16 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
var razorPageFactoryProvider = new Mock<IRazorPageFactoryProvider>();
|
var razorPageFactoryProvider = new Mock<IRazorPageFactoryProvider>();
|
||||||
Func<IRazorPage> factory1 = () => null;
|
Func<IRazorPage> factory1 = () => null;
|
||||||
Func<IRazorPage> factory2 = () => null;
|
Func<IRazorPage> factory2 = () => null;
|
||||||
razorPageFactoryProvider.Setup(f => f.CreateFactory("/Home/Path1/_PageStart.cshtml"))
|
razorPageFactoryProvider
|
||||||
|
.Setup(f => f.CreateFactory("/Home/Path1/_ViewStart.cshtml"))
|
||||||
.Returns(new RazorPageFactoryResult(factory1, new IChangeToken[0]));
|
.Returns(new RazorPageFactoryResult(factory1, new IChangeToken[0]));
|
||||||
razorPageFactoryProvider.Setup(f => f.CreateFactory("/_PageStart.cshtml"))
|
razorPageFactoryProvider.Setup(f => f.CreateFactory("/_ViewStart.cshtml"))
|
||||||
.Returns(new RazorPageFactoryResult(factory2, new[] { Mock.Of<IChangeToken>() }));
|
.Returns(new RazorPageFactoryResult(factory2, new[] { Mock.Of<IChangeToken>() }));
|
||||||
|
|
||||||
var fileProvider = new TestFileProvider();
|
var fileProvider = new TestFileProvider();
|
||||||
fileProvider.AddFile("/Home/Path1/_PageStart.cshtml", "content1");
|
fileProvider.AddFile("/Home/Path1/_ViewStart.cshtml", "content1");
|
||||||
fileProvider.AddFile("/_PageStart.cshtml", "content2");
|
fileProvider.AddFile("/_ViewStart.cshtml", "content2");
|
||||||
|
|
||||||
var defaultRazorProject = new TestRazorProject(fileProvider);
|
var defaultRazorProject = new TestRazorProject(fileProvider);
|
||||||
|
|
||||||
var invokerProvider = CreateInvokerProvider(
|
var invokerProvider = CreateInvokerProvider(
|
||||||
|
|
@ -264,7 +267,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
Assert.NotNull(context.Result);
|
Assert.NotNull(context.Result);
|
||||||
var actionInvoker = Assert.IsType<PageActionInvoker>(context.Result);
|
var actionInvoker = Assert.IsType<PageActionInvoker>(context.Result);
|
||||||
var entry = actionInvoker.CacheEntry;
|
var entry = actionInvoker.CacheEntry;
|
||||||
Assert.Equal(new[] { factory2, factory1 }, entry.PageStartFactories);
|
Assert.Equal(new[] { factory2, factory1 }, entry.ViewStartFactories);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -606,7 +609,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void GetPageStartFactories_FindsFullHeirarchy()
|
public void GetViewStartFactories_FindsFullHeirarchy()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var descriptor = new PageActionDescriptor()
|
var descriptor = new PageActionDescriptor()
|
||||||
|
|
@ -623,22 +626,22 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
actionDescriptorProvider.Setup(p => p.ActionDescriptors).Returns(descriptorCollection);
|
actionDescriptorProvider.Setup(p => p.ActionDescriptors).Returns(descriptorCollection);
|
||||||
|
|
||||||
var fileProvider = new TestFileProvider();
|
var fileProvider = new TestFileProvider();
|
||||||
fileProvider.AddFile("/View/Deeper/Not_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/View/Deeper/Not_ViewStart.cshtml", "page content");
|
||||||
fileProvider.AddFile("/View/Wrong/_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/View/Wrong/_ViewStart.cshtml", "page content");
|
||||||
fileProvider.AddFile("/_PageStart.cshtml", "page content ");
|
fileProvider.AddFile("/_ViewStart.cshtml", "page content ");
|
||||||
fileProvider.AddFile("/Views/_PageStart.cshtml", "@page starts!");
|
fileProvider.AddFile("/Views/_ViewStart.cshtml", "@page starts!");
|
||||||
fileProvider.AddFile("/Views/Deeper/_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/Views/Deeper/_ViewStart.cshtml", "page content");
|
||||||
|
|
||||||
var razorProject = new TestRazorProject(fileProvider);
|
var razorProject = new TestRazorProject(fileProvider);
|
||||||
|
|
||||||
var mock = new Mock<IRazorPageFactoryProvider>();
|
var mock = new Mock<IRazorPageFactoryProvider>();
|
||||||
mock.Setup(p => p.CreateFactory("/Views/Deeper/_PageStart.cshtml"))
|
mock.Setup(p => p.CreateFactory("/Views/Deeper/_ViewStart.cshtml"))
|
||||||
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
mock.Setup(p => p.CreateFactory("/Views/_PageStart.cshtml"))
|
mock.Setup(p => p.CreateFactory("/Views/_ViewStart.cshtml"))
|
||||||
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
mock.Setup(p => p.CreateFactory("/_PageStart.cshtml"))
|
mock.Setup(p => p.CreateFactory("/_ViewStart.cshtml"))
|
||||||
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var razorPageFactoryProvider = mock.Object;
|
var razorPageFactoryProvider = mock.Object;
|
||||||
|
|
@ -654,7 +657,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
var compiledDescriptor = CreateCompiledPageActionDescriptor(descriptor);
|
var compiledDescriptor = CreateCompiledPageActionDescriptor(descriptor);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var factories = invokerProvider.GetPageStartFactories(compiledDescriptor);
|
var factories = invokerProvider.GetViewStartFactories(compiledDescriptor);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
mock.Verify();
|
mock.Verify();
|
||||||
|
|
@ -663,7 +666,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData("/Pages/Level1/")]
|
[InlineData("/Pages/Level1/")]
|
||||||
[InlineData("/Pages/Level1")]
|
[InlineData("/Pages/Level1")]
|
||||||
public void GetPageFactories_DoesNotFindPageStartsOutsideBaseDirectory(string rootDirectory)
|
public void GetPageFactories_DoesNotFindViewStartsOutsideBaseDirectory(string rootDirectory)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var descriptor = new PageActionDescriptor()
|
var descriptor = new PageActionDescriptor()
|
||||||
|
|
@ -684,19 +687,19 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
actionDescriptorProvider.Setup(p => p.ActionDescriptors).Returns(descriptorCollection);
|
actionDescriptorProvider.Setup(p => p.ActionDescriptors).Returns(descriptorCollection);
|
||||||
|
|
||||||
var fileProvider = new TestFileProvider();
|
var fileProvider = new TestFileProvider();
|
||||||
fileProvider.AddFile("/_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/_ViewStart.cshtml", "page content");
|
||||||
fileProvider.AddFile("/Pages/_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/Pages/_ViewStart.cshtml", "page content");
|
||||||
fileProvider.AddFile("/Pages/Level1/_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/Pages/Level1/_ViewStart.cshtml", "page content");
|
||||||
fileProvider.AddFile("/Pages/Level1/Level2/_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/Pages/Level1/Level2/_ViewStart.cshtml", "page content");
|
||||||
fileProvider.AddFile("/Pages/Level1/Level3/_PageStart.cshtml", "page content");
|
fileProvider.AddFile("/Pages/Level1/Level3/_ViewStart.cshtml", "page content");
|
||||||
|
|
||||||
var razorProject = new TestRazorProject(fileProvider);
|
var razorProject = new TestRazorProject(fileProvider);
|
||||||
|
|
||||||
var mock = new Mock<IRazorPageFactoryProvider>(MockBehavior.Strict);
|
var mock = new Mock<IRazorPageFactoryProvider>(MockBehavior.Strict);
|
||||||
mock.Setup(p => p.CreateFactory("/Pages/Level1/Level2/_PageStart.cshtml"))
|
mock.Setup(p => p.CreateFactory("/Pages/Level1/Level2/_ViewStart.cshtml"))
|
||||||
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
mock.Setup(p => p.CreateFactory("/Pages/Level1/_PageStart.cshtml"))
|
mock.Setup(p => p.CreateFactory("/Pages/Level1/_ViewStart.cshtml"))
|
||||||
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
.Returns(new RazorPageFactoryResult(() => null, new List<IChangeToken>()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var razorPageFactoryProvider = mock.Object;
|
var razorPageFactoryProvider = mock.Object;
|
||||||
|
|
@ -713,14 +716,14 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
razorPagesOptions: options);
|
razorPagesOptions: options);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var factories = invokerProvider.GetPageStartFactories(compiledPageDescriptor);
|
var factories = invokerProvider.GetViewStartFactories(compiledPageDescriptor);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
mock.Verify();
|
mock.Verify();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void GetPageStartFactories_NoFactoriesForMissingFiles()
|
public void GetViewStartFactories_NoFactoriesForMissingFiles()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var descriptor = new PageActionDescriptor()
|
var descriptor = new PageActionDescriptor()
|
||||||
|
|
@ -751,7 +754,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal
|
||||||
var compiledDescriptor = CreateCompiledPageActionDescriptor(descriptor);
|
var compiledDescriptor = CreateCompiledPageActionDescriptor(descriptor);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var factories = invokerProvider.GetPageStartFactories(compiledDescriptor);
|
var factories = invokerProvider.GetViewStartFactories(compiledDescriptor);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Empty(factories);
|
Assert.Empty(factories);
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Hello from _PageStart
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Hello from _ViewStart
|
||||||
Loading…
Reference in New Issue