Don't calculate checksum in design time mode

This commit is contained in:
Pranav K 2014-09-29 15:33:33 -07:00
parent 5369842384
commit d58a6c8c1b
2 changed files with 30 additions and 11 deletions

View File

@ -176,8 +176,13 @@ namespace Microsoft.AspNet.Razor
string sourceFileName) string sourceFileName)
{ {
MemoryStream memoryStream = null; MemoryStream memoryStream = null;
string checksum = null;
try try
{ {
if (!Host.DesignTimeMode)
{
// We don't need to calculate the checksum in design time.
if (!inputStream.CanSeek) if (!inputStream.CanSeek)
{ {
memoryStream = new MemoryStream(); memoryStream = new MemoryStream();
@ -188,8 +193,9 @@ namespace Microsoft.AspNet.Razor
} }
inputStream.Position = 0; inputStream.Position = 0;
var checksum = ComputeChecksum(inputStream); checksum = ComputeChecksum(inputStream);
inputStream.Position = 0; inputStream.Position = 0;
}
using (var reader = new StreamReader(inputStream, using (var reader = new StreamReader(inputStream,
Encoding.UTF8, Encoding.UTF8,

View File

@ -239,7 +239,7 @@ namespace Microsoft.AspNet.Razor.Test
[Theory] [Theory]
[MemberData(nameof(GenerateCodeCalculatesLinePragma_IfStreamInputIsUsedData))] [MemberData(nameof(GenerateCodeCalculatesLinePragma_IfStreamInputIsUsedData))]
public void GenerateCodeCalculatesLinePragma_IfStreamInputIsUsed(Stream stream) public void GenerateCodeCalculatesChecksum_IfStreamInputIsUsed(Stream stream)
{ {
// Arrange // Arrange
var engine = new TestableRazorTemplateEngine(); var engine = new TestableRazorTemplateEngine();
@ -251,6 +251,20 @@ namespace Microsoft.AspNet.Razor.Test
Assert.Equal("7b502c3a1f48c8609ae212cdfb639dee39673f5e", engine.Checksum); Assert.Equal("7b502c3a1f48c8609ae212cdfb639dee39673f5e", engine.Checksum);
} }
[Fact]
public void GenerateCode_DoesNotCalculateChecksum_InDesignTimeMode()
{
// Arrange
var engine = new TestableRazorTemplateEngine();
engine.Host.DesignTimeMode = true;
// Act
var results = engine.GenerateCode(Stream.Null, "some-class", "some-ns", "foo.cshtml");
// Assert
Assert.Null(engine.Checksum);
}
private static RazorEngineHost CreateHost(bool designTime = false) private static RazorEngineHost CreateHost(bool designTime = false)
{ {
return new RazorEngineHost(new CSharpRazorCodeLanguage()) return new RazorEngineHost(new CSharpRazorCodeLanguage())
@ -264,7 +278,6 @@ namespace Microsoft.AspNet.Razor.Test
public TestableRazorTemplateEngine() public TestableRazorTemplateEngine()
: base(CreateHost()) : base(CreateHost())
{ {
} }
public string Checksum { get; set; } public string Checksum { get; set; }