File tree Expand file tree Collapse file tree
src/SharpFM.Model/ClipTypes
tests/SharpFM.Tests/ClipTypes Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22using System . Collections . Generic ;
33using SharpFM . Model . Parsing ;
44using SharpFM . Model . Schema ;
5+ using SharpFM . Model . Scripting ;
56
67namespace SharpFM . Model . ClipTypes ;
78
@@ -63,6 +64,6 @@ public ClipParseResult Parse(string xml)
6364
6465 public string DefaultXml ( string clipName ) =>
6566 _wrapsBaseTable
66- ? $ "<fmxmlsnippet type=\" FMObjectList\" ><BaseTable name=\" { clipName } \" ></BaseTable></fmxmlsnippet>"
67+ ? $ "<fmxmlsnippet type=\" FMObjectList\" ><BaseTable name=\" { XmlHelpers . XmlEscape ( clipName ) } \" ></BaseTable></fmxmlsnippet>"
6768 : "<fmxmlsnippet type=\" FMObjectList\" ></fmxmlsnippet>" ;
6869}
Original file line number Diff line number Diff line change @@ -69,4 +69,19 @@ public void DefaultXml_ProducesParseableSnippet()
6969 var result = TableClipStrategy . Table . Parse ( seed ) ;
7070 Assert . IsType < ParseSuccess > ( result ) ;
7171 }
72+
73+ [ Theory ]
74+ [ InlineData ( "My \" favorite\" stuff" ) ]
75+ [ InlineData ( "A & B" ) ]
76+ [ InlineData ( "<Angle>" ) ]
77+ public void Table_DefaultXml_EscapesPunctuationInName ( string clipName )
78+ {
79+ var seed = TableClipStrategy . Table . DefaultXml ( clipName ) ;
80+
81+ var result = TableClipStrategy . Table . Parse ( seed ) ;
82+
83+ var success = Assert . IsType < ParseSuccess > ( result ) ;
84+ var model = Assert . IsType < TableClipModel > ( success . Model ) ;
85+ Assert . Equal ( clipName , model . Table . Name ) ;
86+ }
7287}
You can’t perform that action at this time.
0 commit comments