Browse Source

fix to remove GridLength.ToString() culture dependency.

pull/8724/head
rabbitism 4 years ago
parent
commit
928f03a404
  1. 2
      src/Avalonia.Controls/GridLength.cs
  2. 20
      tests/Avalonia.Controls.UnitTests/GridLengthTests.cs

2
src/Avalonia.Controls/GridLength.cs

@ -180,7 +180,7 @@ namespace Avalonia.Controls
return "Auto";
}
string s = _value.ToString();
string s = _value.ToString(CultureInfo.InvariantCulture);
return IsStar ? s + "*" : s;
}

20
tests/Avalonia.Controls.UnitTests/GridLengthTests.cs

@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using Xunit;
namespace Avalonia.Controls.UnitTests
@ -100,5 +102,23 @@ namespace Avalonia.Controls.UnitTests
},
result);
}
[Theory]
[InlineData(1.2d, GridUnitType.Pixel, "1.2")]
[InlineData(1.2d, GridUnitType.Star, "1.2*")]
[InlineData(1.2d, GridUnitType.Auto, "Auto")]
public async void ToString_AllCulture_Should_Pass(double d, GridUnitType type, string result)
{
List<CultureInfo> cultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures).ToList();
GridLength length = new GridLength(d, type);
foreach(var culture in cultureInfos)
{
await Task.Run(() =>
{
CultureInfo.CurrentCulture = culture;
Assert.Equal(result, length.ToString());
});
}
}
}
}

Loading…
Cancel
Save