mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Color alpha channel bug and add StandardColor tests
Updated the `Color` constructor for `StandardColor` to use `StandardColors.GetArgb` instead of casting to an integer, ensuring the alpha channel (`A`) is correctly set to `0xFF` (opaque). This resolves issues with name resolution and ARGB formatting.
Added a new test class, `ColorStandardColorTests`, to verify the behavior of `Color` when initialized with a `StandardColor`. Tests include:
- Verifying `ToString` returns the correct standard color name.
- Ensuring `ToString("G")` outputs the correct opaque ARGB value.
These changes address a bug where the alpha channel was incorrectly set to `0x00` (transparent).
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
using Xunit;
|
||||
|
||||
namespace Terminal.Gui.DrawingTests;
|
||||
|
||||
public class ColorStandardColorTests
|
||||
{
|
||||
[Fact]
|
||||
public void ToString_Returns_Standard_Name_For_StandardColor_CadetBlue()
|
||||
{
|
||||
// Without the fix, this uses Color(in StandardColor) -> this((int)colorName),
|
||||
// which sets A=0x00 and prevents name resolution (expects A=0xFF).
|
||||
var c = new Terminal.Gui.Drawing.Color(Terminal.Gui.Drawing.StandardColor.CadetBlue);
|
||||
|
||||
// Expected: named color
|
||||
Assert.Equal("CadetBlue", c.ToString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ToString_G_Prints_Opaque_ARGB_For_StandardColor_CadetBlue()
|
||||
{
|
||||
// Without the fix, A=0x00, so "G" prints "#005F9EA0" instead of "#FF5F9EA0".
|
||||
var c = new Terminal.Gui.Drawing.Color(Terminal.Gui.Drawing.StandardColor.CadetBlue);
|
||||
|
||||
// Expected: #AARRGGBB with A=FF (opaque)
|
||||
Assert.Equal("#FF5F9EA0", c.ToString("G", null));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user