From 29c9b42ca45e41ce5baac643d66469d12f40be62 Mon Sep 17 00:00:00 2001 From: ThomasGoulet73 Date: Sat, 14 Sep 2024 02:15:56 -0400 Subject: [PATCH] Add unit test and fix failing new test --- .../System/Windows/Media/Knowncolors.cs | 2 ++ .../System/Windows/Media/KnownColorsTests.cs | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/System/Windows/Media/KnownColorsTests.cs diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Knowncolors.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Knowncolors.cs index a516b47304c..f2be5f011a5 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Knowncolors.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Knowncolors.cs @@ -666,6 +666,8 @@ internal static KnownColor ColorStringToKnownColor(string colorString) #if !PBTCOMPILER internal static KnownColor ArgbStringToKnownColor(string argbString) { + ArgumentNullException.ThrowIfNull(argbString); + ReadOnlySpan argbSpan = argbString.AsSpan().Trim(); // Use NumberStyles.AllowHexSpecifier instead of NumberStyles.HexNumber because NumberStyles.HexNumber diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/System/Windows/Media/KnownColorsTests.cs b/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/System/Windows/Media/KnownColorsTests.cs new file mode 100644 index 00000000000..e54a4bdb72f --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/System/Windows/Media/KnownColorsTests.cs @@ -0,0 +1,26 @@ +namespace System.Windows.Media; + +public class KnownColorsTests +{ + [Theory] + // Supported values. + [InlineData(KnownColor.AliceBlue, "#FFF0F8FF")] + [InlineData(KnownColor.AliceBlue, " #FFF0F8FF")] + [InlineData(KnownColor.AliceBlue, " #FFF0F8FF ")] + [InlineData(KnownColor.AliceBlue, "#FFF0F8FF ")] + // Unsupported values. + [InlineData(KnownColor.UnknownColor, "")] + [InlineData(KnownColor.UnknownColor, " ")] + [InlineData(KnownColor.UnknownColor, "#020B37EF")] // Random ARGB that is not a known color. + [InlineData(KnownColor.UnknownColor, "# FFF0F8FF")] + public void ArgbStringToKnownColor_ReturnsExpected(object expected, string? argbString) + { + Assert.Equal((KnownColor)expected, KnownColors.ArgbStringToKnownColor(argbString)); + } + + [Fact] + public void ArgbStringToKnownColor_NullValue_ThrowsArgumentNullException() + { + Assert.Throws(() => KnownColors.ArgbStringToKnownColor(argbString: null)); + } +}