diff --git a/.appveyor.yml b/.appveyor.yml
index c2db660b52..fd85abb361 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -1,19 +1,17 @@
init:
- - git config --global core.autocrlf true
+- git config --global core.autocrlf true
branches:
only:
- - master
- - release
- - dev
- - /^(.*\/)?ci-.*$/
- - /^rel\/.*/
+ - dev
+ - /^release\/.*$/
+ - /^(.*\/)?ci-.*$/
build_script:
- - ps: .\run.ps1 default-build
+- ps: .\run.ps1 default-build
clone_depth: 1
environment:
global:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_CLI_TELEMETRY_OPTOUT: 1
-test: off
-deploy: off
+test: 'off'
+deploy: 'off'
os: Visual Studio 2017 Preview
diff --git a/.travis.yml b/.travis.yml
index ceaae0b3b7..28507b93b3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,25 +3,25 @@ sudo: required
dist: trusty
env:
global:
- - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
- - DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
+ - DOTNET_CLI_TELEMETRY_OPTOUT: 1
addons:
apt:
packages:
- - libunwind8
+ - libunwind8
mono: none
os:
- - linux
- - osx
+- linux
+- osx
osx_image: xcode8.2
branches:
only:
- - master
- - release
- - dev
- - /^(.*\/)?ci-.*$/
- - /^rel\/.*/
+ - dev
+ - /^release\/.*$/
+ - /^(.*\/)?ci-.*$/
before_install:
- - if test "$TRAVIS_OS_NAME" == "osx"; then brew update; brew install openssl; ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/; ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/; fi
+- if test "$TRAVIS_OS_NAME" == "osx"; then brew update; brew install openssl; ln -s
+ /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/; ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
+ /usr/local/lib/; fi
script:
- - ./build.sh
+- ./build.sh
diff --git a/benchmarks/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs b/benchmarks/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs
index 33a95b9e65..b4320782e6 100644
--- a/benchmarks/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs
+++ b/benchmarks/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs
@@ -24,10 +24,10 @@ namespace Microsoft.AspNetCore.Razor.Performance
var engine = RazorEngine.Create(b => { RazorExtensions.Register(b); });
- var project = RazorProject.Create(root.FullName);
+ var fileSystem = RazorProjectFileSystem.Create(root.FullName);
- DesignTimeTemplateEngine = new MvcRazorTemplateEngine(RazorEngine.CreateDesignTime(b => { RazorExtensions.Register(b); }), project);
- RuntimeTemplateEngine = new MvcRazorTemplateEngine(RazorEngine.Create(b => { RazorExtensions.Register(b); }), project);
+ DesignTimeTemplateEngine = new MvcRazorTemplateEngine(RazorEngine.CreateDesignTime(b => { RazorExtensions.Register(b); }), fileSystem);
+ RuntimeTemplateEngine = new MvcRazorTemplateEngine(RazorEngine.Create(b => { RazorExtensions.Register(b); }), fileSystem);
var codeDocument = RuntimeTemplateEngine.CreateCodeDocument(Path.Combine(root.FullName, "MSN.cshtml"));
diff --git a/build/dependencies.props b/build/dependencies.props
index ee689b8d77..898bb3fff8 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -4,20 +4,20 @@
0.10.11
- 2.1.0-preview2-15692
- 2.1.0-preview2-28215
- 2.1.0-preview2-28215
- 2.1.0-preview2-28215
+ 2.1.0-preview2-15698
+ 2.1.0-preview2-30077
+ 2.1.0-preview2-30077
+ 2.1.0-preview2-30077
15.3.409
15.3.409
15.3.409
2.6.1
2.6.1
- 2.1.0-preview2-28215
- 2.1.0-preview2-28215
+ 2.1.0-preview2-30077
+ 2.1.0-preview2-30077
2.1.0-preview2-25711-01
- 2.1.0-preview2-28215
- 2.1.0-preview2-28215
+ 2.1.0-preview2-30077
+ 2.1.0-preview2-30077
2.0.0
2.1.0-preview2-26130-04
15.3.0
@@ -39,7 +39,7 @@
1.3.7
1.0.1
4.7.49
- 2.0.0
+ 2.0.1
10.0.1
1.1.92
4.5.0-preview2-26130-01
@@ -56,8 +56,8 @@
2.7.0-beta3-62512-06
0.8.0
2.3.1
- 2.3.1
+ 2.4.0-beta.1.build3945
-
+
diff --git a/korebuild-lock.txt b/korebuild-lock.txt
index 4d18d19325..c6125ba391 100644
--- a/korebuild-lock.txt
+++ b/korebuild-lock.txt
@@ -1,2 +1,2 @@
-version:2.1.0-preview2-15696
-commithash:85ae1301d1a2ff19aab6837cc657699ccca719b5
+version:2.1.0-preview2-15698
+commithash:7216e5068cb1957e09d45fcbe58a744dd5c2de73
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 25771e8046..83534ef969 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -8,7 +8,7 @@
-
+
diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X/DefaultMvcImportFeature.cs b/src/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X/DefaultMvcImportFeature.cs
index d630a70c72..055f306eb5 100644
--- a/src/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X/DefaultMvcImportFeature.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X/DefaultMvcImportFeature.cs
@@ -14,18 +14,18 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
{
private const string ImportsFileName = "_ViewImports.cshtml";
- public IReadOnlyList GetImports(string sourceFilePath)
+ public IReadOnlyList GetImports(RazorProjectItem projectItem)
{
- if (string.IsNullOrEmpty(sourceFilePath))
+ if (projectItem == null)
{
- throw new ArgumentException(Resources.ArgumentCannotBeNullOrEmpy, nameof(sourceFilePath));
+ throw new ArgumentNullException(nameof(projectItem));
}
var imports = new List();
AddDefaultDirectivesImport(imports);
// We add hierarchical imports second so any default directive imports can be overridden.
- AddHierarchicalImports(sourceFilePath, imports);
+ AddHierarchicalImports(projectItem, imports);
return imports;
}
@@ -58,10 +58,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
}
// Internal for testing
- internal void AddHierarchicalImports(string sourceFilePath, List imports)
+ internal void AddHierarchicalImports(RazorProjectItem projectItem, List imports)
{
// We want items in descending order. FindHierarchicalItems returns items in ascending order.
- var importProjectItems = ProjectEngine.FileSystem.FindHierarchicalItems(sourceFilePath, ImportsFileName).Reverse();
+ var importProjectItems = ProjectEngine.FileSystem.FindHierarchicalItems(projectItem.FilePath, ImportsFileName).Reverse();
foreach (var importProjectItem in importProjectItems)
{
RazorSourceDocument importSourceDocument;
diff --git a/src/Microsoft.AspNetCore.Mvc.Razor.Extensions/DefaultMvcImportFeature.cs b/src/Microsoft.AspNetCore.Mvc.Razor.Extensions/DefaultMvcImportFeature.cs
index 8cbf0f11a1..4852951e33 100644
--- a/src/Microsoft.AspNetCore.Mvc.Razor.Extensions/DefaultMvcImportFeature.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Razor.Extensions/DefaultMvcImportFeature.cs
@@ -14,18 +14,18 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
{
private const string ImportsFileName = "_ViewImports.cshtml";
- public IReadOnlyList GetImports(string sourceFilePath)
+ public IReadOnlyList GetImports(RazorProjectItem projectItem)
{
- if (string.IsNullOrEmpty(sourceFilePath))
+ if (projectItem == null)
{
- throw new ArgumentException(Resources.ArgumentCannotBeNullOrEmpy, nameof(sourceFilePath));
+ throw new ArgumentNullException(nameof(projectItem));
}
var imports = new List();
AddDefaultDirectivesImport(imports);
// We add hierarchical imports second so any default directive imports can be overridden.
- AddHierarchicalImports(sourceFilePath, imports);
+ AddHierarchicalImports(projectItem, imports);
return imports;
}
@@ -60,10 +60,10 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
}
// Internal for testing
- internal void AddHierarchicalImports(string sourceFilePath, List imports)
+ internal void AddHierarchicalImports(RazorProjectItem projectItem, List imports)
{
// We want items in descending order. FindHierarchicalItems returns items in ascending order.
- var importProjectItems = ProjectEngine.FileSystem.FindHierarchicalItems(sourceFilePath, ImportsFileName).Reverse();
+ var importProjectItems = ProjectEngine.FileSystem.FindHierarchicalItems(projectItem.FilePath, ImportsFileName).Reverse();
foreach (var importProjectItem in importProjectItems)
{
RazorSourceDocument importSourceDocument;
diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorImportFeature.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorImportFeature.cs
index 3d5c015a26..ea626e97e0 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorImportFeature.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorImportFeature.cs
@@ -8,6 +8,6 @@ namespace Microsoft.AspNetCore.Razor.Language
{
internal class DefaultRazorImportFeature : RazorProjectEngineFeatureBase, IRazorImportFeature
{
- public IReadOnlyList GetImports(string sourceFilePath) => Array.Empty();
+ public IReadOnlyList GetImports(RazorProjectItem projectItem) => Array.Empty();
}
}
diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectEngine.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectEngine.cs
index 8f3017cea1..6cac02dc25 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectEngine.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectEngine.cs
@@ -45,29 +45,16 @@ namespace Microsoft.AspNetCore.Razor.Language
public override IReadOnlyList Features { get; }
- public override RazorCodeDocument Process(string filePath)
+ public override RazorCodeDocument Process(RazorProjectItem projectItem)
{
- if (string.IsNullOrEmpty(filePath))
+ if (projectItem == null)
{
- throw new ArgumentException(Resources.ArgumentCannotBeNullOrEmpty, nameof(filePath));
- }
-
- var projectItem = FileSystem.GetItem(filePath);
- var sourceDocument = RazorSourceDocument.ReadFrom(projectItem);
- var codeDocument = Process(sourceDocument);
-
- return codeDocument;
- }
-
- public override RazorCodeDocument Process(RazorSourceDocument sourceDocument)
- {
- if (sourceDocument == null)
- {
- throw new ArgumentNullException(nameof(sourceDocument));
+ throw new ArgumentNullException(nameof(projectItem));
}
var importFeature = GetRequiredFeature();
- var imports = importFeature.GetImports(sourceDocument.FilePath);
+ var imports = importFeature.GetImports(projectItem);
+ var sourceDocument = RazorSourceDocument.ReadFrom(projectItem);
var codeDocument = RazorCodeDocument.Create(sourceDocument, imports);
diff --git a/src/Microsoft.AspNetCore.Razor.Language/FileSystemRazorProject.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectFileSystem.cs
similarity index 88%
rename from src/Microsoft.AspNetCore.Razor.Language/FileSystemRazorProject.cs
rename to src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectFileSystem.cs
index d6bfa5596a..2600ce5efe 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/FileSystemRazorProject.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectFileSystem.cs
@@ -8,9 +8,9 @@ using System.Linq;
namespace Microsoft.AspNetCore.Razor.Language
{
- internal class FileSystemRazorProject : RazorProjectFileSystem
+ internal class DefaultRazorProjectFileSystem : RazorProjectFileSystem
{
- public FileSystemRazorProject(string root)
+ public DefaultRazorProjectFileSystem(string root)
{
if (string.IsNullOrEmpty(root))
{
@@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Razor.Language
var relativePhysicalPath = file.FullName.Substring(absoluteBasePath.Length + 1); // Include leading separator
var filePath = "/" + relativePhysicalPath.Replace(Path.DirectorySeparatorChar, '/');
- return new FileSystemRazorProjectItem(basePath, filePath, relativePhysicalPath, file);
+ return new DefaultRazorProjectItem(basePath, filePath, relativePhysicalPath, file);
});
}
@@ -53,7 +53,7 @@ namespace Microsoft.AspNetCore.Razor.Language
var relativePhysicalPath = file.FullName.Substring(absoluteBasePath.Length + 1); // Include leading separator
var filePath = "/" + relativePhysicalPath.Replace(Path.DirectorySeparatorChar, '/');
- return new FileSystemRazorProjectItem("/", filePath, relativePhysicalPath, new FileInfo(absolutePath));
+ return new DefaultRazorProjectItem("/", filePath, relativePhysicalPath, new FileInfo(absolutePath));
}
protected override string NormalizeAndEnsureValidPath(string path)
diff --git a/src/Microsoft.AspNetCore.Razor.Language/FileSystemRazorProjectItem.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectItem.cs
similarity index 81%
rename from src/Microsoft.AspNetCore.Razor.Language/FileSystemRazorProjectItem.cs
rename to src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectItem.cs
index 210670d06a..5a3590a121 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/FileSystemRazorProjectItem.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorProjectItem.cs
@@ -5,16 +5,16 @@ using System.IO;
namespace Microsoft.AspNetCore.Razor.Language
{
- internal class FileSystemRazorProjectItem : RazorProjectItem
+ internal class DefaultRazorProjectItem : RazorProjectItem
{
///
- /// Initializes a new instance of .
+ /// Initializes a new instance of .
///
/// The base path.
/// The physical path of the base path.
/// The path.
/// The .
- public FileSystemRazorProjectItem(string basePath, string filePath, string relativePhysicalPath, FileInfo file)
+ public DefaultRazorProjectItem(string basePath, string filePath, string relativePhysicalPath, FileInfo file)
{
BasePath = basePath;
FilePath = filePath;
diff --git a/src/Microsoft.AspNetCore.Razor.Language/IRazorImportFeature.cs b/src/Microsoft.AspNetCore.Razor.Language/IRazorImportFeature.cs
index 76e50c31c7..f002cd20ce 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/IRazorImportFeature.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/IRazorImportFeature.cs
@@ -7,6 +7,6 @@ namespace Microsoft.AspNetCore.Razor.Language
{
public interface IRazorImportFeature : IRazorProjectEngineFeature
{
- IReadOnlyList GetImports(string sourceFilePath);
+ IReadOnlyList GetImports(RazorProjectItem projectItem);
}
}
diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorProject.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorProject.cs
index 473e6382e1..74b772e142 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/RazorProject.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/RazorProject.cs
@@ -129,9 +129,10 @@ namespace Microsoft.AspNetCore.Razor.Language
///
/// The directory to root the file system at.
/// A
+ [Obsolete("This method is obsolete and will be removed in a future version. Please use " + nameof(RazorProjectFileSystem) + "." + nameof(RazorProjectFileSystem.Create) + " instead.")]
public static RazorProject Create(string rootDirectoryPath)
{
- return new FileSystemRazorProject(rootDirectoryPath);
+ return new DefaultRazorProjectFileSystem(rootDirectoryPath);
}
}
}
diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs
index 88522e9326..7f2c03e8e3 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs
@@ -14,9 +14,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public abstract IReadOnlyList Features { get; }
- public abstract RazorCodeDocument Process(string filePath);
-
- public abstract RazorCodeDocument Process(RazorSourceDocument sourceDocument);
+ public abstract RazorCodeDocument Process(RazorProjectItem projectItem);
public static RazorProjectEngine Create(RazorProjectFileSystem fileSystem) => Create(fileSystem, configure: null);
diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngineFeatureBase.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngineFeatureBase.cs
index f5944a83ff..ec170659e4 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngineFeatureBase.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngineFeatureBase.cs
@@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language
{
private RazorProjectEngine _projectEngine;
- public RazorProjectEngine ProjectEngine
+ public virtual RazorProjectEngine ProjectEngine
{
get => _projectEngine;
set
diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectFileSystem.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectFileSystem.cs
index 975b821ade..a95de255df 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectFileSystem.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectFileSystem.cs
@@ -1,18 +1,25 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+using System;
+
namespace Microsoft.AspNetCore.Razor.Language
{
public abstract class RazorProjectFileSystem : RazorProject
{
///
- /// Create a Razor project based on a physical file system.
+ /// Create a Razor project file system based off of a root directory.
///
/// The directory to root the file system at.
- /// A
- public static new RazorProjectFileSystem Create(string rootDirectoryPath)
+ /// A
+ public new static RazorProjectFileSystem Create(string rootDirectoryPath)
{
- return new FileSystemRazorProject(rootDirectoryPath);
+ if (string.IsNullOrEmpty(rootDirectoryPath))
+ {
+ throw new ArgumentException(Resources.ArgumentCannotBeNullOrEmpty, nameof(rootDirectoryPath));
+ }
+
+ return new DefaultRazorProjectFileSystem(rootDirectoryPath);
}
}
}
diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectItem.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectItem.cs
index cadd00710c..6aecb94daa 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectItem.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectItem.cs
@@ -1,14 +1,13 @@
// Copyright (c) .NET Foundation. All rights reserved.
// 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.IO;
namespace Microsoft.AspNetCore.Razor.Language
{
///
- /// An item in .
+ /// An item in a .
///
[DebuggerDisplay("{" + nameof(DebuggerToString) + "()}")]
public abstract class RazorProjectItem
diff --git a/src/Microsoft.AspNetCore.Razor.Language/VirtualRazorProjectFileSystem.cs b/src/Microsoft.AspNetCore.Razor.Language/VirtualRazorProjectFileSystem.cs
index bb9a75ee3a..6b3737fb73 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/VirtualRazorProjectFileSystem.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/VirtualRazorProjectFileSystem.cs
@@ -10,20 +10,19 @@ namespace Microsoft.AspNetCore.Razor.Language
{
internal class VirtualRazorProjectFileSystem : RazorProjectFileSystem
{
- private readonly DirectoryNode Root = new DirectoryNode("/");
+ private readonly DirectoryNode _root = new DirectoryNode("/");
public override IEnumerable EnumerateItems(string basePath)
{
-
basePath = NormalizeAndEnsureValidPath(basePath);
- var directory = Root.GetDirectory(basePath);
+ var directory = _root.GetDirectory(basePath);
return directory?.EnumerateItems() ?? Enumerable.Empty();
}
public override RazorProjectItem GetItem(string path)
{
path = NormalizeAndEnsureValidPath(path);
- return Root.GetItem(path) ?? new NotFoundProjectItem(string.Empty, path);
+ return _root.GetItem(path) ?? new NotFoundProjectItem(string.Empty, path);
}
public void Add(RazorProjectItem projectItem)
@@ -34,7 +33,7 @@ namespace Microsoft.AspNetCore.Razor.Language
}
var filePath = NormalizeAndEnsureValidPath(projectItem.FilePath);
- Root.AddFile(new FileNode(filePath, projectItem));
+ _root.AddFile(new FileNode(filePath, projectItem));
}
// Internal for testing
diff --git a/src/Microsoft.AspNetCore.Razor.Tools/GenerateCommand.cs b/src/Microsoft.AspNetCore.Razor.Tools/GenerateCommand.cs
index 9fdedccd93..fc0a876940 100644
--- a/src/Microsoft.AspNetCore.Razor.Tools/GenerateCommand.cs
+++ b/src/Microsoft.AspNetCore.Razor.Tools/GenerateCommand.cs
@@ -136,7 +136,7 @@ namespace Microsoft.AspNetCore.Razor.Tools
var project = new VirtualRazorProjectFileSystem();
foreach (var item in inputItems)
{
- var projectItem = new FileSystemRazorProjectItem(
+ var projectItem = new DefaultRazorProjectItem(
basePath: "/",
filePath: item.FilePath,
relativePhysicalPath: item.RelativePhysicalPath,
diff --git a/src/Microsoft.NET.Sdk.Razor/Microsoft.NET.Sdk.Razor.csproj b/src/Microsoft.NET.Sdk.Razor/Microsoft.NET.Sdk.Razor.csproj
index c94af58ddf..95bb7fec04 100644
--- a/src/Microsoft.NET.Sdk.Razor/Microsoft.NET.Sdk.Razor.csproj
+++ b/src/Microsoft.NET.Sdk.Razor/Microsoft.NET.Sdk.Razor.csproj
@@ -13,6 +13,7 @@
+
diff --git a/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets b/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets
index b3ce738715..2ea795e89b 100644
--- a/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets
+++ b/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.targets
@@ -30,6 +30,7 @@ Copyright (c) .NET Foundation. All rights reserved.
-->
+ ResolveRazorConfiguration;
ResolveRazorGenerateInputs;
AssignRazorGenerateTargetPaths;
ResolveAssemblyReferenceRazorGenerateInputs;
@@ -181,6 +182,23 @@ Copyright (c) .NET Foundation. All rights reserved.
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- <_ResolvedRazorConfiguration Include="@(RazorConfiguration)" Condition="'%(RazorConfiguration.Identity)'=='$(RazorDefaultConfiguration)'" />
- <_ResolvedRazorExtensionName Include="%(_ResolvedRazorConfiguration.Extensions)"/>
-
-
-
-
-
-
+ Condition="'$(GenerateRazorAssemblyInfo)'=='true' and '$(RazorDefaultConfiguration)'!=''"
+ DependsOnTargets="ResolveRazorConfiguration">
<_Parameter1>$(RazorLangVersion)
@@ -213,9 +222,9 @@ Copyright (c) .NET Foundation. All rights reserved.
<_Parameter1>$(RazorDefaultConfiguration)
-
- <_Parameter1>%(_ResolvedRazorExtension.Identity)
- <_Parameter2>%(_ResolvedRazorExtension.AssemblyName)
+
+ <_Parameter1>%(ResolvedRazorExtension.Identity)
+ <_Parameter2>%(ResolvedRazorExtension.AssemblyName)
diff --git a/src/Microsoft.VisualStudio.Editor.Razor/DefaultTemplateEngineFactoryService.cs b/src/Microsoft.VisualStudio.Editor.Razor/DefaultTemplateEngineFactoryService.cs
index ab5518bb46..6c615077c7 100644
--- a/src/Microsoft.VisualStudio.Editor.Razor/DefaultTemplateEngineFactoryService.cs
+++ b/src/Microsoft.VisualStudio.Editor.Razor/DefaultTemplateEngineFactoryService.cs
@@ -60,7 +60,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
}
});
- var templateEngine = new Mvc1_X.MvcRazorTemplateEngine(engine, RazorProject.Create(projectPath));
+ var templateEngine = new Mvc1_X.MvcRazorTemplateEngine(engine, RazorProjectFileSystem.Create(projectPath));
templateEngine.Options.ImportsFileName = "_ViewImports.cshtml";
return templateEngine;
}
@@ -73,7 +73,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
MvcLatest.RazorExtensions.Register(b);
});
- var templateEngine = new MvcLatest.MvcRazorTemplateEngine(engine, RazorProject.Create(projectPath));
+ var templateEngine = new MvcLatest.MvcRazorTemplateEngine(engine, RazorProjectFileSystem.Create(projectPath));
templateEngine.Options.ImportsFileName = "_ViewImports.cshtml";
return templateEngine;
}
diff --git a/src/RazorPageGenerator/Program.cs b/src/RazorPageGenerator/Program.cs
index 30081b1bc2..aecb2344dc 100644
--- a/src/RazorPageGenerator/Program.cs
+++ b/src/RazorPageGenerator/Program.cs
@@ -73,7 +73,7 @@ Examples:
public static IList MainCore(RazorEngine razorEngine, string targetProjectDirectory)
{
var viewDirectories = Directory.EnumerateDirectories(targetProjectDirectory, "Views", SearchOption.AllDirectories);
- var razorProject = RazorProject.Create(targetProjectDirectory);
+ var razorProject = RazorProjectFileSystem.Create(targetProjectDirectory);
var templateEngine = new RazorTemplateEngine(razorEngine, razorProject);
templateEngine.Options.DefaultImports = RazorSourceDocument.Create(@"
@using System
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/DefaultMvcImportFeatureTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/DefaultMvcImportFeatureTest.cs
index 32e254a45b..3ae6d8dd13 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/DefaultMvcImportFeatureTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/DefaultMvcImportFeatureTest.cs
@@ -29,12 +29,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
{
// Arrange
var imports = new List();
+ var projectItem = new TestRazorProjectItem("/Contact/Index.cshtml");
var testFileSystem = new TestRazorProjectFileSystem(new[]
{
new TestRazorProjectItem("/Index.cshtml"),
new TestRazorProjectItem("/_ViewImports.cshtml"),
new TestRazorProjectItem("/Contact/_ViewImports.cshtml"),
- new TestRazorProjectItem("/Contact/Index.cshtml"),
+ projectItem,
});
var mvcImportFeature = new DefaultMvcImportFeature()
{
@@ -42,7 +43,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
};
// Act
- mvcImportFeature.AddHierarchicalImports("/Contact/Index.cshtml", imports);
+ mvcImportFeature.AddHierarchicalImports(projectItem, imports);
// Assert
Assert.Collection(imports,
@@ -55,17 +56,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
{
// Arrange
var imports = new List();
- var testFileSystem = new TestRazorProjectFileSystem(new[]
- {
- new TestRazorProjectItem("/Pages/Contact/Index.cshtml"),
- });
+ var projectItem = new TestRazorProjectItem("/Pages/Contact/Index.cshtml");
+ var testFileSystem = new TestRazorProjectFileSystem(new[] { projectItem });
var mvcImportFeature = new DefaultMvcImportFeature()
{
ProjectEngine = Mock.Of(projectEngine => projectEngine.FileSystem == testFileSystem)
};
// Act
- mvcImportFeature.AddHierarchicalImports("/Pages/Contact/Index.cshtml", imports);
+ mvcImportFeature.AddHierarchicalImports(projectItem, imports);
// Assert
Assert.Collection(imports,
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/MvcRazorTemplateEngineTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/MvcRazorTemplateEngineTest.cs
index 6170065edf..58e440547e 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/MvcRazorTemplateEngineTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/MvcRazorTemplateEngineTest.cs
@@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
};
var mvcRazorTemplateEngine = new MvcRazorTemplateEngine(
RazorEngine.Create(),
- new TestRazorProject());
+ new TestRazorProjectFileSystem());
// Act
var imports = mvcRazorTemplateEngine.Options.DefaultImports;
@@ -52,7 +52,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
};
var mvcRazorTemplateEngine = new MvcRazorTemplateEngine(
RazorEngine.Create(),
- new TestRazorProject());
+ new TestRazorProjectFileSystem());
// Act
var imports = mvcRazorTemplateEngine.Options.DefaultImports;
@@ -70,7 +70,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
// Arrange
var mvcRazorTemplateEngine = new MvcRazorTemplateEngine(
RazorEngine.Create(),
- new TestRazorProject());
+ new TestRazorProjectFileSystem());
// Act
var imports = mvcRazorTemplateEngine.Options.DefaultImports;
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/DefaultMvcImportFeatureTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/DefaultMvcImportFeatureTest.cs
index 31d66517a1..3741760b4a 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/DefaultMvcImportFeatureTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/DefaultMvcImportFeatureTest.cs
@@ -29,12 +29,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
{
// Arrange
var imports = new List();
+ var projectItem = new TestRazorProjectItem("/Contact/Index.cshtml");
var testFileSystem = new TestRazorProjectFileSystem(new[]
{
new TestRazorProjectItem("/Index.cshtml"),
new TestRazorProjectItem("/_ViewImports.cshtml"),
new TestRazorProjectItem("/Contact/_ViewImports.cshtml"),
- new TestRazorProjectItem("/Contact/Index.cshtml"),
+ projectItem,
});
var mvcImportFeature = new DefaultMvcImportFeature()
{
@@ -42,7 +43,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
};
// Act
- mvcImportFeature.AddHierarchicalImports("/Contact/Index.cshtml", imports);
+ mvcImportFeature.AddHierarchicalImports(projectItem, imports);
// Assert
Assert.Collection(imports,
@@ -55,17 +56,15 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
{
// Arrange
var imports = new List();
- var testFileSystem = new TestRazorProjectFileSystem(new[]
- {
- new TestRazorProjectItem("/Pages/Contact/Index.cshtml"),
- });
+ var projectItem = new TestRazorProjectItem("/Pages/Contact/Index.cshtml");
+ var testFileSystem = new TestRazorProjectFileSystem(new[] { projectItem });
var mvcImportFeature = new DefaultMvcImportFeature()
{
ProjectEngine = Mock.Of(projectEngine => projectEngine.FileSystem == testFileSystem)
};
// Act
- mvcImportFeature.AddHierarchicalImports("/Pages/Contact/Index.cshtml", imports);
+ mvcImportFeature.AddHierarchicalImports(projectItem, imports);
// Assert
Assert.Collection(imports,
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/MvcRazorTemplateEngineTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/MvcRazorTemplateEngineTest.cs
index 5ceff69208..c2378397a6 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/MvcRazorTemplateEngineTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test/MvcRazorTemplateEngineTest.cs
@@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
};
var mvcRazorTemplateEngine = new MvcRazorTemplateEngine(
RazorEngine.Create(),
- new TestRazorProject());
+ new TestRazorProjectFileSystem());
// Act
var imports = mvcRazorTemplateEngine.Options.DefaultImports;
@@ -52,7 +52,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
};
var mvcRazorTemplateEngine = new MvcRazorTemplateEngine(
RazorEngine.Create(),
- new TestRazorProject());
+ new TestRazorProjectFileSystem());
// Act
var imports = mvcRazorTemplateEngine.Options.DefaultImports;
@@ -70,7 +70,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
// Arrange
var mvcRazorTemplateEngine = new MvcRazorTemplateEngine(
RazorEngine.Create(),
- new TestRazorProject());
+ new TestRazorProjectFileSystem());
// Act
var imports = mvcRazorTemplateEngine.Options.DefaultImports;
diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/DesignTimeBuildIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/DesignTimeBuildIntegrationTest.cs
new file mode 100644
index 0000000000..6480149992
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/DesignTimeBuildIntegrationTest.cs
@@ -0,0 +1,34 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Threading.Tasks;
+using Xunit;
+
+namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
+{
+ public class DesignTimeBuildIntegrationTest : MSBuildIntegrationTestBase
+ {
+ [Fact]
+ [InitializeTestProject("SimpleMvc")]
+ public async Task DesignTimeBuild_DoesNotRunRazorTargets()
+ {
+ // Using Compile here instead of CompileDesignTime because the latter is only defined when using
+ // the VS targets. This is a close enough simulation for an SDK project
+ var result = await DotnetMSBuild("Compile", "/p:RazorCompileOnBuild=true /p:DesignTimeBuild=true /clp:PerformanceSummary");
+
+ Assert.BuildPassed(result);
+ Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.dll");
+ Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.pdb");
+ Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.PrecompiledViews.dll");
+ Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.PrecompiledViews.pdb");
+
+ // This target should be part of the design time build.
+ Assert.Contains("RazorGetAssemblyAttributes", result.Output);
+
+ // We don't want to see the expensive Razor targets in the performance summary, since they shouldn't run
+ // during a design time build.
+ Assert.DoesNotContain("RazorCoreGenerate", result.Output);
+ Assert.DoesNotContain("RazorCoreCompile", result.Output);
+ }
+ }
+}
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectEngineIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectEngineIntegrationTest.cs
index ce95f80f6f..e767978411 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectEngineIntegrationTest.cs
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectEngineIntegrationTest.cs
@@ -12,10 +12,10 @@ namespace Microsoft.AspNetCore.Razor.Language
public void Process_GetsImportsFromFeature()
{
// Arrange
- var sourceDocument = TestRazorSourceDocument.Create();
+ var projectItem = new TestRazorProjectItem("Index.cshtml");
var testImport = TestRazorSourceDocument.Create();
var importFeature = new Mock();
- importFeature.Setup(feature => feature.GetImports(It.IsAny()))
+ importFeature.Setup(feature => feature.GetImports(It.IsAny()))
.Returns(new[] { testImport });
var projectEngine = RazorProjectEngine.Create(TestRazorProjectFileSystem.Empty, builder =>
{
@@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.Razor.Language
});
// Act
- var codeDocument = projectEngine.Process(sourceDocument);
+ var codeDocument = projectEngine.Process(projectItem);
// Assert
var import = Assert.Single(codeDocument.Imports);
@@ -34,11 +34,11 @@ namespace Microsoft.AspNetCore.Razor.Language
public void Process_GeneratesCodeDocumentWithValidCSharpDocument()
{
// Arrange
- var sourceDocument = TestRazorSourceDocument.Create();
+ var projectItem = new TestRazorProjectItem("Index.cshtml");
var projectEngine = RazorProjectEngine.Create(TestRazorProjectFileSystem.Empty);
// Act
- var codeDocument = projectEngine.Process(sourceDocument);
+ var codeDocument = projectEngine.Process(projectItem);
// Assert
var csharpDocument = codeDocument.GetCSharpDocument();
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectEngineTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectEngineTest.cs
deleted file mode 100644
index 3224a5d9f0..0000000000
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectEngineTest.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-
-using Moq;
-using Xunit;
-
-namespace Microsoft.AspNetCore.Razor.Language
-{
- public class DefaultRazorProjectEngineTest
- {
- [Fact]
- public void Process_AsksFileSystemForItems()
- {
- // Arrange
- var razorProjectItem = new TestRazorProjectItem("/some/path.cshtml");
- var testFileSystem = new Mock();
- testFileSystem.Setup(fileSystem => fileSystem.GetItem("/some/path.cshtml"))
- .Returns(razorProjectItem)
- .Verifiable();
- var projectEngine = RazorProjectEngine.Create(testFileSystem.Object);
-
- // Act
- projectEngine.Process("/some/path.cshtml");
-
- // Assert
- testFileSystem.Verify();
- }
- }
-}
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/FileSystemRazorProjectTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectFileSystemTest.cs
similarity index 82%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/FileSystemRazorProjectTest.cs
rename to test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectFileSystemTest.cs
index e2d471c8fd..addc55ebea 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/FileSystemRazorProjectTest.cs
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectFileSystemTest.cs
@@ -8,12 +8,12 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Language
{
- public class FileSystemRazorProjectTest
+ public class DefaultRazorProjectFileSystemTest
{
private static string TestFolder { get; } = Path.Combine(
- TestProject.GetProjectDirectory(typeof(FileSystemRazorProjectTest)),
- "TestFiles",
- "FileSystemRazorProject");
+ TestProject.GetProjectDirectory(typeof(DefaultRazorProjectFileSystemTest)),
+ "TestFiles",
+ "DefaultRazorProjectFileSystem");
[Theory]
[InlineData(null)]
@@ -21,20 +21,20 @@ namespace Microsoft.AspNetCore.Razor.Language
public void NormalizeAndEnsureValidPath_ThrowsIfPathIsNullOrEmpty(string path)
{
// Arrange
- var project = new TestFileSystemRazorProject("C:/some/test/path/root");
+ var fileSystem = new TestRazorProjectFileSystem("C:/some/test/path/root");
// Act and Assert
- ExceptionAssert.ThrowsArgumentNullOrEmptyString(() => project.NormalizeAndEnsureValidPath(path), "path");
+ ExceptionAssert.ThrowsArgumentNullOrEmptyString(() => fileSystem.NormalizeAndEnsureValidPath(path), "path");
}
[Fact]
public void NormalizeAndEnsureValidPath_NormalizesToAbsolutePath()
{
// Arrange
- var project = new TestFileSystemRazorProject("C:/some/test/path/root");
+ var fileSystem = new TestRazorProjectFileSystem("C:/some/test/path/root");
// Act
- var absolutePath = project.NormalizeAndEnsureValidPath("file.cshtml");
+ var absolutePath = fileSystem.NormalizeAndEnsureValidPath("file.cshtml");
// Assert
Assert.Equal("C:/some/test/path/root/file.cshtml", absolutePath);
@@ -44,10 +44,10 @@ namespace Microsoft.AspNetCore.Razor.Language
public void NormalizeAndEnsureValidPath_NormalizesToAbsolutePathWithoutForwardSlash()
{
// Arrange
- var project = new TestFileSystemRazorProject("C:/some/test/path/root");
+ var fileSystem = new TestRazorProjectFileSystem("C:/some/test/path/root");
// Act
- var absolutePath = project.NormalizeAndEnsureValidPath("/file.cshtml");
+ var absolutePath = fileSystem.NormalizeAndEnsureValidPath("/file.cshtml");
// Assert
Assert.Equal("C:/some/test/path/root/file.cshtml", absolutePath);
@@ -57,10 +57,10 @@ namespace Microsoft.AspNetCore.Razor.Language
public void NormalizeAndEnsureValidPath_NormalizesToForwardSlashes()
{
// Arrange
- var project = new TestFileSystemRazorProject(@"C:\some\test\path\root");
+ var fileSystem = new TestRazorProjectFileSystem(@"C:\some\test\path\root");
// Act
- var absolutePath = project.NormalizeAndEnsureValidPath(@"something\file.cshtml");
+ var absolutePath = fileSystem.NormalizeAndEnsureValidPath(@"something\file.cshtml");
// Assert
Assert.Equal("C:/some/test/path/root/something/file.cshtml", absolutePath);
@@ -70,10 +70,10 @@ namespace Microsoft.AspNetCore.Razor.Language
public void EnumerateItems_DiscoversAllCshtmlFiles()
{
// Arrange
- var fileSystemProject = new FileSystemRazorProject(TestFolder);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestFolder);
// Act
- var items = fileSystemProject.EnumerateItems("/");
+ var items = fileSystem.EnumerateItems("/");
// Assert
Assert.Collection(
@@ -130,10 +130,10 @@ namespace Microsoft.AspNetCore.Razor.Language
public void EnumerateItems_DiscoversAllCshtmlFiles_UnderSpecifiedBasePath()
{
// Arrange
- var fileSystemProject = new FileSystemRazorProject(TestFolder);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestFolder);
// Act
- var items = fileSystemProject.EnumerateItems("/Views");
+ var items = fileSystem.EnumerateItems("/Views");
// Assert
Assert.Collection(
@@ -172,10 +172,10 @@ namespace Microsoft.AspNetCore.Razor.Language
public void EnumerateItems_ReturnsEmptySequence_WhenBasePathDoesNotExist()
{
// Arrange
- var fileSystemProject = new FileSystemRazorProject(TestFolder);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestFolder);
// Act
- var items = fileSystemProject.EnumerateItems("/Does-Not-Exist");
+ var items = fileSystem.EnumerateItems("/Does-Not-Exist");
// Assert
Assert.Empty(items);
@@ -185,10 +185,10 @@ namespace Microsoft.AspNetCore.Razor.Language
public void FindHierarchicalItems_FindsItemsWithMatchingNames()
{
// Arrange
- var fileSystemProject = new FileSystemRazorProject(TestFolder);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestFolder);
// Act
- var items = fileSystemProject.FindHierarchicalItems("/Views/Home/Index.cshtml", "_ViewImports.cshtml");
+ var items = fileSystem.FindHierarchicalItems("/Views/Home/Index.cshtml", "_ViewImports.cshtml");
// Assert
Assert.Collection(
@@ -224,10 +224,10 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var filePath = "/Views/About/About.cshtml";
- var fileSystemProject = new FileSystemRazorProject(TestFolder);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestFolder);
// Act
- var item = fileSystemProject.GetItem(filePath);
+ var item = fileSystem.GetItem(filePath);
// Assert
Assert.True(item.Exists);
@@ -242,18 +242,18 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var path = "/NotFound.cshtml";
- var fileSystemProject = new FileSystemRazorProject(TestFolder);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestFolder);
// Act
- var item = fileSystemProject.GetItem(path);
+ var item = fileSystem.GetItem(path);
// Assert
Assert.False(item.Exists);
}
- private class TestFileSystemRazorProject : FileSystemRazorProject
+ private class TestRazorProjectFileSystem : DefaultRazorProjectFileSystem
{
- public TestFileSystemRazorProject(string root) : base(root)
+ public TestRazorProjectFileSystem(string root) : base(root)
{
}
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/FileSystemRazorProjectItemTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectItemTest.cs
similarity index 70%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/FileSystemRazorProjectItemTest.cs
rename to test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectItemTest.cs
index a5193f45f9..1fa4453bd3 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/FileSystemRazorProjectItemTest.cs
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorProjectItemTest.cs
@@ -6,21 +6,21 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Language
{
- public class FileSystemRazorProjectItemTest
+ public class DefaultRazorProjectItemTest
{
private static string TestFolder { get; } = Path.Combine(
- TestProject.GetProjectDirectory(typeof(FileSystemRazorProjectItemTest)),
- "TestFiles",
- "FileSystemRazorProject");
+ TestProject.GetProjectDirectory(typeof(DefaultRazorProjectItemTest)),
+ "TestFiles",
+ "DefaultRazorProjectFileSystem");
[Fact]
- public void FileSystemRazorProjectItem_SetsProperties()
+ public void DefaultRazorProjectItem_SetsProperties()
{
// Arrange
var fileInfo = new FileInfo(Path.Combine(TestFolder, "Home.cshtml"));
// Act
- var projectItem = new FileSystemRazorProjectItem("/", "/Home.cshtml", "Home.cshtml", fileInfo);
+ var projectItem = new DefaultRazorProjectItem("/", "/Home.cshtml", "Home.cshtml", fileInfo);
// Assert
Assert.Equal("/Home.cshtml", projectItem.FilePath);
@@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Razor.Language
var fileInfo = new FileInfo(Path.Combine(TestFolder, "Views", "FileDoesNotExist.cshtml"));
// Act
- var projectItem = new FileSystemRazorProjectItem("/Views", "/FileDoesNotExist.cshtml", Path.Combine("Views", "FileDoesNotExist.cshtml"), fileInfo);
+ var projectItem = new DefaultRazorProjectItem("/Views", "/FileDoesNotExist.cshtml", Path.Combine("Views", "FileDoesNotExist.cshtml"), fileInfo);
// Assert
Assert.False(projectItem.Exists);
@@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var fileInfo = new FileInfo(Path.Combine(TestFolder, "Home.cshtml"));
- var projectItem = new FileSystemRazorProjectItem("/", "/Home.cshtml", "Home.cshtml", fileInfo);
+ var projectItem = new DefaultRazorProjectItem("/", "/Home.cshtml", "Home.cshtml", fileInfo);
// Act
var stream = projectItem.Read();
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/RazorTemplateEngineIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/RazorTemplateEngineIntegrationTest.cs
index 025ff5aa1f..ad26823b85 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/RazorTemplateEngineIntegrationTest.cs
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/RazorTemplateEngineIntegrationTest.cs
@@ -12,12 +12,12 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
public void GenerateCodeWithDefaults()
{
// Arrange
- var project = new FileSystemRazorProject(TestProjectRoot);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestProjectRoot);
var razorEngine = RazorEngine.Create(engine =>
{
engine.Features.Add(new SuppressChecksumOptionsFeature());
});
- var templateEngine = new RazorTemplateEngine(razorEngine, project);
+ var templateEngine = new RazorTemplateEngine(razorEngine, fileSystem);
// Act
var cSharpDocument = templateEngine.GenerateCode($"{FileName}.cshtml");
@@ -30,14 +30,14 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
public void GenerateCodeWithBaseType()
{
// Arrange
- var project = new FileSystemRazorProject(TestProjectRoot);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestProjectRoot);
var razorEngine = RazorEngine.Create(engine =>
{
engine.Features.Add(new SuppressChecksumOptionsFeature());
engine.SetBaseType("MyBaseType");
});
- var templateEngine = new RazorTemplateEngine(razorEngine, project);
+ var templateEngine = new RazorTemplateEngine(razorEngine, fileSystem);
// Act
var cSharpDocument = templateEngine.GenerateCode($"{FileName}.cshtml");
@@ -50,7 +50,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
public void GenerateCodeWithConfigureClass()
{
// Arrange
- var project = new FileSystemRazorProject(TestProjectRoot);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestProjectRoot);
var razorEngine = RazorEngine.Create(engine =>
{
engine.Features.Add(new SuppressChecksumOptionsFeature());
@@ -70,7 +70,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
@class.BaseType = "CustomBaseType";
});
});
- var templateEngine = new RazorTemplateEngine(razorEngine, project);
+ var templateEngine = new RazorTemplateEngine(razorEngine, fileSystem);
// Act
var cSharpDocument = templateEngine.GenerateCode($"{FileName}.cshtml");
@@ -83,14 +83,14 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
public void GenerateCodeWithSetNamespace()
{
// Arrange
- var project = new FileSystemRazorProject(TestProjectRoot);
+ var fileSystem = new DefaultRazorProjectFileSystem(TestProjectRoot);
var razorEngine = RazorEngine.Create(engine =>
{
engine.Features.Add(new SuppressChecksumOptionsFeature());
engine.SetNamespace("MyApp.Razor.Views");
});
- var templateEngine = new RazorTemplateEngine(razorEngine, project);
+ var templateEngine = new RazorTemplateEngine(razorEngine, fileSystem);
// Act
var cSharpDocument = templateEngine.GenerateCode($"{FileName}.cshtml");
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs
index 5e757d9252..e77c5a05fa 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorTemplateEngineTest.cs
@@ -15,16 +15,16 @@ namespace Microsoft.AspNetCore.Razor.Language
public void GetImports_CanQueryInformationOnNonExistentFileWithoutImports()
{
// Arrange
- var project = new TestRazorProject();
+ var fileSystem = new TestRazorProjectFileSystem();
var razorEngine = RazorEngine.Create();
- var templateEngine = new RazorTemplateEngine(razorEngine, project)
+ var templateEngine = new RazorTemplateEngine(razorEngine, fileSystem)
{
Options =
{
ImportsFileName = "MyImport.cshtml"
}
};
- var projectItemToQuery = project.GetItem("/Views/Home/Index.cshtml");
+ var projectItemToQuery = fileSystem.GetItem("/Views/Home/Index.cshtml");
// Act
var imports = templateEngine.GetImports(projectItemToQuery);
@@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Razor.Language
// Arrange
var path = "/Views/Home/MyImport.cshtml";
var projectItem = new TestRazorProjectItem(path);
- var project = new TestRazorProject(new[] { projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { projectItem });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project)
{
@@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public void GenerateCode_ThrowsIfItemCannotBeFound()
{
// Arrange
- var project = new TestRazorProject(new RazorProjectItem[] { });
+ var project = new TestRazorProjectFileSystem(new RazorProjectItem[] { });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project);
@@ -76,7 +76,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public void SettingOptions_ThrowsIfValueIsNull()
{
// Arrange
- var project = new TestRazorProject(new RazorProjectItem[] { });
+ var project = new TestRazorProjectFileSystem(new RazorProjectItem[] { });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project);
@@ -92,7 +92,7 @@ namespace Microsoft.AspNetCore.Razor.Language
// Arrange
var path = "/Views/Home/Index.cshtml";
var projectItem = new TestRazorProjectItem(path);
- var project = new TestRazorProject(new[] { projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { projectItem });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project);
@@ -110,7 +110,7 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var path = "/Views/Home/Index.cshtml";
- var project = new TestRazorProject(new RazorProjectItem[] { });
+ var project = new TestRazorProjectFileSystem(new RazorProjectItem[] { });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project);
@@ -125,7 +125,7 @@ namespace Microsoft.AspNetCore.Razor.Language
// Arrange
var path = "/Views/Home/Index.cshtml";
var projectItem = new TestRazorProjectItem(path);
- var project = new TestRazorProject(new[] { projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { projectItem });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project);
@@ -144,7 +144,7 @@ namespace Microsoft.AspNetCore.Razor.Language
// Arrange
var path = "/Views/Home/Index.cshtml";
var projectItem = new TestRazorProjectItem(path);
- var project = new TestRazorProject(new[] { projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { projectItem });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project);
@@ -168,7 +168,7 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var projectItem = new TestRazorProjectItem("/Views/Home/Index.cshtml");
- var project = new TestRazorProject(new[] { projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { projectItem });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project)
{
@@ -192,7 +192,7 @@ namespace Microsoft.AspNetCore.Razor.Language
var projectItem = new TestRazorProjectItem("/Views/Home/Index.cshtml");
var import1 = new TestRazorProjectItem("/MyImport.cshtml");
var import2 = new TestRazorProjectItem("/Views/Home/MyImport.cshtml");
- var project = new TestRazorProject(new[] { import1, import2, projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { import1, import2, projectItem });
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project)
{
@@ -218,7 +218,7 @@ namespace Microsoft.AspNetCore.Razor.Language
var projectItem = new TestRazorProjectItem("/Views/Home/Index.cshtml");
var import1 = new TestRazorProjectItem("/MyImport.cshtml");
var import2 = new TestRazorProjectItem("/Views/Home/MyImport.cshtml");
- var project = new TestRazorProject(new[] { import1, import2, projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { import1, import2, projectItem });
var razorEngine = RazorEngine.Create();
var defaultImport = RazorSourceDocument.ReadFrom(new MemoryStream(), "Default.cshtml");
var templateEngine = new RazorTemplateEngine(razorEngine, project)
@@ -245,7 +245,7 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var projectItem = new TestRazorProjectItem("/Views/Home/Index.cshtml");
- var project = new TestRazorProject(new[] { projectItem });
+ var project = new TestRazorProjectFileSystem(new[] { projectItem });
var razorEngine = RazorEngine.Create();
var defaultImport = RazorSourceDocument.ReadFrom(new MemoryStream(), "Default.cshtml");
var templateEngine = new RazorTemplateEngine(razorEngine, project)
@@ -269,7 +269,7 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var expected = new[] { "/Views/Home/MyImport.cshtml", "/Views/MyImport.cshtml", "/MyImport.cshtml" };
- var project = new TestRazorProject();
+ var project = new TestRazorProjectFileSystem();
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project)
{
@@ -293,9 +293,9 @@ namespace Microsoft.AspNetCore.Razor.Language
// Arrange
var expected = new[] { "/Views/Home/MyImport.cshtml", "/Views/MyImport.cshtml", "/MyImport.cshtml" };
var projectItem = new TestRazorProjectItem("/Views/Home/Index.cshtml");
- var project = new TestRazorProject(new[] { projectItem });
+ var fileSystem = new TestRazorProjectFileSystem(new[] { projectItem });
var razorEngine = RazorEngine.Create();
- var templateEngine = new RazorTemplateEngine(razorEngine, project)
+ var templateEngine = new RazorTemplateEngine(razorEngine, fileSystem)
{
Options =
{
@@ -316,11 +316,11 @@ namespace Microsoft.AspNetCore.Razor.Language
{
// Arrange
var testFolder = Path.Combine(
- TestProject.GetProjectDirectory(typeof(FileSystemRazorProjectTest)),
+ TestProject.GetProjectDirectory(typeof(DefaultRazorProjectFileSystemTest)),
"TestFiles",
- "FileSystemRazorProject");
+ "DefaultRazorProjectFileSystem");
- var project = new FileSystemRazorProject(testFolder);
+ var project = new DefaultRazorProjectFileSystem(testFolder);
var razorEngine = RazorEngine.Create();
var templateEngine = new RazorTemplateEngine(razorEngine, project)
{
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Home.cshtml b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Home.cshtml
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Home.cshtml
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Home.cshtml
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/About/About.cshtml b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/About/About.cshtml
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/About/About.cshtml
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/About/About.cshtml
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/Home/Index.cshtml b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/Home/Index.cshtml
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/Home/Index.cshtml
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/Home/Index.cshtml
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/Home/Index.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/Home/Index.txt
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/Home/Index.txt
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/Home/Index.txt
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/Home/_ViewImports.cshtml b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/Home/_ViewImports.cshtml
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/Home/_ViewImports.cshtml
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/Home/_ViewImports.cshtml
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/_ViewImports.cshtml b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/_ViewImports.cshtml
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/Views/_ViewImports.cshtml
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/Views/_ViewImports.cshtml
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/_ViewImports.cshtml b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/_ViewImports.cshtml
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/FileSystemRazorProject/_ViewImports.cshtml
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/DefaultRazorProjectFileSystem/_ViewImports.cshtml
diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/TestRazorProject.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/TestRazorProject.cs
similarity index 100%
rename from test/Microsoft.AspNetCore.Razor.Test.Common/Language/TestRazorProject.cs
rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestRazorProject.cs
diff --git a/test/Microsoft.VisualStudio.Editor.Razor.Test/DefaultVisualStudioRazorParserIntegrationTest.cs b/test/Microsoft.VisualStudio.Editor.Razor.Test/DefaultVisualStudioRazorParserIntegrationTest.cs
index cb7df55d12..9b38140366 100644
--- a/test/Microsoft.VisualStudio.Editor.Razor.Test/DefaultVisualStudioRazorParserIntegrationTest.cs
+++ b/test/Microsoft.VisualStudio.Editor.Razor.Test/DefaultVisualStudioRazorParserIntegrationTest.cs
@@ -544,7 +544,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
var items = new List();
items.Add(new TestRazorProjectItem(path));
- var project = new TestRazorProject(items);
+ var project = new TestRazorProjectFileSystem(items);
var templateEngine = new RazorTemplateEngine(engine, project);
templateEngine.Options.DefaultImports = RazorSourceDocument.Create("@addTagHelper *, Test", "_TestImports.cshtml");
diff --git a/test/Microsoft.VisualStudio.Editor.Razor.Test/RazorSyntaxTreePartialParserTest.cs b/test/Microsoft.VisualStudio.Editor.Razor.Test/RazorSyntaxTreePartialParserTest.cs
index b82bf58c6b..074fa0e1be 100644
--- a/test/Microsoft.VisualStudio.Editor.Razor.Test/RazorSyntaxTreePartialParserTest.cs
+++ b/test/Microsoft.VisualStudio.Editor.Razor.Test/RazorSyntaxTreePartialParserTest.cs
@@ -599,7 +599,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
var items = new List();
items.Add(new TestRazorProjectItem(path));
- var project = new TestRazorProject(items);
+ var project = new TestRazorProjectFileSystem(items);
var templateEngine = new RazorTemplateEngine(engine, project);
templateEngine.Options.DefaultImports = RazorSourceDocument.Create("@addTagHelper *, Test", "_TestImports.cshtml");