@@ -1230,6 +1230,70 @@ public void TestMarkupMultiplePropertyParsing()
12301230
12311231 }
12321232
1233+ [ Theory ]
1234+ [ InlineData ( "[p=1,1 /]" ) ]
1235+ [ InlineData ( "[p=-1,1 /]" ) ]
1236+ public void TestMarkupPropertyParsingUsesInvariantNumberParsingFails ( string input )
1237+ {
1238+ var targetCultures = new [ ] {
1239+ "en" ,
1240+ "zh-Hans" ,
1241+ "ru" ,
1242+ "es-US" ,
1243+ "es" ,
1244+ "sw" ,
1245+ "ar" ,
1246+ "pt-BR" ,
1247+ "de" ,
1248+ "fr" ,
1249+ "fr-FR" ,
1250+ "ja" ,
1251+ "pl" ,
1252+ "ko" ,
1253+ } ;
1254+
1255+ foreach ( var culture in targetCultures )
1256+ {
1257+ System . Globalization . CultureInfo . CurrentCulture = new System . Globalization . CultureInfo ( culture ) ;
1258+ var lineParser = new LineParser ( ) ;
1259+ var markup = lineParser . ParseStringWithDiagnostics ( input , culture ) ;
1260+ markup . diagnostics . Should ( ) . ContainSingle ( ) ;
1261+ }
1262+ }
1263+
1264+ [ Theory ]
1265+ [ InlineData ( "[p=1.1 /]" , 1.1 ) ]
1266+ [ InlineData ( "[p=-1.1 /]" , - 1.1 ) ]
1267+ public void TestMarkupPropertyParsingUsesInvariantNumber ( string input , float propertyValue )
1268+ {
1269+ var targetCultures = new [ ] {
1270+ "en" ,
1271+ "zh-Hans" ,
1272+ "ru" ,
1273+ "es-US" ,
1274+ "es" ,
1275+ "sw" ,
1276+ "ar" ,
1277+ "pt-BR" ,
1278+ "de" ,
1279+ "fr" ,
1280+ "fr-FR" ,
1281+ "ja" ,
1282+ "pl" ,
1283+ "ko" ,
1284+ } ;
1285+
1286+ foreach ( var culture in targetCultures )
1287+ {
1288+ System . Globalization . CultureInfo . CurrentCulture = new System . Globalization . CultureInfo ( culture ) ;
1289+ var lineParser = new LineParser ( ) ;
1290+ var markup = lineParser . ParseStringWithDiagnostics ( input , culture ) ;
1291+ markup . diagnostics . Should ( ) . BeEmpty ( ) ;
1292+ markup . markup . Attributes [ 0 ] . Properties [ "p" ] . FloatValue . Should ( ) . Be ( propertyValue ) ;
1293+ }
1294+ }
1295+
1296+
12331297 [ Theory ]
12341298 [ InlineData ( @"[a p=""string""]s[/a]" , MarkupValueType . String , "string" ) ]
12351299 [ InlineData ( @"[a p=""str\""ing""]s[/a]" , MarkupValueType . String , @"str""ing" ) ]
@@ -1253,6 +1317,8 @@ public void TestMarkupPropertyParsing(string input, MarkupValueType expectedType
12531317 var lineParser = new LineParser ( ) ;
12541318 var markup = lineParser . ParseString ( input , "en" ) ;
12551319
1320+ markup . Attributes . Should ( ) . ContainSingle ( ) ;
1321+
12561322 var attribute = markup . Attributes [ 0 ] ;
12571323 var propertyValue = attribute . Properties [ "p" ] ;
12581324
0 commit comments