diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/DependencyInjection/MvcRazorMvcCoreBuilderExtensions.cs b/src/Microsoft.AspNetCore.Mvc.Razor/DependencyInjection/MvcRazorMvcCoreBuilderExtensions.cs index 5f669304fa..69bba1113e 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor/DependencyInjection/MvcRazorMvcCoreBuilderExtensions.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor/DependencyInjection/MvcRazorMvcCoreBuilderExtensions.cs @@ -2,9 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Diagnostics; using System.Linq; -using System.Text.Encodings.Web; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.AspNetCore.Mvc.Razor.Compilation; @@ -16,10 +14,7 @@ using Microsoft.AspNetCore.Razor.Language; using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using CompilationTagHelperFeature = Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature; -using DefaultTagHelperDescriptorProvider = Microsoft.CodeAnalysis.Razor.DefaultTagHelperDescriptorProvider; namespace Microsoft.Extensions.DependencyInjection { @@ -146,19 +141,7 @@ namespace Microsoft.Extensions.DependencyInjection IRazorViewEngineFileProviderAccessor, DefaultRazorViewEngineFileProviderAccessor>(); - services.TryAddSingleton(s => - { - var pageFactory = s.GetRequiredService(); - var pageActivator = s.GetRequiredService(); - var htmlEncoder = s.GetRequiredService(); - var optionsAccessor = s.GetRequiredService>(); - var razorFileSystem = s.GetRequiredService(); - var loggerFactory = s.GetRequiredService(); - var diagnosticSource = s.GetRequiredService(); - - var viewEngine = new RazorViewEngine(pageFactory, pageActivator, htmlEncoder, optionsAccessor, razorFileSystem, loggerFactory, diagnosticSource); - return viewEngine; - }); + services.TryAddSingleton(); services.TryAddSingleton(); // In the default scenario the following services are singleton by virtue of being initialized as part of @@ -168,33 +151,27 @@ namespace Microsoft.Extensions.DependencyInjection // // Razor compilation infrastructure // + services.TryAddSingleton(); + services.TryAddSingleton(); services.TryAddSingleton(); - services.TryAddSingleton(); + services.TryAddSingleton(s => { - var fileSystem = s.GetRequiredService(); - var projectEngine = RazorProjectEngine.Create(RazorConfiguration.Default, fileSystem, builder => + return RazorEngine.Create(b => { - RazorExtensions.Register(builder); + RazorExtensions.Register(b); // Roslyn + TagHelpers infrastructure var metadataReferenceFeature = s.GetRequiredService(); - builder.Features.Add(metadataReferenceFeature); - builder.Features.Add(new CompilationTagHelperFeature()); + b.Features.Add(metadataReferenceFeature); + b.Features.Add(new Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature()); // TagHelperDescriptorProviders (actually do tag helper discovery) - builder.Features.Add(new DefaultTagHelperDescriptorProvider()); - builder.Features.Add(new ViewComponentTagHelperDescriptorProvider()); + b.Features.Add(new Microsoft.CodeAnalysis.Razor.DefaultTagHelperDescriptorProvider()); + b.Features.Add(new ViewComponentTagHelperDescriptorProvider()); }); - - return projectEngine; }); - // Legacy Razor compilation services - services.TryAddSingleton(s => s.GetRequiredService().FileSystem); - services.TryAddSingleton(); - services.TryAddSingleton(s => s.GetRequiredService().Engine); - // This caches Razor page activation details that are valid for the lifetime of the application. services.TryAddSingleton(); diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/ChecksumValidator.cs b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/ChecksumValidator.cs index 4b8b2abdf8..704ae1151f 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/ChecksumValidator.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/ChecksumValidator.cs @@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal // Validates that we can use an existing precompiled view by comparing checksums with files on // disk. - public static bool IsItemValid(RazorProjectFileSystem project, RazorCompiledItem item) + public static bool IsItemValid(RazorProject project, RazorCompiledItem item) { if (project == null) { diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/FileProviderRazorProject.cs b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/FileProviderRazorProject.cs index 52af4ae3f3..2fd32e9ad0 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/FileProviderRazorProject.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/FileProviderRazorProject.cs @@ -10,13 +10,13 @@ using Microsoft.Extensions.FileProviders; namespace Microsoft.AspNetCore.Mvc.Razor.Internal { - public class FileProviderRazorProjectFileSystem : RazorProjectFileSystem + public class FileProviderRazorProject : RazorProject { private const string RazorFileExtension = ".cshtml"; private readonly IFileProvider _provider; private readonly IHostingEnvironment _hostingEnvironment; - public FileProviderRazorProjectFileSystem(IRazorViewEngineFileProviderAccessor accessor, IHostingEnvironment hostingEnviroment) + public FileProviderRazorProject(IRazorViewEngineFileProviderAccessor accessor, IHostingEnvironment hostingEnviroment) { if (accessor == null) { diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompiler.cs b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompiler.cs index 857dd60ad1..ea5a99e97b 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompiler.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompiler.cs @@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal private readonly Dictionary _precompiledViews; private readonly ConcurrentDictionary _normalizedPathCache; private readonly IFileProvider _fileProvider; - private readonly RazorProjectEngine _projectEngine; + private readonly RazorTemplateEngine _templateEngine; private readonly Action _compilationCallback; private readonly ILogger _logger; private readonly CSharpCompiler _csharpCompiler; @@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal public RazorViewCompiler( IFileProvider fileProvider, - RazorProjectEngine projectEngine, + RazorTemplateEngine templateEngine, CSharpCompiler csharpCompiler, Action compilationCallback, IList precompiledViews, @@ -50,9 +50,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal throw new ArgumentNullException(nameof(fileProvider)); } - if (projectEngine == null) + if (templateEngine == null) { - throw new ArgumentNullException(nameof(projectEngine)); + throw new ArgumentNullException(nameof(templateEngine)); } if (csharpCompiler == null) @@ -76,7 +76,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal } _fileProvider = fileProvider; - _projectEngine = projectEngine; + _templateEngine = templateEngine; _csharpCompiler = csharpCompiler; _compilationCallback = compilationCallback; _logger = logger; @@ -195,7 +195,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal Debug.Assert(taskSource != null); if (item.Descriptor?.Item != null && - ChecksumValidator.IsItemValid(_projectEngine.FileSystem, item.Descriptor.Item)) + ChecksumValidator.IsItemValid(_templateEngine.Project, item.Descriptor.Item)) { // If the item has checksums to validate, we should also have a precompiled view. Debug.Assert(item.Descriptor != null); @@ -281,7 +281,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal _fileProvider.Watch(normalizedPath), }; - var projectItem = _projectEngine.FileSystem.GetItem(normalizedPath); + var projectItem = _templateEngine.Project.GetItem(normalizedPath); if (!projectItem.Exists) { // If the file doesn't exist, we can't do compilation right now - we still want to cache @@ -305,20 +305,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal // OK this means we can do compilation. For now let's just identify the other files we need to watch // so we can create the cache entry. Compilation will happen after we release the lock. - - var importFeature = _projectEngine.ProjectFeatures.OfType().FirstOrDefault(); - - // There should always be an import feature unless someone has misconfigured their RazorProjectEngine. - // In that case once we attempt to parse the Razor file we'll explode and give the a user a decent - // error message; for now, lets just be extra protective and assume 0 imports to not give a bad error. - var imports = importFeature?.GetImports(projectItem) ?? Enumerable.Empty(); - var physicalImports = imports.Where(import => import.FilePath != null); - - // Now that we have non-dynamic imports we need to get their RazorProjectItem equivalents so we have their - // physical file paths (according to the FileSystem). - foreach (var physicalImport in physicalImports) + foreach (var importItem in _templateEngine.GetImportItems(projectItem)) { - expirationTokens.Add(_fileProvider.Watch(physicalImport.FilePath)); + expirationTokens.Add(_fileProvider.Watch(importItem.FilePath)); } return new ViewCompilerWorkItem() @@ -332,9 +321,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal protected virtual CompiledViewDescriptor CompileAndEmit(string relativePath) { - var projectItem = _projectEngine.FileSystem.GetItem(relativePath); - var codeDocument = _projectEngine.Process(projectItem); - var cSharpDocument = codeDocument.GetCSharpDocument(); + var codeDocument = _templateEngine.CreateCodeDocument(relativePath); + var cSharpDocument = _templateEngine.GenerateCode(codeDocument); if (cSharpDocument.Diagnostics.Count > 0) { diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompilerProvider.cs b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompilerProvider.cs index c705a88aac..b435a9e186 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompilerProvider.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor/Internal/RazorViewCompilerProvider.cs @@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal { public class RazorViewCompilerProvider : IViewCompilerProvider { - private readonly RazorProjectEngine _razorProjectEngine; + private readonly RazorTemplateEngine _razorTemplateEngine; private readonly ApplicationPartManager _applicationPartManager; private readonly IRazorViewEngineFileProviderAccessor _fileProviderAccessor; private readonly CSharpCompiler _csharpCompiler; @@ -28,14 +28,14 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal public RazorViewCompilerProvider( ApplicationPartManager applicationPartManager, - RazorProjectEngine razorProjectEngine, + RazorTemplateEngine razorTemplateEngine, IRazorViewEngineFileProviderAccessor fileProviderAccessor, CSharpCompiler csharpCompiler, IOptions viewEngineOptionsAccessor, ILoggerFactory loggerFactory) { _applicationPartManager = applicationPartManager; - _razorProjectEngine = razorProjectEngine; + _razorTemplateEngine = razorTemplateEngine; _fileProviderAccessor = fileProviderAccessor; _csharpCompiler = csharpCompiler; _viewEngineOptions = viewEngineOptionsAccessor.Value; @@ -70,7 +70,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal return new RazorViewCompiler( _fileProviderAccessor.FileProvider, - _razorProjectEngine, + _razorTemplateEngine, _csharpCompiler, _viewEngineOptions.CompilationCallback, feature.ViewDescriptors, diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngine.cs b/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngine.cs index 8d929fb883..ec594946e2 100644 --- a/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngine.cs +++ b/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngine.cs @@ -43,13 +43,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor private readonly HtmlEncoder _htmlEncoder; private readonly ILogger _logger; private readonly RazorViewEngineOptions _options; - private readonly RazorProject _razorFileSystem; + private readonly RazorProject _razorProject; private readonly DiagnosticSource _diagnosticSource; /// /// Initializes a new instance of the . /// - [Obsolete("This constructor is obsolete and will be removed in a future version.")] public RazorViewEngine( IRazorPageFactoryProvider pageFactory, IRazorPageActivator pageActivator, @@ -79,28 +78,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor _pageActivator = pageActivator; _htmlEncoder = htmlEncoder; _logger = loggerFactory.CreateLogger(); - _razorFileSystem = razorProject; + _razorProject = razorProject; _diagnosticSource = diagnosticSource; ViewLookupCache = new MemoryCache(new MemoryCacheOptions()); } - /// - /// Initializes a new instance of the RazorViewEngine - /// - public RazorViewEngine( - IRazorPageFactoryProvider pageFactory, - IRazorPageActivator pageActivator, - HtmlEncoder htmlEncoder, - IOptions optionsAccessor, - RazorProjectFileSystem razorFileSystem, - ILoggerFactory loggerFactory, - DiagnosticSource diagnosticSource) -#pragma warning disable CS0618 // Type or member is obsolete - : this (pageFactory, pageActivator, htmlEncoder, optionsAccessor, (RazorProject)razorFileSystem, loggerFactory, diagnosticSource) -#pragma warning restore CS0618 // Type or member is obsolete - { - } - /// /// A cache for results of view lookups. /// @@ -459,7 +441,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor { var viewStartPages = new List(); - foreach (var viewStartProjectItem in _razorFileSystem.FindHierarchicalItems(path, ViewStartFileName)) + foreach (var viewStartProjectItem in _razorProject.FindHierarchicalItems(path, ViewStartFileName)) { var result = _pageFactory.CreateFactory(viewStartProjectItem.FilePath); var viewDescriptor = result.ViewDescriptor; diff --git a/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/CompiledPageRouteModelProvider.cs b/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/CompiledPageRouteModelProvider.cs index 94ca98b2b2..d31163d58e 100644 --- a/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/CompiledPageRouteModelProvider.cs +++ b/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/CompiledPageRouteModelProvider.cs @@ -19,20 +19,20 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal { private readonly ApplicationPartManager _applicationManager; private readonly RazorPagesOptions _pagesOptions; - private readonly RazorProjectEngine _razorProjectEngine; + private readonly RazorTemplateEngine _templateEngine; private readonly ILogger _logger; private readonly PageRouteModelFactory _routeModelFactory; public CompiledPageRouteModelProvider( ApplicationPartManager applicationManager, IOptions pagesOptionsAccessor, - RazorProjectEngine razorProjectEngine, + RazorTemplateEngine templateEngine, ILogger logger) { _applicationManager = applicationManager ?? throw new ArgumentNullException(nameof(applicationManager)); _pagesOptions = pagesOptionsAccessor?.Value ?? throw new ArgumentNullException(nameof(pagesOptionsAccessor)); - _razorProjectEngine = razorProjectEngine ?? throw new ArgumentNullException(nameof(razorProjectEngine)); - _logger = logger ?? throw new ArgumentNullException(nameof(razorProjectEngine)); + _templateEngine = templateEngine ?? throw new ArgumentNullException(nameof(templateEngine)); + _logger = logger ?? throw new ArgumentNullException(nameof(templateEngine)); _routeModelFactory = new PageRouteModelFactory(_pagesOptions, _logger); } @@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal foreach (var viewDescriptor in GetViewDescriptors(_applicationManager)) { - if (viewDescriptor.Item != null && !ChecksumValidator.IsItemValid(_razorProjectEngine.FileSystem, viewDescriptor.Item)) + if (viewDescriptor.Item != null && !ChecksumValidator.IsItemValid(_templateEngine.Project, viewDescriptor.Item)) { // If we get here, this compiled Page has different local content, so ignore it. continue; diff --git a/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/PageActionInvokerProvider.cs b/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/PageActionInvokerProvider.cs index a474bf6ad8..04ad0dcc51 100644 --- a/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/PageActionInvokerProvider.cs +++ b/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/PageActionInvokerProvider.cs @@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal private readonly ITempDataDictionaryFactory _tempDataFactory; private readonly HtmlHelperOptions _htmlHelperOptions; private readonly IPageHandlerMethodSelector _selector; - private readonly RazorProjectFileSystem _razorFileSystem; + private readonly RazorProject _razorProject; private readonly DiagnosticSource _diagnosticSource; private readonly ILogger _logger; private volatile InnerCache _currentCache; @@ -58,7 +58,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal IOptions mvcOptions, IOptions htmlHelperOptions, IPageHandlerMethodSelector selector, - RazorProjectFileSystem razorFileSystem, + RazorProject razorProject, DiagnosticSource diagnosticSource, ILoggerFactory loggerFactory) { @@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal _tempDataFactory = tempDataFactory; _htmlHelperOptions = htmlHelperOptions.Value; _selector = selector; - _razorFileSystem = razorFileSystem; + _razorProject = razorProject; _diagnosticSource = diagnosticSource; _logger = loggerFactory.CreateLogger(); } @@ -213,7 +213,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal { var viewStartFactories = new List>(); // Always pick up all _ViewStarts, including the ones outside the Pages root. - var viewStartItems = _razorFileSystem.FindHierarchicalItems( + var viewStartItems = _razorProject.FindHierarchicalItems( descriptor.RelativePath, ViewStartFileName); foreach (var item in viewStartItems) diff --git a/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/RazorProjectPageRouteModelProvider.cs b/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/RazorProjectPageRouteModelProvider.cs index 50276f8dbe..a6201331bd 100644 --- a/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/RazorProjectPageRouteModelProvider.cs +++ b/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/RazorProjectPageRouteModelProvider.cs @@ -13,17 +13,17 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal { public class RazorProjectPageRouteModelProvider : IPageRouteModelProvider { - private readonly RazorProjectFileSystem _razorFileSystem; + private readonly RazorProject _project; private readonly RazorPagesOptions _pagesOptions; private readonly PageRouteModelFactory _routeModelFactory; private readonly ILogger _logger; public RazorProjectPageRouteModelProvider( - RazorProjectFileSystem razorFileSystem, + RazorProject razorProject, IOptions pagesOptionsAccessor, ILoggerFactory loggerFactory) { - _razorFileSystem = razorFileSystem; + _project = razorProject; _pagesOptions = pagesOptionsAccessor.Value; _logger = loggerFactory.CreateLogger(); _routeModelFactory = new PageRouteModelFactory(_pagesOptions, _logger); @@ -60,7 +60,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal normalizedAreaRootDirectory += "/"; } - foreach (var item in _razorFileSystem.EnumerateItems(_pagesOptions.RootDirectory)) + foreach (var item in _project.EnumerateItems(_pagesOptions.RootDirectory)) { if (!IsRouteable(item)) { @@ -102,7 +102,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal private void AddAreaPageModels(PageRouteModelProviderContext context) { - foreach (var item in _razorFileSystem.EnumerateItems(_pagesOptions.AreaRootDirectory)) + foreach (var item in _project.EnumerateItems(_pagesOptions.AreaRootDirectory)) { if (!IsRouteable(item)) { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/ChecksumValidatorTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/ChecksumValidatorTest.cs index 22b52f8b7a..1a27d231cd 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/ChecksumValidatorTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/ChecksumValidatorTest.cs @@ -15,12 +15,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal public ChecksumValidatorTest() { FileProvider = new TestFileProvider(); - FileSystem = new FileProviderRazorProjectFileSystem( + Project = new FileProviderRazorProject( Mock.Of(a => a.FileProvider == FileProvider), Mock.Of(e => e.ContentRootPath == "BasePath")); } - public RazorProjectFileSystem FileSystem { get; } + public RazorProject Project { get; } public TestFileProvider FileProvider { get; } @@ -77,7 +77,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var item = new TestRazorCompiledItem(typeof(string), "mvc.1.0.view", "/Views/Home/Index.cstml", new object[] { }); // Act - var result = ChecksumValidator.IsItemValid(FileSystem, item); + var result = ChecksumValidator.IsItemValid(Project, item); // Assert Assert.True(result); @@ -94,7 +94,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal }); // Act - var result = ChecksumValidator.IsItemValid(FileSystem, item); + var result = ChecksumValidator.IsItemValid(Project, item); // Assert Assert.True(result); @@ -113,7 +113,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal FileProvider.AddFile("/Views/Home/_ViewImports.cstml", "dkdkfkdf"); // This will be ignored // Act - var result = ChecksumValidator.IsItemValid(FileSystem, item); + var result = ChecksumValidator.IsItemValid(Project, item); // Assert Assert.True(result); @@ -132,7 +132,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal FileProvider.AddFile("/Views/Home/Index.cstml", "other content"); // Act - var result = ChecksumValidator.IsItemValid(FileSystem, item); + var result = ChecksumValidator.IsItemValid(Project, item); // Assert Assert.False(result); @@ -151,7 +151,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal FileProvider.AddFile("/Views/Home/Index.cstml", "some content"); // Act - var result = ChecksumValidator.IsItemValid(FileSystem, item); + var result = ChecksumValidator.IsItemValid(Project, item); // Assert Assert.False(result); @@ -171,7 +171,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal FileProvider.AddFile("/Views/Home/_ViewImports.cstml", "some other import"); // Act - var result = ChecksumValidator.IsItemValid(FileSystem, item); + var result = ChecksumValidator.IsItemValid(Project, item); // Assert Assert.False(result); @@ -193,7 +193,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal FileProvider.AddFile("/Views/_ViewImports.cstml", "some other import"); // Act - var result = ChecksumValidator.IsItemValid(FileSystem, item); + var result = ChecksumValidator.IsItemValid(Project, item); // Assert Assert.True(result); diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/CompilerFailedExceptionFactoryTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/CompilerFailedExceptionFactoryTest.cs index bc7cac8920..56d5a54412 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/CompilerFailedExceptionFactoryTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/CompilerFailedExceptionFactoryTest.cs @@ -28,9 +28,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal fileProvider.AddFile(viewPath, ""); var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment); + var razorProject = new FileProviderRazorProject(accessor, _hostingEnvironment); - var templateEngine = new MvcRazorTemplateEngine(razorEngine, fileSystem); + var templateEngine = new MvcRazorTemplateEngine(razorEngine, razorProject); var codeDocument = templateEngine.CreateCodeDocument(viewPath); // Act @@ -62,8 +62,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); var razorEngine = RazorEngine.Create(); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment); - var templateEngine = new MvcRazorTemplateEngine(razorEngine, fileSystem); + var razorProject = new FileProviderRazorProject(accessor, _hostingEnvironment); + var templateEngine = new MvcRazorTemplateEngine(razorEngine, razorProject); var codeDocument = templateEngine.CreateCodeDocument(viewPath); @@ -94,8 +94,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal fileProvider.AddFile(viewPath, fileContent); var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment); - var templateEngine = new MvcRazorTemplateEngine(razorEngine, fileSystem); + var razorProject = new FileProviderRazorProject(accessor, _hostingEnvironment); + var templateEngine = new MvcRazorTemplateEngine(razorEngine, razorProject); var codeDocument = templateEngine.CreateCodeDocument(viewPath); @@ -124,8 +124,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); var razorEngine = RazorEngine.Create(); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment); - var templateEngine = new MvcRazorTemplateEngine(razorEngine, fileSystem) + var razorProject = new FileProviderRazorProject(accessor, _hostingEnvironment); + var templateEngine = new MvcRazorTemplateEngine(razorEngine, razorProject) { Options = { diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/FileProviderRazorProjectFileSystemTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/FileProviderRazorProjectTest.cs similarity index 87% rename from test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/FileProviderRazorProjectFileSystemTest.cs rename to test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/FileProviderRazorProjectTest.cs index e2f8846111..8642206778 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/FileProviderRazorProjectFileSystemTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/FileProviderRazorProjectTest.cs @@ -10,7 +10,7 @@ using Xunit; namespace Microsoft.AspNetCore.Mvc.Razor.Internal { - public class FileProviderRazorProjectFileSystemTest + public class FileProviderRazorProjectTest { [Fact] public void EnumerateFiles_ReturnsEmptySequenceIfNoCshtmlFilesArePresent() @@ -23,10 +23,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); // Act - var razorFiles = fileSystem.EnumerateItems("/"); + var razorFiles = razorProject.EnumerateItems("/"); // Assert Assert.Empty(razorFiles); @@ -44,10 +44,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); // Act - var razorFiles = fileSystem.EnumerateItems("/"); + var razorFiles = razorProject.EnumerateItems("/"); // Assert Assert.Collection( @@ -98,10 +98,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); // Act - var razorFiles = fileSystem.EnumerateItems("/"); + var razorFiles = razorProject.EnumerateItems("/"); // Assert Assert.Collection(razorFiles.OrderBy(f => f.FilePath), @@ -165,10 +165,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); // Act - var razorFiles = fileSystem.EnumerateItems("/Level1-Dir1"); + var razorFiles = razorProject.EnumerateItems("/Level1-Dir1"); // Assert Assert.Collection(razorFiles.OrderBy(f => f.FilePath), @@ -199,10 +199,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); // Act - var item = fileSystem.GetItem("/File3.cshtml"); + var item = razorProject.GetItem("/File3.cshtml"); // Assert Assert.True(item.Exists); @@ -223,10 +223,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); // Act - var item = fileSystem.GetItem("/File3.cshtml"); + var item = razorProject.GetItem("/File3.cshtml"); // Assert Assert.True(item.Exists); @@ -245,10 +245,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal fileProvider.AddDirectoryContent("/", new IFileInfo[] { file }); var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of(e => e.ContentRootPath == "BasePath")); // Act - var item = fileSystem.GetItem("/NotFound.cshtml"); + var item = razorProject.GetItem("/NotFound.cshtml"); // Assert Assert.False(item.Exists); diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerProviderTest.cs index c00237b990..fd6bc9798d 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerProviderTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerProviderTest.cs @@ -33,9 +33,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal var provider = new RazorViewCompilerProvider( partManager, - RazorProjectEngine.Create( - RazorConfiguration.Default, - new FileProviderRazorProjectFileSystem(accessor, Mock.Of())), + new RazorTemplateEngine( + RazorEngine.Create(), + new FileProviderRazorProject(accessor, Mock.Of())), accessor, new CSharpCompiler(referenceManager, Mock.Of()), options, diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerTest.cs index b75fd3fdfb..5ad82ca791 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/Internal/RazorViewCompilerTest.cs @@ -8,7 +8,6 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.ApplicationParts; using Microsoft.AspNetCore.Mvc.Razor.Compilation; -using Microsoft.AspNetCore.Mvc.Razor.Extensions; using Microsoft.AspNetCore.Razor.Hosting; using Microsoft.AspNetCore.Razor.Language; using Microsoft.CodeAnalysis; @@ -80,9 +79,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal Assert.Collection( result.ExpirationTokens, token => Assert.Same(fileProvider.GetChangeToken(path), token), - token => Assert.Same(fileProvider.GetChangeToken("/_ViewImports.cshtml"), token), + token => Assert.Same(fileProvider.GetChangeToken("/file/exists/_ViewImports.cshtml"), token), token => Assert.Same(fileProvider.GetChangeToken("/file/_ViewImports.cshtml"), token), - token => Assert.Same(fileProvider.GetChangeToken("/file/exists/_ViewImports.cshtml"), token)); + token => Assert.Same(fileProvider.GetChangeToken("/_ViewImports.cshtml"), token)); } [Theory] @@ -823,14 +822,17 @@ this should fail"; precompiledViews = precompiledViews ?? Array.Empty(); var hostingEnvironment = Mock.Of(e => e.ContentRootPath == "BasePath"); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, hostingEnvironment); - var projectEngine = RazorProjectEngine.Create(RazorConfiguration.Default, fileSystem, builder => + var projectSystem = new FileProviderRazorProject(accessor, hostingEnvironment); + var templateEngine = new RazorTemplateEngine(RazorEngine.Create(), projectSystem) { - RazorExtensions.Register(builder); - }); + Options = + { + ImportsFileName = "_ViewImports.cshtml", + } + }; var viewCompiler = new TestRazorViewCompiler( fileProvider, - projectEngine, + templateEngine, new CSharpCompiler(referenceManager, hostingEnvironment), compilationCallback, precompiledViews); @@ -841,12 +843,12 @@ this should fail"; { public TestRazorViewCompiler( TestFileProvider fileProvider, - RazorProjectEngine projectEngine, + RazorTemplateEngine templateEngine, CSharpCompiler csharpCompiler, Action compilationCallback, IList precompiledViews, Func compile = null) : - base(fileProvider, projectEngine, csharpCompiler, compilationCallback, precompiledViews, NullLogger.Instance) + base(fileProvider, templateEngine, csharpCompiler, compilationCallback, precompiledViews, NullLogger.Instance) { Compile = compile; if (Compile == null) diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorViewEngineTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorViewEngineTest.cs index 9874cbfcba..e49434ba3b 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorViewEngineTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorViewEngineTest.cs @@ -935,8 +935,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor var fileProvider = new TestFileProvider(); var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of()); - var viewEngine = CreateViewEngine(pageFactory.Object, fileSystem: fileSystem); + var razorProject = new FileProviderRazorProject(accessor, Mock.Of()); + var viewEngine = CreateViewEngine(pageFactory.Object, razorProject: razorProject); var context = GetActionContext(_controllerTestContext); // Act 1 @@ -1385,7 +1385,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor Mock.Of(), new HtmlTestEncoder(), GetOptionsAccessor(expanders: null), - new FileProviderRazorProjectFileSystem( + new FileProviderRazorProject( Mock.Of(a => a.FileProvider == new TestFileProvider()), Mock.Of()), loggerFactory, @@ -1969,15 +1969,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor private TestableRazorViewEngine CreateViewEngine( IRazorPageFactoryProvider pageFactory = null, IEnumerable expanders = null, - RazorProjectFileSystem fileSystem = null) + RazorProject razorProject = null) { pageFactory = pageFactory ?? Mock.Of(); - if (fileSystem == null) + if (razorProject == null) { var accessor = Mock.Of(a => a.FileProvider == new TestFileProvider()); - fileSystem = new FileProviderRazorProjectFileSystem(accessor, Mock.Of()); + razorProject = new FileProviderRazorProject(accessor, Mock.Of()); } - return new TestableRazorViewEngine(pageFactory, GetOptionsAccessor(expanders), fileSystem); + return new TestableRazorViewEngine(pageFactory, GetOptionsAccessor(expanders), razorProject); } private static IOptions GetOptionsAccessor( @@ -2080,7 +2080,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor : this( pageFactory, optionsAccessor, - new FileProviderRazorProjectFileSystem( + new FileProviderRazorProject( Mock.Of(a => a.FileProvider == new TestFileProvider()), Mock.Of())) { @@ -2089,8 +2089,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor public TestableRazorViewEngine( IRazorPageFactoryProvider pageFactory, IOptions optionsAccessor, - RazorProjectFileSystem fileSystem) - : base(pageFactory, Mock.Of(), new HtmlTestEncoder(), optionsAccessor, fileSystem, NullLoggerFactory.Instance, new DiagnosticListener("Microsoft.AspNetCore.Mvc.Razor")) + RazorProject razorProject) + : base(pageFactory, Mock.Of(), new HtmlTestEncoder(), optionsAccessor, razorProject, NullLoggerFactory.Instance, new DiagnosticListener("Microsoft.AspNetCore.Mvc.Razor")) { } diff --git a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/CompiledPageRouteModelProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/CompiledPageRouteModelProviderTest.cs index 54ffc34a98..b270ee3389 100644 --- a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/CompiledPageRouteModelProviderTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/CompiledPageRouteModelProviderTest.cs @@ -522,15 +522,15 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal { options = options ?? new RazorPagesOptions(); fileProvider = fileProvider ?? new TestFileProvider(); - var fileSystem = new FileProviderRazorProjectFileSystem( + var project = new FileProviderRazorProject( Mock.Of(a => a.FileProvider == fileProvider), Mock.Of(e => e.ContentRootPath == "BasePath")); - var projectEngine = RazorProjectEngine.Create(RazorConfiguration.Default, fileSystem); + var templateEngine = new RazorTemplateEngine(RazorEngine.Create(), project); var provider = new TestCompiledPageRouteModelProvider( new ApplicationPartManager(), Options.Create(options), - projectEngine, + templateEngine, NullLogger.Instance); provider.Descriptors.AddRange(descriptors ?? Array.Empty()); @@ -565,9 +565,9 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal public TestCompiledPageRouteModelProvider( ApplicationPartManager partManager, IOptions options, - RazorProjectEngine projectEngine, + RazorTemplateEngine templateEngine, ILogger logger) - : base(partManager, options, projectEngine, logger) + : base(partManager, options, templateEngine, logger) { } diff --git a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionDescriptorChangeProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionDescriptorChangeProviderTest.cs index 4277327c96..48322b8a06 100644 --- a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionDescriptorChangeProviderTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionDescriptorChangeProviderTest.cs @@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var templateEngine = new RazorTemplateEngine( RazorEngine.Create(), - new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment)); + new FileProviderRazorProject(accessor, _hostingEnvironment)); var options = Options.Create(new RazorPagesOptions()); var changeProvider = new PageActionDescriptorChangeProvider(templateEngine, accessor, options); @@ -52,7 +52,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var templateEngine = new RazorTemplateEngine( RazorEngine.Create(), - new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment)); + new FileProviderRazorProject(accessor, _hostingEnvironment)); var options = Options.Create(new RazorPagesOptions()); options.Value.RootDirectory = rootDirectory; @@ -76,7 +76,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var templateEngine = new RazorTemplateEngine( RazorEngine.Create(), - new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment)); + new FileProviderRazorProject(accessor, _hostingEnvironment)); var options = Options.Create(new RazorPagesOptions { AllowAreas = true }); var changeProvider = new PageActionDescriptorChangeProvider(templateEngine, accessor, options); @@ -100,7 +100,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var templateEngine = new RazorTemplateEngine( RazorEngine.Create(), - new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment)); + new FileProviderRazorProject(accessor, _hostingEnvironment)); var options = Options.Create(new RazorPagesOptions { AllowAreas = true, @@ -124,7 +124,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var templateEngine = new RazorTemplateEngine( RazorEngine.Create(), - new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment)); + new FileProviderRazorProject(accessor, _hostingEnvironment)); templateEngine.Options.ImportsFileName = "_ViewImports.cshtml"; var options = Options.Create(new RazorPagesOptions()); options.Value.RootDirectory = "/dir1/dir2"; @@ -148,7 +148,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var templateEngine = new RazorTemplateEngine( RazorEngine.Create(), - new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment)); + new FileProviderRazorProject(accessor, _hostingEnvironment)); templateEngine.Options.ImportsFileName = "_ViewImports.cshtml"; var options = Options.Create(new RazorPagesOptions()); options.Value.RootDirectory = "/dir1/dir2"; @@ -176,7 +176,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var templateEngine = new RazorTemplateEngine( RazorEngine.Create(), - new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment)); + new FileProviderRazorProject(accessor, _hostingEnvironment)); templateEngine.Options.ImportsFileName = "_ViewImports.cshtml"; var options = Options.Create(new RazorPagesOptions { AllowAreas = false }); diff --git a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionInvokerProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionInvokerProviderTest.cs index d912f32d9a..a63b35257c 100644 --- a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionInvokerProviderTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/PageActionInvokerProviderTest.cs @@ -196,13 +196,13 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal fileProvider.AddFile("/_ViewStart.cshtml", "content2"); var accessor = Mock.Of(a => a.FileProvider == fileProvider); - var defaultFileSystem = new FileProviderRazorProjectFileSystem(accessor, _hostingEnvironment); + var defaultRazorProject = new FileProviderRazorProject(accessor, _hostingEnvironment); var invokerProvider = CreateInvokerProvider( loader.Object, CreateActionDescriptorCollection(descriptor), razorPageFactoryProvider: razorPageFactoryProvider.Object, - fileSystem: defaultFileSystem); + razorProject: defaultRazorProject); var context = new ActionInvokerProviderContext(new ActionContext() { @@ -353,7 +353,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal fileProvider.AddFile("/Pages/Level1/Level2/_ViewStart.cshtml", "page content"); fileProvider.AddFile("/Pages/Level1/Level3/_ViewStart.cshtml", "page content"); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var razorProject = new TestRazorProject(fileProvider, _hostingEnvironment); var mock = new Mock(MockBehavior.Strict); mock @@ -379,7 +379,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal loader.Object, CreateActionDescriptorCollection(descriptor), razorPageFactoryProvider: razorPageFactoryProvider, - fileSystem: fileSystem); + razorProject: razorProject); // Act var factories = invokerProvider.GetViewStartFactories(compiledPageDescriptor); @@ -419,7 +419,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal // No files var fileProvider = new TestFileProvider(); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var razorProject = new TestRazorProject(fileProvider, _hostingEnvironment); var invokerProvider = CreateInvokerProvider( loader.Object, @@ -427,7 +427,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal pageProvider: null, modelProvider: null, razorPageFactoryProvider: pageFactory.Object, - fileSystem: fileSystem); + razorProject: razorProject); var compiledDescriptor = CreateCompiledPageActionDescriptor(descriptor); @@ -473,16 +473,16 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal IPageFactoryProvider pageProvider = null, IPageModelFactoryProvider modelProvider = null, IRazorPageFactoryProvider razorPageFactoryProvider = null, - RazorProjectFileSystem fileSystem = null) + RazorProject razorProject = null) { var tempDataFactory = new Mock(); tempDataFactory .Setup(t => t.GetTempData(It.IsAny())) .Returns((HttpContext context) => new TempDataDictionary(context, Mock.Of())); - if (fileSystem == null) + if (razorProject == null) { - fileSystem = Mock.Of(); + razorProject = Mock.Of(); } var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); @@ -507,7 +507,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal Options.Create(new MvcOptions()), Options.Create(new HtmlHelperOptions()), Mock.Of(), - fileSystem, + razorProject, new DiagnosticListener("Microsoft.AspNetCore"), NullLoggerFactory.Instance); } diff --git a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/RazorProjectPageRouteModelProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/RazorProjectPageRouteModelProviderTest.cs index 6c66cfcc27..8054e21a4f 100644 --- a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/RazorProjectPageRouteModelProviderTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Internal/RazorProjectPageRouteModelProviderTest.cs @@ -29,11 +29,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var dir1 = fileProvider.AddDirectoryContent("/Pages", new IFileInfo[] { file1, file2 }); fileProvider.AddDirectoryContent("/", new[] { dir1 }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions()); optionsManager.Value.RootDirectory = "/"; - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -71,10 +71,10 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var areasDir = fileProvider.AddDirectoryContent("/Areas", new[] { productsDir }); var rootDir = fileProvider.AddDirectoryContent("/", new[] { areasDir }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions { AllowAreas = true }); - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -155,10 +155,10 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var pagesDir = fileProvider.AddDirectoryContent("/Pages", new[] { file4 }); var rootDir = fileProvider.AddDirectoryContent("/", new[] { areasDir, pagesDir }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions { AllowAreas = false }); - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -189,7 +189,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var areasDir = fileProvider.AddDirectoryContent("/Areas", new IFileInfo[] { productsDir, nonConformingFileUnderAreasDirectory }); var rootDir = fileProvider.AddDirectoryContent("/", new IFileInfo[] { areasDir, rootFile }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions { @@ -197,7 +197,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal AreaRootDirectory = "/Areas", AllowAreas = true, }); - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -251,11 +251,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var dir1 = fileProvider.AddDirectoryContent("/Pages", new IFileInfo[] { dir2, file1, file2 }); fileProvider.AddDirectoryContent("/", new[] { dir1 }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions()); optionsManager.Value.RootDirectory = "/"; - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -289,11 +289,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var file = fileProvider.AddFile("/Index.cshtml", "@page \"/custom-route\""); fileProvider.AddDirectoryContent("/", new[] { file }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions()); optionsManager.Value.RootDirectory = "/"; - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -325,11 +325,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal }); fileProvider.AddDirectoryContent("/", new[] { dir1 }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions()); optionsManager.Value.RootDirectory = "/"; - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -363,11 +363,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var rootFile = fileProvider.AddFile("/Index.cshtml", "@page"); fileProvider.AddDirectoryContent("/", new IFileInfo[] { rootFile, dir1, dir2 }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions()); optionsManager.Value.RootDirectory = "/Pages"; - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); // Act @@ -392,11 +392,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Internal var dir1 = fileProvider.AddDirectoryContent("/Pages", new IFileInfo[] { file1, file2 }); fileProvider.AddDirectoryContent("/", new[] { dir1 }); - var fileSystem = new TestRazorProjectFileSystem(fileProvider, _hostingEnvironment); + var project = new TestRazorProject(fileProvider, _hostingEnvironment); var optionsManager = Options.Create(new RazorPagesOptions()); optionsManager.Value.RootDirectory = "/"; - var provider = new RazorProjectPageRouteModelProvider(fileSystem, optionsManager, NullLoggerFactory.Instance); + var provider = new RazorProjectPageRouteModelProvider(project, optionsManager, NullLoggerFactory.Instance); var context = new PageRouteModelProviderContext(); var pageModel = new PageRouteModel("/Pages/Test.cshtml", "/Pages/Test"); context.RouteModels.Add(pageModel); diff --git a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/TestRazorProjectFileSystem.cs b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/TestRazorProject.cs similarity index 81% rename from test/Microsoft.AspNetCore.Mvc.RazorPages.Test/TestRazorProjectFileSystem.cs rename to test/Microsoft.AspNetCore.Mvc.RazorPages.Test/TestRazorProject.cs index 49244b8980..7a8d56bb70 100644 --- a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/TestRazorProjectFileSystem.cs +++ b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/TestRazorProject.cs @@ -8,9 +8,9 @@ using Moq; namespace Microsoft.AspNetCore.Mvc.RazorPages { - public class TestRazorProjectFileSystem : FileProviderRazorProjectFileSystem + public class TestRazorProject : FileProviderRazorProject { - public TestRazorProjectFileSystem(IFileProvider fileProvider, IHostingEnvironment hostingEnvironment) + public TestRazorProject(IFileProvider fileProvider, IHostingEnvironment hostingEnvironment) :base(GetAccessor(fileProvider), hostingEnvironment) { } diff --git a/test/WebSites/RazorPageExecutionInstrumentationWebSite/Startup.cs b/test/WebSites/RazorPageExecutionInstrumentationWebSite/Startup.cs index 120fc741d5..454aedb8e5 100644 --- a/test/WebSites/RazorPageExecutionInstrumentationWebSite/Startup.cs +++ b/test/WebSites/RazorPageExecutionInstrumentationWebSite/Startup.cs @@ -16,7 +16,7 @@ namespace RazorPageExecutionInstrumentationWebSite public void ConfigureServices(IServiceCollection services) { // Normalize line endings to avoid changes in instrumentation locations between systems. - services.AddTransient(); + services.AddTransient(); // Add MVC services to the services container. services.AddMvc(); diff --git a/test/WebSites/RazorPageExecutionInstrumentationWebSite/TestRazorCompilationService.cs b/test/WebSites/RazorPageExecutionInstrumentationWebSite/TestRazorCompilationService.cs index d4171804fb..495ce53a3f 100644 --- a/test/WebSites/RazorPageExecutionInstrumentationWebSite/TestRazorCompilationService.cs +++ b/test/WebSites/RazorPageExecutionInstrumentationWebSite/TestRazorCompilationService.cs @@ -9,9 +9,9 @@ using Microsoft.AspNetCore.Razor.Language; namespace RazorPageExecutionInstrumentationWebSite { - public class TestRazorProjectFileSystem : FileProviderRazorProjectFileSystem + public class TestRazorProject : FileProviderRazorProject { - public TestRazorProjectFileSystem(IRazorViewEngineFileProviderAccessor fileProviderAccessor, IHostingEnvironment hostingEnvironment) + public TestRazorProject(IRazorViewEngineFileProviderAccessor fileProviderAccessor, IHostingEnvironment hostingEnvironment) : base(fileProviderAccessor, hostingEnvironment) { }