@@ -521,6 +521,55 @@ public void MultilineTextTemplate_ReturnsTextArea()
521
521
Assert . Equal ( expected , HtmlContentUtilities . HtmlContentToString ( result ) ) ;
522
522
}
523
523
524
+ [ Fact ]
525
+ public void PasswordTemplate_ReturnsInputElement_IgnoresValues ( )
526
+ {
527
+ // Arrange
528
+ var expected = "<input class=\" HtmlEncode[[text-box single-line password]]\" " +
529
+ "id=\" HtmlEncode[[FieldPrefix]]\" name=\" HtmlEncode[[FieldPrefix]]\" " +
530
+ "type=\" HtmlEncode[[password]]\" />" ;
531
+
532
+ // Template ignores Model.
533
+ var model = "Model string" ;
534
+
535
+ var helper = DefaultTemplatesUtilities . GetHtmlHelper ( model ) ;
536
+ var viewData = helper . ViewData ;
537
+ var templateInfo = viewData . TemplateInfo ;
538
+ templateInfo . HtmlFieldPrefix = "FieldPrefix" ;
539
+
540
+ // Template ignores FormattedModelValue, ModelState and ViewData.
541
+ templateInfo . FormattedModelValue = "Formatted string" ;
542
+ viewData . ModelState . SetModelValue ( "FieldPrefix" , "Raw model string" , "Attempted model string" ) ;
543
+ viewData [ "FieldPrefix" ] = "ViewData string" ;
544
+
545
+ // Act
546
+ var result = DefaultEditorTemplates . PasswordTemplate ( helper ) ;
547
+
548
+ // Assert
549
+ Assert . Equal ( expected , HtmlContentUtilities . HtmlContentToString ( result ) ) ;
550
+ }
551
+
552
+ [ Fact ]
553
+ public void PasswordTemplate_ReturnsInputElement_UsesHtmlAttributes ( )
554
+ {
555
+ // Arrange
556
+ var expected = "<input class=\" HtmlEncode[[super text-box single-line password]]\" " +
557
+ "id=\" HtmlEncode[[FieldPrefix]]\" name=\" HtmlEncode[[FieldPrefix]]\" " +
558
+ "type=\" HtmlEncode[[password]]\" value=\" HtmlEncode[[Html attributes string]]\" />" ;
559
+ var helper = DefaultTemplatesUtilities . GetHtmlHelper < string > ( model : null ) ;
560
+ var viewData = helper . ViewData ;
561
+ var templateInfo = viewData . TemplateInfo ;
562
+ templateInfo . HtmlFieldPrefix = "FieldPrefix" ;
563
+
564
+ viewData [ "htmlAttributes" ] = new { @class = "super" , value = "Html attributes string" } ;
565
+
566
+ // Act
567
+ var result = DefaultEditorTemplates . PasswordTemplate ( helper ) ;
568
+
569
+ // Assert
570
+ Assert . Equal ( expected , HtmlContentUtilities . HtmlContentToString ( result ) ) ;
571
+ }
572
+
524
573
[ Theory ]
525
574
[ MemberData ( nameof ( TemplateNameData ) ) ]
526
575
public void Editor_CallsExpectedHtmlHelper ( string templateName , string expectedResult )
0 commit comments