Enable `TagHelper`s to properly flatten to enable partial parsing.
- `TagHelper`s used to not flatten correctly resulting in inconsistent start locations for `SyntaxTreeNode`s following/within `TagHelper`s. - This change indirectly corrected bad indentation that existed in generated C#. - Added a test to validate `TreesAreDifferent` returns expected behavior when modifying content inside of `TagHelper`. - Added `TagHelperBlock` `Flatten` test. #553
This commit is contained in:
parent
2d4092ca32
commit
deaf2dc828
|
|
@ -137,7 +137,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
return hashCodeCombiner;
|
||||
}
|
||||
|
||||
public IEnumerable<Span> Flatten()
|
||||
public virtual IEnumerable<Span> Flatten()
|
||||
{
|
||||
// Create an enumerable that flattens the tree for use by syntax highlighters, etc.
|
||||
foreach (SyntaxTreeNode element in Children)
|
||||
|
|
|
|||
|
|
@ -99,6 +99,30 @@ namespace Microsoft.AspNet.Razor.Parser.TagHelpers
|
|||
}
|
||||
}
|
||||
|
||||
public override IEnumerable<Span> Flatten()
|
||||
{
|
||||
if (SourceStartTag != null)
|
||||
{
|
||||
foreach (var childSpan in SourceStartTag.Flatten())
|
||||
{
|
||||
yield return childSpan;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var childSpan in base.Flatten())
|
||||
{
|
||||
yield return childSpan;
|
||||
}
|
||||
|
||||
if (SourceEndTag != null)
|
||||
{
|
||||
foreach (var childSpan in SourceEndTag.Flatten())
|
||||
{
|
||||
yield return childSpan;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -134,6 +134,6 @@ namespace Microsoft.AspNet.Razor.Parser.TagHelpers
|
|||
/// <summary>
|
||||
/// The starting <see cref="SourceLocation"/> of the tag helper.
|
||||
/// </summary>
|
||||
public SourceLocation Start { get; private set; }
|
||||
public SourceLocation Start { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -535,15 +535,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 202,
|
||||
documentLineIndex: 5,
|
||||
documentCharacterOffsetIndex: 38,
|
||||
generatedAbsoluteIndex: 1194,
|
||||
generatedAbsoluteIndex: 1226,
|
||||
generatedLineIndex: 38,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 38,
|
||||
contentLength: 23),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 285,
|
||||
documentLineIndex: 6,
|
||||
generatedAbsoluteIndex: 1677,
|
||||
generatedAbsoluteIndex: 1709,
|
||||
generatedLineIndex: 49,
|
||||
characterOffsetIndex: 40,
|
||||
contentLength: 4),
|
||||
|
|
@ -624,92 +623,89 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 446,
|
||||
documentLineIndex: 15,
|
||||
documentCharacterOffsetIndex: 46,
|
||||
generatedAbsoluteIndex: 1873,
|
||||
generatedAbsoluteIndex: 1913,
|
||||
generatedLineIndex: 72,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 46,
|
||||
contentLength: 8),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 463,
|
||||
documentLineIndex: 15,
|
||||
generatedAbsoluteIndex: 2127,
|
||||
generatedAbsoluteIndex: 2167,
|
||||
generatedLineIndex: 79,
|
||||
characterOffsetIndex: 63,
|
||||
contentLength: 4),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 507,
|
||||
documentLineIndex: 16,
|
||||
documentCharacterOffsetIndex: 31,
|
||||
generatedAbsoluteIndex: 2403,
|
||||
generatedAbsoluteIndex: 2468,
|
||||
generatedLineIndex: 87,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 31,
|
||||
contentLength: 30),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 574,
|
||||
documentLineIndex: 17,
|
||||
documentCharacterOffsetIndex: 30,
|
||||
generatedAbsoluteIndex: 2752,
|
||||
generatedAbsoluteIndex: 2846,
|
||||
generatedLineIndex: 96,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 29,
|
||||
contentLength: 10),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 606,
|
||||
documentLineIndex: 17,
|
||||
documentCharacterOffsetIndex: 62,
|
||||
generatedAbsoluteIndex: 2834,
|
||||
generatedAbsoluteIndex: 2989,
|
||||
generatedLineIndex: 102,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 61,
|
||||
contentLength: 1),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 607,
|
||||
documentLineIndex: 17,
|
||||
documentCharacterOffsetIndex: 63,
|
||||
generatedAbsoluteIndex: 2907,
|
||||
generatedAbsoluteIndex: 3124,
|
||||
generatedLineIndex: 108,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 62,
|
||||
contentLength: 8),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 637,
|
||||
documentLineIndex: 17,
|
||||
documentCharacterOffsetIndex: 93,
|
||||
generatedAbsoluteIndex: 2987,
|
||||
generatedAbsoluteIndex: 3295,
|
||||
generatedLineIndex: 114,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 91,
|
||||
contentLength: 1),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 638,
|
||||
documentLineIndex: 17,
|
||||
documentCharacterOffsetIndex: 94,
|
||||
generatedAbsoluteIndex: 3060,
|
||||
generatedAbsoluteIndex: 3460,
|
||||
generatedLineIndex: 120,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 92,
|
||||
contentLength: 1),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 643,
|
||||
documentLineIndex: 18,
|
||||
generatedAbsoluteIndex: 3245,
|
||||
generatedAbsoluteIndex: 3645,
|
||||
generatedLineIndex: 128,
|
||||
characterOffsetIndex: 0,
|
||||
contentLength: 15),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 163,
|
||||
documentLineIndex: 7,
|
||||
documentCharacterOffsetIndex: 32,
|
||||
generatedAbsoluteIndex: 3394,
|
||||
generatedAbsoluteIndex: 3820,
|
||||
generatedLineIndex: 135,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 32,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 769,
|
||||
documentLineIndex: 21,
|
||||
generatedAbsoluteIndex: 3477,
|
||||
generatedAbsoluteIndex: 3903,
|
||||
generatedLineIndex: 140,
|
||||
characterOffsetIndex: 0,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 783,
|
||||
documentLineIndex: 21,
|
||||
generatedAbsoluteIndex: 3575,
|
||||
generatedAbsoluteIndex: 4001,
|
||||
generatedLineIndex: 146,
|
||||
characterOffsetIndex: 14,
|
||||
contentLength: 21),
|
||||
|
|
@ -717,7 +713,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 836,
|
||||
documentLineIndex: 22,
|
||||
documentCharacterOffsetIndex: 29,
|
||||
generatedAbsoluteIndex: 3832,
|
||||
generatedAbsoluteIndex: 4258,
|
||||
generatedLineIndex: 154,
|
||||
generatedCharacterOffsetIndex: 28,
|
||||
contentLength: 1),
|
||||
|
|
@ -725,7 +721,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 837,
|
||||
documentLineIndex: 22,
|
||||
documentCharacterOffsetIndex: 30,
|
||||
generatedAbsoluteIndex: 3833,
|
||||
generatedAbsoluteIndex: 4259,
|
||||
generatedLineIndex: 154,
|
||||
generatedCharacterOffsetIndex: 29,
|
||||
contentLength: 7),
|
||||
|
|
@ -733,7 +729,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 844,
|
||||
documentLineIndex: 22,
|
||||
documentCharacterOffsetIndex: 37,
|
||||
generatedAbsoluteIndex: 3840,
|
||||
generatedAbsoluteIndex: 4266,
|
||||
generatedLineIndex: 154,
|
||||
generatedCharacterOffsetIndex: 36,
|
||||
contentLength: 1),
|
||||
|
|
@ -741,7 +737,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 711,
|
||||
documentLineIndex: 20,
|
||||
documentCharacterOffsetIndex: 39,
|
||||
generatedAbsoluteIndex: 4009,
|
||||
generatedAbsoluteIndex: 4435,
|
||||
generatedLineIndex: 160,
|
||||
generatedCharacterOffsetIndex: 38,
|
||||
contentLength: 23),
|
||||
|
|
@ -749,7 +745,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 734,
|
||||
documentLineIndex: 20,
|
||||
documentCharacterOffsetIndex: 62,
|
||||
generatedAbsoluteIndex: 4032,
|
||||
generatedAbsoluteIndex: 4458,
|
||||
generatedLineIndex: 160,
|
||||
generatedCharacterOffsetIndex: 61,
|
||||
contentLength: 7),
|
||||
|
|
@ -757,7 +753,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 976,
|
||||
documentLineIndex: 25,
|
||||
documentCharacterOffsetIndex: 61,
|
||||
generatedAbsoluteIndex: 4306,
|
||||
generatedAbsoluteIndex: 4732,
|
||||
generatedLineIndex: 167,
|
||||
generatedCharacterOffsetIndex: 60,
|
||||
contentLength: 1),
|
||||
|
|
@ -765,7 +761,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 977,
|
||||
documentLineIndex: 25,
|
||||
documentCharacterOffsetIndex: 62,
|
||||
generatedAbsoluteIndex: 4307,
|
||||
generatedAbsoluteIndex: 4733,
|
||||
generatedLineIndex: 167,
|
||||
generatedCharacterOffsetIndex: 61,
|
||||
contentLength: 30),
|
||||
|
|
@ -773,7 +769,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 1007,
|
||||
documentLineIndex: 25,
|
||||
documentCharacterOffsetIndex: 92,
|
||||
generatedAbsoluteIndex: 4337,
|
||||
generatedAbsoluteIndex: 4763,
|
||||
generatedLineIndex: 167,
|
||||
generatedCharacterOffsetIndex: 91,
|
||||
contentLength: 1),
|
||||
|
|
@ -781,7 +777,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 879,
|
||||
documentLineIndex: 24,
|
||||
documentCharacterOffsetIndex: 16,
|
||||
generatedAbsoluteIndex: 4487,
|
||||
generatedAbsoluteIndex: 4913,
|
||||
generatedLineIndex: 173,
|
||||
generatedCharacterOffsetIndex: 19,
|
||||
contentLength: 8),
|
||||
|
|
@ -789,7 +785,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 887,
|
||||
documentLineIndex: 24,
|
||||
documentCharacterOffsetIndex: 24,
|
||||
generatedAbsoluteIndex: 4495,
|
||||
generatedAbsoluteIndex: 4921,
|
||||
generatedLineIndex: 173,
|
||||
generatedCharacterOffsetIndex: 27,
|
||||
contentLength: 1),
|
||||
|
|
@ -797,14 +793,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 888,
|
||||
documentLineIndex: 24,
|
||||
documentCharacterOffsetIndex: 25,
|
||||
generatedAbsoluteIndex: 4496,
|
||||
generatedAbsoluteIndex: 4922,
|
||||
generatedLineIndex: 173,
|
||||
generatedCharacterOffsetIndex: 28,
|
||||
contentLength: 23),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1106,
|
||||
documentLineIndex: 28,
|
||||
generatedAbsoluteIndex: 4754,
|
||||
generatedAbsoluteIndex: 5180,
|
||||
generatedLineIndex: 180,
|
||||
characterOffsetIndex: 28,
|
||||
contentLength: 30),
|
||||
|
|
@ -812,42 +808,42 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 1044,
|
||||
documentLineIndex: 27,
|
||||
documentCharacterOffsetIndex: 16,
|
||||
generatedAbsoluteIndex: 4933,
|
||||
generatedAbsoluteIndex: 5359,
|
||||
generatedLineIndex: 186,
|
||||
generatedCharacterOffsetIndex: 19,
|
||||
contentLength: 30),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1234,
|
||||
documentLineIndex: 31,
|
||||
generatedAbsoluteIndex: 5198,
|
||||
generatedAbsoluteIndex: 5624,
|
||||
generatedLineIndex: 193,
|
||||
characterOffsetIndex: 28,
|
||||
contentLength: 3),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1237,
|
||||
documentLineIndex: 31,
|
||||
generatedAbsoluteIndex: 5201,
|
||||
generatedAbsoluteIndex: 5627,
|
||||
generatedLineIndex: 193,
|
||||
characterOffsetIndex: 31,
|
||||
contentLength: 2),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1239,
|
||||
documentLineIndex: 31,
|
||||
generatedAbsoluteIndex: 5203,
|
||||
generatedAbsoluteIndex: 5629,
|
||||
generatedLineIndex: 193,
|
||||
characterOffsetIndex: 33,
|
||||
contentLength: 27),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1266,
|
||||
documentLineIndex: 31,
|
||||
generatedAbsoluteIndex: 5230,
|
||||
generatedAbsoluteIndex: 5656,
|
||||
generatedLineIndex: 193,
|
||||
characterOffsetIndex: 60,
|
||||
contentLength: 1),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1267,
|
||||
documentLineIndex: 31,
|
||||
generatedAbsoluteIndex: 5231,
|
||||
generatedAbsoluteIndex: 5657,
|
||||
generatedLineIndex: 193,
|
||||
characterOffsetIndex: 61,
|
||||
contentLength: 10),
|
||||
|
|
@ -855,7 +851,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 1171,
|
||||
documentLineIndex: 30,
|
||||
documentCharacterOffsetIndex: 17,
|
||||
generatedAbsoluteIndex: 5390,
|
||||
generatedAbsoluteIndex: 5816,
|
||||
generatedLineIndex: 199,
|
||||
generatedCharacterOffsetIndex: 19,
|
||||
contentLength: 1),
|
||||
|
|
@ -863,7 +859,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 1172,
|
||||
documentLineIndex: 30,
|
||||
documentCharacterOffsetIndex: 18,
|
||||
generatedAbsoluteIndex: 5391,
|
||||
generatedAbsoluteIndex: 5817,
|
||||
generatedLineIndex: 199,
|
||||
generatedCharacterOffsetIndex: 20,
|
||||
contentLength: 29),
|
||||
|
|
@ -871,14 +867,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 1201,
|
||||
documentLineIndex: 30,
|
||||
documentCharacterOffsetIndex: 47,
|
||||
generatedAbsoluteIndex: 5420,
|
||||
generatedAbsoluteIndex: 5846,
|
||||
generatedLineIndex: 199,
|
||||
generatedCharacterOffsetIndex: 49,
|
||||
contentLength: 1),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1306,
|
||||
documentLineIndex: 33,
|
||||
generatedAbsoluteIndex: 5501,
|
||||
generatedAbsoluteIndex: 5927,
|
||||
generatedLineIndex: 204,
|
||||
characterOffsetIndex: 9,
|
||||
contentLength: 11),
|
||||
|
|
@ -886,21 +882,21 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 1361,
|
||||
documentLineIndex: 33,
|
||||
documentCharacterOffsetIndex: 64,
|
||||
generatedAbsoluteIndex: 5790,
|
||||
generatedAbsoluteIndex: 6216,
|
||||
generatedLineIndex: 208,
|
||||
generatedCharacterOffsetIndex: 63,
|
||||
contentLength: 7),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1326,
|
||||
documentLineIndex: 33,
|
||||
generatedAbsoluteIndex: 5948,
|
||||
generatedAbsoluteIndex: 6374,
|
||||
generatedLineIndex: 214,
|
||||
characterOffsetIndex: 29,
|
||||
contentLength: 3),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 1390,
|
||||
documentLineIndex: 35,
|
||||
generatedAbsoluteIndex: 6063,
|
||||
generatedAbsoluteIndex: 6489,
|
||||
generatedLineIndex: 225,
|
||||
characterOffsetIndex: 0,
|
||||
contentLength: 1),
|
||||
|
|
@ -967,15 +963,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 200,
|
||||
documentLineIndex: 5,
|
||||
documentCharacterOffsetIndex: 51,
|
||||
generatedAbsoluteIndex: 1199,
|
||||
generatedAbsoluteIndex: 1244,
|
||||
generatedLineIndex: 41,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 51,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 223,
|
||||
documentLineIndex: 5,
|
||||
generatedAbsoluteIndex: 1467,
|
||||
generatedAbsoluteIndex: 1512,
|
||||
generatedLineIndex: 48,
|
||||
characterOffsetIndex: 74,
|
||||
contentLength: 4),
|
||||
|
|
@ -1090,16 +1085,15 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 783,
|
||||
documentLineIndex: 20,
|
||||
documentCharacterOffsetIndex: 42,
|
||||
generatedAbsoluteIndex: 4142,
|
||||
generatedAbsoluteIndex: 4178,
|
||||
generatedLineIndex: 107,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 42,
|
||||
contentLength: 8),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 826,
|
||||
documentLineIndex: 21,
|
||||
documentCharacterOffsetIndex: 29,
|
||||
generatedAbsoluteIndex: 4621,
|
||||
generatedAbsoluteIndex: 4657,
|
||||
generatedLineIndex: 116,
|
||||
generatedCharacterOffsetIndex: 51,
|
||||
contentLength: 2),
|
||||
|
|
@ -1151,242 +1145,216 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 59,
|
||||
documentLineIndex: 2,
|
||||
documentCharacterOffsetIndex: 24,
|
||||
generatedAbsoluteIndex: 1002,
|
||||
generatedAbsoluteIndex: 1020,
|
||||
generatedLineIndex: 34,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 24,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 96,
|
||||
documentLineIndex: 4,
|
||||
documentCharacterOffsetIndex: 17,
|
||||
generatedAbsoluteIndex: 1160,
|
||||
generatedAbsoluteIndex: 1194,
|
||||
generatedLineIndex: 40,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 16,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 109,
|
||||
documentLineIndex: 4,
|
||||
documentCharacterOffsetIndex: 30,
|
||||
generatedAbsoluteIndex: 1258,
|
||||
generatedAbsoluteIndex: 1316,
|
||||
generatedLineIndex: 46,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 30,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 121,
|
||||
documentLineIndex: 4,
|
||||
documentCharacterOffsetIndex: 42,
|
||||
generatedAbsoluteIndex: 1349,
|
||||
generatedAbsoluteIndex: 1449,
|
||||
generatedLineIndex: 51,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 42,
|
||||
contentLength: 10),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 132,
|
||||
documentLineIndex: 4,
|
||||
documentCharacterOffsetIndex: 53,
|
||||
generatedAbsoluteIndex: 1445,
|
||||
generatedAbsoluteIndex: 1592,
|
||||
generatedLineIndex: 57,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 53,
|
||||
contentLength: 5),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 137,
|
||||
documentLineIndex: 4,
|
||||
documentCharacterOffsetIndex: 58,
|
||||
generatedAbsoluteIndex: 1529,
|
||||
generatedAbsoluteIndex: 1734,
|
||||
generatedLineIndex: 62,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 58,
|
||||
contentLength: 2),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 176,
|
||||
documentLineIndex: 6,
|
||||
documentCharacterOffsetIndex: 22,
|
||||
generatedAbsoluteIndex: 1684,
|
||||
generatedAbsoluteIndex: 1905,
|
||||
generatedLineIndex: 69,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 22,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 214,
|
||||
documentLineIndex: 6,
|
||||
documentCharacterOffsetIndex: 60,
|
||||
generatedAbsoluteIndex: 1833,
|
||||
generatedAbsoluteIndex: 2108,
|
||||
generatedLineIndex: 75,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 60,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 256,
|
||||
documentLineIndex: 8,
|
||||
documentCharacterOffsetIndex: 15,
|
||||
generatedAbsoluteIndex: 1997,
|
||||
generatedAbsoluteIndex: 2281,
|
||||
generatedLineIndex: 81,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 15,
|
||||
contentLength: 13),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 271,
|
||||
documentLineIndex: 8,
|
||||
documentCharacterOffsetIndex: 30,
|
||||
generatedAbsoluteIndex: 2089,
|
||||
generatedAbsoluteIndex: 2402,
|
||||
generatedLineIndex: 86,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 29,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 284,
|
||||
documentLineIndex: 8,
|
||||
documentCharacterOffsetIndex: 43,
|
||||
generatedAbsoluteIndex: 2187,
|
||||
generatedAbsoluteIndex: 2537,
|
||||
generatedLineIndex: 92,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 43,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 296,
|
||||
documentLineIndex: 8,
|
||||
documentCharacterOffsetIndex: 55,
|
||||
generatedAbsoluteIndex: 2278,
|
||||
generatedAbsoluteIndex: 2683,
|
||||
generatedLineIndex: 97,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 55,
|
||||
contentLength: 10),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 307,
|
||||
documentLineIndex: 8,
|
||||
documentCharacterOffsetIndex: 66,
|
||||
generatedAbsoluteIndex: 2374,
|
||||
generatedAbsoluteIndex: 2839,
|
||||
generatedLineIndex: 103,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 66,
|
||||
contentLength: 5),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 312,
|
||||
documentLineIndex: 8,
|
||||
documentCharacterOffsetIndex: 71,
|
||||
generatedAbsoluteIndex: 2458,
|
||||
generatedAbsoluteIndex: 2994,
|
||||
generatedLineIndex: 108,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 71,
|
||||
contentLength: 2),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 316,
|
||||
documentLineIndex: 8,
|
||||
documentCharacterOffsetIndex: 75,
|
||||
generatedAbsoluteIndex: 2546,
|
||||
generatedAbsoluteIndex: 3151,
|
||||
generatedLineIndex: 114,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 75,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 348,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 17,
|
||||
generatedAbsoluteIndex: 2696,
|
||||
generatedAbsoluteIndex: 3312,
|
||||
generatedLineIndex: 120,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 17,
|
||||
contentLength: 13),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 363,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 32,
|
||||
generatedAbsoluteIndex: 2789,
|
||||
generatedAbsoluteIndex: 3436,
|
||||
generatedLineIndex: 125,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 31,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 376,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 45,
|
||||
generatedAbsoluteIndex: 2888,
|
||||
generatedAbsoluteIndex: 3574,
|
||||
generatedLineIndex: 131,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 45,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 388,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 57,
|
||||
generatedAbsoluteIndex: 2980,
|
||||
generatedAbsoluteIndex: 3723,
|
||||
generatedLineIndex: 136,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 57,
|
||||
contentLength: 10),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 399,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 68,
|
||||
generatedAbsoluteIndex: 3077,
|
||||
generatedAbsoluteIndex: 3882,
|
||||
generatedLineIndex: 142,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 68,
|
||||
contentLength: 5),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 404,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 73,
|
||||
generatedAbsoluteIndex: 3162,
|
||||
generatedAbsoluteIndex: 4040,
|
||||
generatedLineIndex: 147,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 73,
|
||||
contentLength: 2),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 408,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 77,
|
||||
generatedAbsoluteIndex: 3251,
|
||||
generatedAbsoluteIndex: 4200,
|
||||
generatedLineIndex: 153,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 77,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 445,
|
||||
documentLineIndex: 11,
|
||||
documentCharacterOffsetIndex: 17,
|
||||
generatedAbsoluteIndex: 3416,
|
||||
generatedAbsoluteIndex: 4376,
|
||||
generatedLineIndex: 159,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 17,
|
||||
contentLength: 13),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 460,
|
||||
documentLineIndex: 11,
|
||||
documentCharacterOffsetIndex: 32,
|
||||
generatedAbsoluteIndex: 3515,
|
||||
generatedAbsoluteIndex: 4501,
|
||||
generatedLineIndex: 164,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 32,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 492,
|
||||
documentLineIndex: 11,
|
||||
documentCharacterOffsetIndex: 64,
|
||||
generatedAbsoluteIndex: 3613,
|
||||
generatedAbsoluteIndex: 4657,
|
||||
generatedLineIndex: 169,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 64,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 529,
|
||||
documentLineIndex: 13,
|
||||
documentCharacterOffsetIndex: 17,
|
||||
generatedAbsoluteIndex: 3772,
|
||||
generatedAbsoluteIndex: 4832,
|
||||
generatedLineIndex: 175,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
generatedCharacterOffsetIndex: 16,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 542,
|
||||
documentLineIndex: 13,
|
||||
documentCharacterOffsetIndex: 30,
|
||||
generatedAbsoluteIndex: 3871,
|
||||
generatedAbsoluteIndex: 4955,
|
||||
generatedLineIndex: 181,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 30,
|
||||
contentLength: 12),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 554,
|
||||
documentLineIndex: 13,
|
||||
documentCharacterOffsetIndex: 42,
|
||||
generatedAbsoluteIndex: 3963,
|
||||
generatedAbsoluteIndex: 5089,
|
||||
generatedLineIndex: 186,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 42,
|
||||
contentLength: 10),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 565,
|
||||
documentLineIndex: 13,
|
||||
documentCharacterOffsetIndex: 53,
|
||||
generatedAbsoluteIndex: 4060,
|
||||
generatedAbsoluteIndex: 5233,
|
||||
generatedLineIndex: 192,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 53,
|
||||
contentLength: 5),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 570,
|
||||
documentLineIndex: 13,
|
||||
documentCharacterOffsetIndex: 58,
|
||||
generatedAbsoluteIndex: 4145,
|
||||
generatedAbsoluteIndex: 5376,
|
||||
generatedLineIndex: 197,
|
||||
generatedCharacterOffsetIndex: 0,
|
||||
characterOffsetIndex: 58,
|
||||
contentLength: 2),
|
||||
}
|
||||
},
|
||||
|
|
@ -1420,36 +1388,35 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 157,
|
||||
documentLineIndex: 7,
|
||||
documentCharacterOffsetIndex: 12,
|
||||
generatedAbsoluteIndex: 1326,
|
||||
generatedAbsoluteIndex: 1332,
|
||||
generatedLineIndex: 48,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 12,
|
||||
contentLength: 6),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 171,
|
||||
documentLineIndex: 7,
|
||||
generatedAbsoluteIndex: 1443,
|
||||
generatedAbsoluteIndex: 1449,
|
||||
generatedLineIndex: 53,
|
||||
characterOffsetIndex: 26,
|
||||
contentLength: 2),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 202,
|
||||
documentLineIndex: 8,
|
||||
generatedAbsoluteIndex: 1610,
|
||||
generatedAbsoluteIndex: 1616,
|
||||
generatedLineIndex: 59,
|
||||
characterOffsetIndex: 21,
|
||||
contentLength: 5),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 207,
|
||||
documentLineIndex: 8,
|
||||
generatedAbsoluteIndex: 1615,
|
||||
generatedAbsoluteIndex: 1621,
|
||||
generatedLineIndex: 59,
|
||||
characterOffsetIndex: 26,
|
||||
contentLength: 1),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 208,
|
||||
documentLineIndex: 8,
|
||||
generatedAbsoluteIndex: 1616,
|
||||
generatedAbsoluteIndex: 1622,
|
||||
generatedLineIndex: 59,
|
||||
characterOffsetIndex: 27,
|
||||
contentLength: 3),
|
||||
|
|
@ -1457,7 +1424,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 241,
|
||||
documentLineIndex: 9,
|
||||
documentCharacterOffsetIndex: 22,
|
||||
generatedAbsoluteIndex: 1785,
|
||||
generatedAbsoluteIndex: 1791,
|
||||
generatedLineIndex: 65,
|
||||
generatedCharacterOffsetIndex: 21,
|
||||
contentLength: 3),
|
||||
|
|
@ -1465,7 +1432,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 274,
|
||||
documentLineIndex: 10,
|
||||
documentCharacterOffsetIndex: 22,
|
||||
generatedAbsoluteIndex: 1954,
|
||||
generatedAbsoluteIndex: 1960,
|
||||
generatedLineIndex: 71,
|
||||
generatedCharacterOffsetIndex: 21,
|
||||
contentLength: 1),
|
||||
|
|
@ -1473,7 +1440,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 275,
|
||||
documentLineIndex: 10,
|
||||
documentCharacterOffsetIndex: 23,
|
||||
generatedAbsoluteIndex: 1955,
|
||||
generatedAbsoluteIndex: 1961,
|
||||
generatedLineIndex: 71,
|
||||
generatedCharacterOffsetIndex: 22,
|
||||
contentLength: 4),
|
||||
|
|
@ -1481,43 +1448,42 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
documentAbsoluteIndex: 279,
|
||||
documentLineIndex: 10,
|
||||
documentCharacterOffsetIndex: 27,
|
||||
generatedAbsoluteIndex: 1959,
|
||||
generatedAbsoluteIndex: 1965,
|
||||
generatedLineIndex: 71,
|
||||
generatedCharacterOffsetIndex: 26,
|
||||
contentLength: 1),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 307,
|
||||
documentLineIndex: 11,
|
||||
documentCharacterOffsetIndex: 19,
|
||||
generatedAbsoluteIndex: 2111,
|
||||
generatedAbsoluteIndex: 2130,
|
||||
generatedLineIndex: 77,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 19,
|
||||
contentLength: 6),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 321,
|
||||
documentLineIndex: 11,
|
||||
generatedAbsoluteIndex: 2236,
|
||||
generatedAbsoluteIndex: 2255,
|
||||
generatedLineIndex: 82,
|
||||
characterOffsetIndex: 33,
|
||||
contentLength: 4),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 325,
|
||||
documentLineIndex: 11,
|
||||
generatedAbsoluteIndex: 2240,
|
||||
generatedAbsoluteIndex: 2259,
|
||||
generatedLineIndex: 82,
|
||||
characterOffsetIndex: 37,
|
||||
contentLength: 2),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 327,
|
||||
documentLineIndex: 11,
|
||||
generatedAbsoluteIndex: 2242,
|
||||
generatedAbsoluteIndex: 2261,
|
||||
generatedLineIndex: 82,
|
||||
characterOffsetIndex: 39,
|
||||
contentLength: 8),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 335,
|
||||
documentLineIndex: 11,
|
||||
generatedAbsoluteIndex: 2250,
|
||||
generatedAbsoluteIndex: 2269,
|
||||
generatedLineIndex: 82,
|
||||
characterOffsetIndex: 47,
|
||||
contentLength: 1),
|
||||
|
|
@ -1554,22 +1520,21 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 339,
|
||||
documentLineIndex: 7,
|
||||
documentCharacterOffsetIndex: 50,
|
||||
generatedAbsoluteIndex: 1385,
|
||||
generatedAbsoluteIndex: 1429,
|
||||
generatedLineIndex: 49,
|
||||
generatedCharacterOffsetIndex: 6,
|
||||
characterOffsetIndex: 50,
|
||||
contentLength: 23),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 389,
|
||||
documentLineIndex: 7,
|
||||
generatedAbsoluteIndex: 1692,
|
||||
generatedAbsoluteIndex: 1736,
|
||||
generatedLineIndex: 56,
|
||||
characterOffsetIndex: 100,
|
||||
contentLength: 4),
|
||||
BuildLineMapping(
|
||||
documentAbsoluteIndex: 424,
|
||||
documentLineIndex: 9,
|
||||
generatedAbsoluteIndex: 1775,
|
||||
generatedAbsoluteIndex: 1819,
|
||||
generatedLineIndex: 61,
|
||||
characterOffsetIndex: 0,
|
||||
contentLength: 15),
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ using System.Threading;
|
|||
using System.Web.WebPages.TestUtils;
|
||||
using Microsoft.AspNet.Razor.Editor;
|
||||
using Microsoft.AspNet.Razor.Parser;
|
||||
using Microsoft.AspNet.Razor.Parser.SyntaxTree;
|
||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||
using Microsoft.AspNet.Razor.Test.Framework;
|
||||
using Microsoft.AspNet.Razor.Test.Generator;
|
||||
using Microsoft.AspNet.Razor.Test.Utils;
|
||||
|
|
@ -33,6 +35,70 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
Assert.Throws<ArgumentException>("sourceFileName", () => new RazorEditorParser(CreateHost(), string.Empty));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(" ")]
|
||||
[InlineData("\r\n")]
|
||||
[InlineData("abcdefg")]
|
||||
[InlineData("\f\r\n abcd \t")]
|
||||
public void TreesAreDifferentReturnsFalseForAddedContent(string content)
|
||||
{
|
||||
// Arrange
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var blockFactory = new BlockFactory(factory);
|
||||
var original = new MarkupBlock(
|
||||
blockFactory.MarkupTagBlock("<p>"),
|
||||
blockFactory.TagHelperBlock(
|
||||
tagName: "div",
|
||||
tagMode: TagMode.StartTagAndEndTag,
|
||||
start: new SourceLocation(3, 0, 3),
|
||||
startTag: blockFactory.MarkupTagBlock("<div>"),
|
||||
children: new SyntaxTreeNode[]
|
||||
{
|
||||
factory.Markup($"{Environment.NewLine}{Environment.NewLine}")
|
||||
},
|
||||
endTag: blockFactory.MarkupTagBlock("</div>")),
|
||||
blockFactory.MarkupTagBlock("</p>"));
|
||||
|
||||
factory.Reset();
|
||||
|
||||
var modified = new MarkupBlock(
|
||||
blockFactory.MarkupTagBlock("<p>"),
|
||||
blockFactory.TagHelperBlock(
|
||||
tagName: "div",
|
||||
tagMode: TagMode.StartTagAndEndTag,
|
||||
start: new SourceLocation(3, 0, 3),
|
||||
startTag: blockFactory.MarkupTagBlock("<div>"),
|
||||
children: new SyntaxTreeNode[]
|
||||
{
|
||||
factory.Markup($"{Environment.NewLine}{content}{Environment.NewLine}")
|
||||
},
|
||||
endTag: blockFactory.MarkupTagBlock("</div>")),
|
||||
blockFactory.MarkupTagBlock("</p>"));
|
||||
original.LinkNodes();
|
||||
modified.LinkNodes();
|
||||
|
||||
var oldBuffer = new StringTextBuffer($"<p><div>{Environment.NewLine}{Environment.NewLine}</div></p>");
|
||||
var newBuffer = new StringTextBuffer(
|
||||
$"<p><div>{Environment.NewLine}{content}{Environment.NewLine}</div></p>");
|
||||
|
||||
// Act
|
||||
var treesAreDifferent = BackgroundParser.TreesAreDifferent(
|
||||
original,
|
||||
modified,
|
||||
new[]
|
||||
{
|
||||
new TextChange(
|
||||
position: 8 + Environment.NewLine.Length,
|
||||
oldLength: 0,
|
||||
oldBuffer: oldBuffer,
|
||||
newLength: content.Length,
|
||||
newBuffer: newBuffer)
|
||||
});
|
||||
|
||||
// Assert
|
||||
Assert.False(treesAreDifferent);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TreesAreDifferentReturnsTrueIfTreeStructureIsDifferent()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNet.Razor.Parser.SyntaxTree;
|
||||
using Microsoft.AspNet.Razor.Parser.TagHelpers;
|
||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||
|
||||
namespace Microsoft.AspNet.Razor.Test.Framework
|
||||
{
|
||||
|
|
@ -55,5 +57,27 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
_factory.Markup(content).Accepts(acceptedCharacters)
|
||||
);
|
||||
}
|
||||
|
||||
public Block TagHelperBlock(
|
||||
string tagName,
|
||||
TagMode tagMode,
|
||||
SourceLocation start,
|
||||
Block startTag,
|
||||
SyntaxTreeNode[] children,
|
||||
Block endTag)
|
||||
{
|
||||
var builder = new TagHelperBlockBuilder(
|
||||
tagName,
|
||||
tagMode,
|
||||
attributes: new List<KeyValuePair<string, SyntaxTreeNode>>(),
|
||||
children: children)
|
||||
{
|
||||
Start = start,
|
||||
SourceStartTag = startTag,
|
||||
SourceEndTag = endTag
|
||||
};
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
// 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 Microsoft.AspNet.Razor.Parser.SyntaxTree;
|
||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||
using Microsoft.AspNet.Razor.Test.Framework;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNet.Razor.Parser.TagHelpers
|
||||
{
|
||||
public class TagHelperBlockTest
|
||||
{
|
||||
[Fact]
|
||||
public void FlattenFlattensSelfClosingTagHelpers()
|
||||
{
|
||||
// Arrange
|
||||
var spanFactory = SpanFactory.CreateCsHtml();
|
||||
var blockFactory = new BlockFactory(spanFactory);
|
||||
var tagHelper = (TagHelperBlock)blockFactory.TagHelperBlock(
|
||||
tagName: "input",
|
||||
tagMode: TagMode.SelfClosing,
|
||||
start: SourceLocation.Zero,
|
||||
startTag: blockFactory.MarkupTagBlock("<input />"),
|
||||
children: new SyntaxTreeNode[0],
|
||||
endTag: null);
|
||||
spanFactory.Reset();
|
||||
var expectedNode = spanFactory.Markup("<input />");
|
||||
|
||||
// Act
|
||||
var flattenedNodes = tagHelper.Flatten();
|
||||
|
||||
// Assert
|
||||
var node = Assert.Single(flattenedNodes);
|
||||
Assert.True(node.EquivalentTo(expectedNode));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FlattenFlattensStartAndEndTagTagHelpers()
|
||||
{
|
||||
// Arrange
|
||||
var spanFactory = SpanFactory.CreateCsHtml();
|
||||
var blockFactory = new BlockFactory(spanFactory);
|
||||
var tagHelper = (TagHelperBlock)blockFactory.TagHelperBlock(
|
||||
tagName: "div",
|
||||
tagMode: TagMode.StartTagAndEndTag,
|
||||
start: SourceLocation.Zero,
|
||||
startTag: blockFactory.MarkupTagBlock("<div>"),
|
||||
children: new SyntaxTreeNode[0],
|
||||
endTag: blockFactory.MarkupTagBlock("</div>"));
|
||||
spanFactory.Reset();
|
||||
var expectedStartTag = spanFactory.Markup("<div>");
|
||||
var expectedEndTag = spanFactory.Markup("</div>");
|
||||
|
||||
// Act
|
||||
var flattenedNodes = tagHelper.Flatten();
|
||||
|
||||
// Assert
|
||||
Assert.Collection(
|
||||
flattenedNodes,
|
||||
first =>
|
||||
{
|
||||
Assert.True(first.EquivalentTo(expectedStartTag));
|
||||
},
|
||||
second =>
|
||||
{
|
||||
Assert.True(second.EquivalentTo(expectedEndTag));
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FlattenFlattensStartAndEndTagWithChildrenTagHelpers()
|
||||
{
|
||||
// Arrange
|
||||
var spanFactory = SpanFactory.CreateCsHtml();
|
||||
var blockFactory = new BlockFactory(spanFactory);
|
||||
var tagHelper = (TagHelperBlock)blockFactory.TagHelperBlock(
|
||||
tagName: "div",
|
||||
tagMode: TagMode.StartTagAndEndTag,
|
||||
start: SourceLocation.Zero,
|
||||
startTag: blockFactory.MarkupTagBlock("<div>"),
|
||||
children: new SyntaxTreeNode[] { spanFactory.Markup("Hello World") },
|
||||
endTag: blockFactory.MarkupTagBlock("</div>"));
|
||||
spanFactory.Reset();
|
||||
var expectedStartTag = spanFactory.Markup("<div>");
|
||||
var expectedChildren = spanFactory.Markup("Hello World");
|
||||
var expectedEndTag = spanFactory.Markup("</div>");
|
||||
|
||||
// Act
|
||||
var flattenedNodes = tagHelper.Flatten();
|
||||
|
||||
// Assert
|
||||
Assert.Collection(
|
||||
flattenedNodes,
|
||||
first =>
|
||||
{
|
||||
Assert.True(first.EquivalentTo(expectedStartTag));
|
||||
},
|
||||
second =>
|
||||
{
|
||||
Assert.True(second.EquivalentTo(expectedChildren));
|
||||
},
|
||||
third =>
|
||||
{
|
||||
Assert.True(third.EquivalentTo(expectedEndTag));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -55,7 +55,7 @@ namespace TestOutput
|
|||
StartTagHelperWritingScope();
|
||||
WriteLiteral("2000 + ");
|
||||
#line 6 "BasicTagHelpers.cshtml"
|
||||
Write(ViewBag.DefaultInterval);
|
||||
Write(ViewBag.DefaultInterval);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ namespace TestOutput
|
|||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
|
||||
#line 6 "BasicTagHelpers.cshtml"
|
||||
__o = ViewBag.DefaultInterval;
|
||||
__o = ViewBag.DefaultInterval;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ namespace TestOutput
|
|||
StartTagHelperWritingScope();
|
||||
WriteLiteral("2000 + ");
|
||||
#line 6 "BasicTagHelpers.cshtml"
|
||||
Write(ViewBag.DefaultInterval);
|
||||
Write(ViewBag.DefaultInterval);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ if (true)
|
|||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
|
||||
#line 16 "ComplexTagHelpers.cshtml"
|
||||
__o = checkbox;
|
||||
__o = checkbox;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -85,7 +85,7 @@ __o = checkbox;
|
|||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
|
||||
#line 17 "ComplexTagHelpers.cshtml"
|
||||
__o = true ? "checkbox" : "anything";
|
||||
__o = true ? "checkbox" : "anything";
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -94,31 +94,31 @@ __o = true ? "checkbox" : "anything";
|
|||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
if(true) {
|
||||
if(true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -133,7 +133,7 @@ if(true) {
|
|||
|
||||
__PTagHelper = CreateTagHelper<PTagHelper>();
|
||||
#line 8 "ComplexTagHelpers.cshtml"
|
||||
__o = DateTime.Now;
|
||||
__o = DateTime.Now;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ namespace TestOutput
|
|||
__tagHelperExecutionContext.Add(__InputTagHelper2);
|
||||
StartTagHelperWritingScope();
|
||||
#line 16 "ComplexTagHelpers.cshtml"
|
||||
WriteLiteral(checkbox);
|
||||
WriteLiteral(checkbox);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -158,7 +158,7 @@ WriteLiteral(checkbox);
|
|||
__tagHelperExecutionContext.Add(__InputTagHelper2);
|
||||
StartTagHelperWritingScope();
|
||||
#line 17 "ComplexTagHelpers.cshtml"
|
||||
WriteLiteral(true ? "checkbox" : "anything");
|
||||
WriteLiteral(true ? "checkbox" : "anything");
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -183,33 +183,33 @@ WriteLiteral(true ? "checkbox" : "anything");
|
|||
__tagHelperExecutionContext.Add(__InputTagHelper2);
|
||||
StartTagHelperWritingScope();
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
if(true) {
|
||||
if(true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
WriteLiteral("checkbox");
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
WriteLiteral("anything");
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 18 "ComplexTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -32,170 +32,170 @@ namespace TestOutput
|
|||
{
|
||||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
#line 3 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = DateTime.Now;
|
||||
__o = DateTime.Now;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = string.Empty;
|
||||
__o = string.Empty;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = false;
|
||||
__o = false;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
#line 7 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = DateTime.Now;
|
||||
__o = DateTime.Now;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
__InputTagHelper.Bound = string.Empty;
|
||||
#line 7 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = DateTime.Now;
|
||||
__o = DateTime.Now;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = long.MinValue;
|
||||
__o = long.MinValue;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = string.Empty;
|
||||
__o = string.Empty;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = false;
|
||||
__o = false;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = int.MaxValue;
|
||||
__o = int.MaxValue;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
__InputTagHelper.Bound = string.Empty;
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = long.MinValue;
|
||||
__o = long.MinValue;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = string.Empty;
|
||||
__o = string.Empty;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = false;
|
||||
__o = false;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = int.MaxValue;
|
||||
__o = int.MaxValue;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
#line 12 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = long.MinValue;
|
||||
__o = long.MinValue;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 12 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = DateTime.Now;
|
||||
__o = DateTime.Now;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 12 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = int.MaxValue;
|
||||
__o = int.MaxValue;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = string.Empty;
|
||||
__o = string.Empty;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
__o = false;
|
||||
__o = false;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ AddHtmlAttributeValue(" ", 57, DateTime.Now, 58, 14, false);
|
|||
BeginAddHtmlAttributeValues(__tagHelperExecutionContext, "unbound", 2);
|
||||
AddHtmlAttributeValue("", 95, new Template((__razor_attribute_value_writer) => {
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -69,20 +69,20 @@ WriteTo(__razor_attribute_value_writer, string.Empty);
|
|||
#line hidden
|
||||
Instrumentation.EndContext();
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
Instrumentation.BeginContext(132, 5, false);
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteTo(__razor_attribute_value_writer, false);
|
||||
WriteTo(__razor_attribute_value_writer, false);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
Instrumentation.EndContext();
|
||||
#line 5 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -107,7 +107,7 @@ WriteTo(__razor_attribute_value_writer, false);
|
|||
StartTagHelperWritingScope();
|
||||
WriteLiteral("prefix ");
|
||||
#line 7 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteLiteral(DateTime.Now);
|
||||
WriteLiteral(DateTime.Now);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -139,42 +139,42 @@ AddHtmlAttributeValue(" ", 212, DateTime.Now, 213, 14, false);
|
|||
__tagHelperExecutionContext.Add(__InputTagHelper);
|
||||
StartTagHelperWritingScope();
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteLiteral(long.MinValue);
|
||||
WriteLiteral(long.MinValue);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" ");
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteLiteral(string.Empty);
|
||||
WriteLiteral(string.Empty);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteLiteral(false);
|
||||
WriteLiteral(false);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
WriteLiteral(" ");
|
||||
#line 9 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteLiteral(int.MaxValue);
|
||||
WriteLiteral(int.MaxValue);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -189,33 +189,33 @@ AddHtmlAttributeValue("", 347, long.MinValue, 347, 14, false);
|
|||
#line hidden
|
||||
AddHtmlAttributeValue(" ", 361, new Template((__razor_attribute_value_writer) => {
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
Instrumentation.BeginContext(376, 12, false);
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteTo(__razor_attribute_value_writer, string.Empty);
|
||||
WriteTo(__razor_attribute_value_writer, string.Empty);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
Instrumentation.EndContext();
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
Instrumentation.BeginContext(399, 5, false);
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteTo(__razor_attribute_value_writer, false);
|
||||
WriteTo(__razor_attribute_value_writer, false);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
Instrumentation.EndContext();
|
||||
#line 10 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -276,7 +276,7 @@ AddHtmlAttributeValue(" ", 490, int.MaxValue, 491, 14, false);
|
|||
BeginAddHtmlAttributeValues(__tagHelperExecutionContext, "unbound", 1);
|
||||
AddHtmlAttributeValue("", 528, new Template((__razor_attribute_value_writer) => {
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
if (true) {
|
||||
if (true) {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -289,20 +289,20 @@ WriteTo(__razor_attribute_value_writer, string.Empty);
|
|||
#line hidden
|
||||
Instrumentation.EndContext();
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
} else {
|
||||
} else {
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
Instrumentation.BeginContext(565, 5, false);
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
WriteTo(__razor_attribute_value_writer, false);
|
||||
WriteTo(__razor_attribute_value_writer, false);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
Instrumentation.EndContext();
|
||||
#line 14 "DynamicAttributeTagHelpers.cshtml"
|
||||
}
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace TestOutput
|
|||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
|
||||
#line 6 "EscapedTagHelpers.cshtml"
|
||||
__o = DateTime.Now;
|
||||
__o = DateTime.Now;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace TestOutput
|
|||
__tagHelperExecutionContext.Add(__InputTagHelper2);
|
||||
StartTagHelperWritingScope();
|
||||
#line 6 "EscapedTagHelpers.cshtml"
|
||||
WriteLiteral(DateTime.Now);
|
||||
WriteLiteral(DateTime.Now);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace TestOutput
|
|||
__InputTagHelper = CreateTagHelper<InputTagHelper>();
|
||||
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
|
||||
#line 8 "NestedScriptTagTagHelpers.cshtml"
|
||||
__o = ViewBag.DefaultInterval;
|
||||
__o = ViewBag.DefaultInterval;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ namespace TestOutput
|
|||
StartTagHelperWritingScope();
|
||||
WriteLiteral("2000 + ");
|
||||
#line 8 "NestedScriptTagTagHelpers.cshtml"
|
||||
Write(ViewBag.DefaultInterval);
|
||||
Write(ViewBag.DefaultInterval);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ __InputTagHelper1.IntProperty = 42;
|
|||
__InputTagHelper1.StringDictionaryProperty["paprika"] = "another string";
|
||||
__InputTagHelper2.StringDictionaryProperty["paprika"] = __InputTagHelper1.StringDictionaryProperty["paprika"];
|
||||
#line 21 "PrefixedAttributeTagHelpers.cshtml"
|
||||
__o = literate;
|
||||
__o = literate;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ __InputTagHelper2.IntDictionaryProperty["grabber"] = 42;
|
|||
StartTagHelperWritingScope();
|
||||
WriteLiteral("literate ");
|
||||
#line 21 "PrefixedAttributeTagHelpers.cshtml"
|
||||
WriteLiteral(literate);
|
||||
WriteLiteral(literate);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ __InputTagHelper1.IntProperty = 42;
|
|||
StartTagHelperWritingScope();
|
||||
WriteLiteral("literate ");
|
||||
#line 21 "PrefixedAttributeTagHelpers.cshtml"
|
||||
WriteLiteral(literate);
|
||||
WriteLiteral(literate);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ namespace TestOutput
|
|||
Instrumentation.EndContext();
|
||||
Instrumentation.BeginContext(313, 4, false);
|
||||
#line 11 "TagHelpersInSection.cshtml"
|
||||
Write(code);
|
||||
Write(code);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -76,7 +76,7 @@ namespace TestOutput
|
|||
StartTagHelperWritingScope();
|
||||
WriteLiteral("Current Time: ");
|
||||
#line 9 "TagHelpersInSection.cshtml"
|
||||
WriteLiteral(DateTime.Now);
|
||||
WriteLiteral(DateTime.Now);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace TestOutput
|
|||
__tagHelperExecutionContext.AddTagHelperAttribute("age", __PTagHelper.Age);
|
||||
StartTagHelperWritingScope();
|
||||
#line 7 "TagHelpersWithWeirdlySpacedAttributes.cshtml"
|
||||
Write(true);
|
||||
Write(true);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace TestOutput
|
|||
#line hidden
|
||||
__PTagHelper = CreateTagHelper<PTagHelper>();
|
||||
#line 8 "TransitionsInTagHelperAttributes.cshtml"
|
||||
__o = @class;
|
||||
__o = @class;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
@ -75,7 +75,7 @@ __o = @class;
|
|||
#line hidden
|
||||
__PTagHelper = CreateTagHelper<PTagHelper>();
|
||||
#line 12 "TransitionsInTagHelperAttributes.cshtml"
|
||||
__o = @class;
|
||||
__o = @class;
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
|
|
|||
Loading…
Reference in New Issue