|
3 | 3 | // See the LICENSE file in the project root for more information. |
4 | 4 | // Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone |
5 | 5 |
|
| 6 | +using System.Globalization; |
| 7 | + |
6 | 8 | namespace UnitTest.Components; |
7 | 9 |
|
8 | 10 | public class TimePickerTest : BootstrapBlazorTestBase |
@@ -98,4 +100,37 @@ public async Task OnClickConfirm_Ok() |
98 | 100 | await cut.InvokeAsync(() => btn.Click()); |
99 | 101 | Assert.True(confirm); |
100 | 102 | } |
| 103 | + |
| 104 | + [Fact] |
| 105 | + public async Task TimePickerCell_StyleName_CultureInvariant() |
| 106 | + { |
| 107 | + // 保存老的 Culture 设置 |
| 108 | + var originalCulture = CultureInfo.CurrentCulture; |
| 109 | + var originalUICulture = CultureInfo.CurrentUICulture; |
| 110 | + |
| 111 | + // 设置为土耳其文化环境 小数点使用逗号 |
| 112 | + var trCulture = new CultureInfo("tr-TR"); |
| 113 | + CultureInfo.CurrentCulture = trCulture; |
| 114 | + CultureInfo.CurrentUICulture = trCulture; |
| 115 | + |
| 116 | + var cut = Context.RenderComponent<TimePickerCell>(pb => |
| 117 | + { |
| 118 | + pb.Add(a => a.ViewMode, TimePickerCellViewMode.Hour); |
| 119 | + pb.Add(a => a.Value, TimeSpan.FromHours(2.5)); |
| 120 | + }); |
| 121 | + |
| 122 | + // 调用 OnHeightCallback 方法设置高度 |
| 123 | + await cut.InvokeAsync(() => cut.Instance.OnHeightCallback(12.25)); |
| 124 | + cut.SetParametersAndRender(); |
| 125 | + |
| 126 | + // 检查高度样式是否正确生成应该是用点而不是逗号 |
| 127 | + var styleElement = cut.Find("ul.time-spinner-list"); |
| 128 | + var style = styleElement.GetAttribute("style"); |
| 129 | + |
| 130 | + Assert.Contains("-24.5px", style); |
| 131 | + |
| 132 | + // 恢复当前线程文化设置 |
| 133 | + CultureInfo.CurrentCulture = originalCulture; |
| 134 | + CultureInfo.CurrentUICulture = originalUICulture; |
| 135 | + } |
101 | 136 | } |
0 commit comments