Don't calculate checksum in design time mode
This commit is contained in:
parent
5369842384
commit
d58a6c8c1b
|
|
@ -176,21 +176,27 @@ namespace Microsoft.AspNet.Razor
|
||||||
string sourceFileName)
|
string sourceFileName)
|
||||||
{
|
{
|
||||||
MemoryStream memoryStream = null;
|
MemoryStream memoryStream = null;
|
||||||
|
string checksum = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!inputStream.CanSeek)
|
if (!Host.DesignTimeMode)
|
||||||
{
|
{
|
||||||
memoryStream = new MemoryStream();
|
// We don't need to calculate the checksum in design time.
|
||||||
inputStream.CopyTo(memoryStream);
|
|
||||||
|
|
||||||
// We don't have to dispose the input stream since it is owned externally.
|
if (!inputStream.CanSeek)
|
||||||
inputStream = memoryStream;
|
{
|
||||||
|
memoryStream = new MemoryStream();
|
||||||
|
inputStream.CopyTo(memoryStream);
|
||||||
|
|
||||||
|
// We don't have to dispose the input stream since it is owned externally.
|
||||||
|
inputStream = memoryStream;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputStream.Position = 0;
|
||||||
|
checksum = ComputeChecksum(inputStream);
|
||||||
|
inputStream.Position = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
inputStream.Position = 0;
|
|
||||||
var checksum = ComputeChecksum(inputStream);
|
|
||||||
inputStream.Position = 0;
|
|
||||||
|
|
||||||
using (var reader = new StreamReader(inputStream,
|
using (var reader = new StreamReader(inputStream,
|
||||||
Encoding.UTF8,
|
Encoding.UTF8,
|
||||||
detectEncodingFromByteOrderMarks: true,
|
detectEncodingFromByteOrderMarks: true,
|
||||||
|
|
|
||||||
|
|
@ -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; }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue