|
|
|
@ -17,6 +17,41 @@ namespace Avalonia.Visuals.UnitTests.Media |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Try_Parse_Parses_RGB_Hash_Color() |
|
|
|
{ |
|
|
|
var success = Color.TryParse("#ff8844", out Color result); |
|
|
|
|
|
|
|
Assert.True(success); |
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x88, result.G); |
|
|
|
Assert.Equal(0x44, result.B); |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Parses_RGB_Hash_Shorthand_Color() |
|
|
|
{ |
|
|
|
var result = Color.Parse("#f84"); |
|
|
|
|
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x88, result.G); |
|
|
|
Assert.Equal(0x44, result.B); |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Try_Parse_Parses_RGB_Hash_Shorthand_Color() |
|
|
|
{ |
|
|
|
var success = Color.TryParse("#f84", out Color result); |
|
|
|
|
|
|
|
Assert.True(success); |
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x88, result.G); |
|
|
|
Assert.Equal(0x44, result.B); |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Parses_ARGB_Hash_Color() |
|
|
|
{ |
|
|
|
@ -28,6 +63,41 @@ namespace Avalonia.Visuals.UnitTests.Media |
|
|
|
Assert.Equal(0x40, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Try_Parse_Parses_ARGB_Hash_Color() |
|
|
|
{ |
|
|
|
var success = Color.TryParse("#40ff8844", out Color result); |
|
|
|
|
|
|
|
Assert.True(success); |
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x88, result.G); |
|
|
|
Assert.Equal(0x44, result.B); |
|
|
|
Assert.Equal(0x40, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Parses_ARGB_Hash_Shorthand_Color() |
|
|
|
{ |
|
|
|
var result = Color.Parse("#4f84"); |
|
|
|
|
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x88, result.G); |
|
|
|
Assert.Equal(0x44, result.B); |
|
|
|
Assert.Equal(0x44, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Try_Parse_Parses_ARGB_Hash_Shorthand_Color() |
|
|
|
{ |
|
|
|
var success = Color.TryParse("#4f84", out Color result); |
|
|
|
|
|
|
|
Assert.True(success); |
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x88, result.G); |
|
|
|
Assert.Equal(0x44, result.B); |
|
|
|
Assert.Equal(0x44, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Parses_Named_Color_Lowercase() |
|
|
|
{ |
|
|
|
@ -39,6 +109,18 @@ namespace Avalonia.Visuals.UnitTests.Media |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void TryParse_Parses_Named_Color_Lowercase() |
|
|
|
{ |
|
|
|
var success = Color.TryParse("red", out Color result); |
|
|
|
|
|
|
|
Assert.True(success); |
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x00, result.G); |
|
|
|
Assert.Equal(0x00, result.B); |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Parses_Named_Color_Uppercase() |
|
|
|
{ |
|
|
|
@ -50,22 +132,52 @@ namespace Avalonia.Visuals.UnitTests.Media |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void TryParse_Parses_Named_Color_Uppercase() |
|
|
|
{ |
|
|
|
var success = Color.TryParse("RED", out Color result); |
|
|
|
|
|
|
|
Assert.True(success); |
|
|
|
Assert.Equal(0xff, result.R); |
|
|
|
Assert.Equal(0x00, result.G); |
|
|
|
Assert.Equal(0x00, result.B); |
|
|
|
Assert.Equal(0xff, result.A); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Hex_Value_Doesnt_Accept_Too_Few_Chars() |
|
|
|
{ |
|
|
|
Assert.Throws<FormatException>(() => Color.Parse("#ff")); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void TryParse_Hex_Value_Doesnt_Accept_Too_Few_Chars() |
|
|
|
{ |
|
|
|
Assert.False(Color.TryParse("#ff", out _)); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Hex_Value_Doesnt_Accept_Too_Many_Chars() |
|
|
|
{ |
|
|
|
Assert.Throws<FormatException>(() => Color.Parse("#ff5555555")); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void TryParse_Hex_Value_Doesnt_Accept_Too_Many_Chars() |
|
|
|
{ |
|
|
|
Assert.False(Color.TryParse("#ff5555555", out _)); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Parse_Hex_Value_Doesnt_Accept_Invalid_Number() |
|
|
|
{ |
|
|
|
Assert.Throws<FormatException>(() => Color.Parse("#ff808g80")); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void TryParse_Hex_Value_Doesnt_Accept_Invalid_Number() |
|
|
|
{ |
|
|
|
Assert.False(Color.TryParse("#ff808g80", out _)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|