| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using Avalonia.Media;
- using Xunit;
- namespace Avalonia.Base.UnitTests.Media
- {
- public class BoxShadowsTests
- {
- [Theory]
- [InlineData("none")]
- [InlineData(" none ")]
- public void Parse_None_ReturnsEmpty(string input)
- {
- var bs = BoxShadows.Parse(input);
- Assert.Equal(0, bs.Count);
- Assert.Equal(default, bs);
- Assert.Equal("none", bs.ToString());
- }
- [Theory]
- [InlineData("0 0 5 0 #FF0000")]
- [InlineData("10 20 30 5 rgba(0,0,0,0.5)")]
- [InlineData("10 20 30 5 rgba(0, 0, 0, 0.5)")]
- [InlineData(" 10 20 30 5 rgba(0, 0, 0, 0.5) ")]
- public void Parse_SingleShadow_ToString_RoundTrip(string input)
- {
- var bs = BoxShadows.Parse(input);
- Assert.Equal(1, bs.Count);
- var str = bs.ToString();
- var reparsed = BoxShadows.Parse(str);
- Assert.Equal(bs, reparsed);
- }
- [Theory]
- [InlineData("0 0 5 0 #FF0000", 10.0)]
- [InlineData("0 0 10 0 rgba(0,0,0,0.5)", 20.0)]
- public void TransformBounds_IncludesShadowExpansion(string input, double minExpansion)
- {
- var bs = BoxShadows.Parse(input);
- var rect = new Rect(0, 0, 100, 100);
- var transformed = bs.TransformBounds(rect);
- Assert.True(transformed.Width >= rect.Width + minExpansion);
- Assert.True(transformed.Height >= rect.Height + minExpansion);
- }
- [Theory]
- [InlineData("5 5 10 0 rgba(10,20,30,0.4)")]
- [InlineData("5 5 10 0 hsla(10,20%,30%,0.4)")]
- [InlineData("5 5 10 0 hsva(10,20%,30%,0.4)")]
- public void Parse_ColorFunction_IsHandled(string input)
- {
- var bs = BoxShadows.Parse(input);
- Assert.Equal(1, bs.Count);
- var reparsed = BoxShadows.Parse(bs.ToString());
- Assert.Equal(bs, reparsed);
- }
- [Theory]
- [InlineData("1 2 3 0 #FF0000", 1)]
- [InlineData("10 20 30 5 rgba(0,0,0,0.5)", 1)]
- [InlineData("1 2 3 0 #FF0000, 1 2 3 0 #FF0000", 2)]
- [InlineData("10 20 30 5 rgba(0,0,0,0.5), 1 2 3 0 #FF0000", 2)]
- [InlineData("10 20 30 5 rgba(0,0,0,0.5), 10 20 30 5 rgba(0,0,0,0.5)", 2)]
- [InlineData("10 20 30 5 rgba(0,0,0,0.5), 10 20 30 5 rgba(0,0,0,0.5), 10 20 30 5 rgba(0,0,0,0.5)", 3)]
- [InlineData("10 20 30 5 rgba(0,0,0,0.5), 10 20 30 5 #ffffff, 10 20 30 5 Red", 3)]
- [InlineData(" 10 20 30 5 rgba(0, 0, 0, 0.5), 10 20 30 5 rgba(0, 0, 0, 0.5), 10 20 30 5 rgba(0, 0, 0, 0.5) ", 3)]
- [InlineData(" 10 20 30 5 rgba(0, 0, 0, 0.5), 10 20 30 5 #ffffff, 10 20 30 5 Red ", 3)]
- public void Parse_MultipleShadows(string input, int count)
- {
- var bs = BoxShadows.Parse(input);
- Assert.Equal(count, bs.Count);
- var reparsed = BoxShadows.Parse(bs.ToString());
- Assert.Equal(bs, reparsed);
- }
- }
- }
|