Files
LlamaCasty/ytLive.Tests/SourceTextSettingsTests.cs
T
gramps 5f7bcc2425 fix(text): show selected formatting and style controls
Use category-filtered font and selected-item dropdowns, separate horizontal and vertical alignment, and reuse the border-color palette templates for text color. Persist vertical alignment additively. Follow the established static text-source pattern: https://obsproject.com/kb/text-sources
2026-11-04 17:05:06 -08:00

58 lines
2.1 KiB
C#

using Xunit;
using ytLive.Models;
namespace ytLive.Tests;
public class SourceTextSettingsTests
{
[Fact]
public void Text_Layer_Settings_Have_Safe_Defaults()
{
var source = new Source { Type = SourceType.TextOverlay };
Assert.Equal("Text", source.TextContent);
Assert.Equal("Segoe UI", source.TextFontFamily);
Assert.Equal(48, source.TextFontSize);
Assert.Equal("#FFFFFF", source.TextColor);
Assert.False(source.TextBold);
Assert.False(source.TextItalic);
Assert.False(source.TextUnderline);
Assert.Equal(TextLayerAlignment.Left, source.TextAlignment);
Assert.Equal(TextLayerVerticalAlignment.Top, source.TextVerticalAlignment);
Assert.Equal("#FFFFFF", source.TextColorEntry.Hex);
Assert.Contains(source.TextColorOptions, color => color.Hex == "#FFFFFF");
}
[Fact]
public void Text_Layer_Settings_Normalize_Invalid_Values()
{
var source = new Source
{
TextFontFamily = " ",
TextFontSize = double.NaN,
TextColor = "not-a-color",
TextAlignment = (TextLayerAlignment)999,
TextVerticalAlignment = (TextLayerVerticalAlignment)999,
};
Assert.Equal("Segoe UI", source.TextFontFamily);
Assert.Equal(48, source.TextFontSize);
Assert.Equal("#FFFFFF", source.TextColor);
Assert.Equal(TextLayerAlignment.Left, source.TextAlignment);
Assert.Equal(TextLayerVerticalAlignment.Top, source.TextVerticalAlignment);
source.TextFontSize = 1;
Assert.Equal(8, source.TextFontSize);
source.TextFontSize = 1000;
Assert.Equal(300, source.TextFontSize);
source.TextColor = "#abcdef";
Assert.Equal("#ABCDEF", source.TextColor);
source.TextColorEntry = BorderColorPalette.All.Single(color => color.Hex == "#FF0000");
Assert.Equal("#FF0000", source.TextColor);
Assert.Equal("Red", source.TextColorEntry.Name);
source.TextColor = "#123456";
Assert.Contains(source.TextColorOptions, color => color.Hex == "#123456");
}
}