|
|
|
@ -8,6 +8,7 @@ using Avalonia.Styling; |
|
|
|
using Avalonia.UnitTests; |
|
|
|
using Avalonia.Data; |
|
|
|
using Xunit; |
|
|
|
using Avalonia.Animation.Easings; |
|
|
|
|
|
|
|
namespace Avalonia.Animation.UnitTests |
|
|
|
{ |
|
|
|
@ -73,5 +74,58 @@ namespace Avalonia.Animation.UnitTests |
|
|
|
Assert.True(animationRun.Status == TaskStatus.RanToCompletion); |
|
|
|
Assert.Equal(border.Width, 100d); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Check_FillModes_Start_and_End_Values_if_Retained() |
|
|
|
{ |
|
|
|
var keyframe1 = new KeyFrame() |
|
|
|
{ |
|
|
|
Setters = |
|
|
|
{ |
|
|
|
new Setter(Border.WidthProperty, 0d), |
|
|
|
}, |
|
|
|
Cue = new Cue(0.0d) |
|
|
|
}; |
|
|
|
|
|
|
|
var keyframe2 = new KeyFrame() |
|
|
|
{ |
|
|
|
Setters = |
|
|
|
{ |
|
|
|
new Setter(Border.WidthProperty, 300d), |
|
|
|
}, |
|
|
|
Cue = new Cue(1.0d) |
|
|
|
}; |
|
|
|
|
|
|
|
var animation = new Animation() |
|
|
|
{ |
|
|
|
Duration = TimeSpan.FromSeconds(0.05d), |
|
|
|
Delay = TimeSpan.FromSeconds(0.05d), |
|
|
|
Easing = new SineEaseInOut(), |
|
|
|
FillMode = FillMode.Both, |
|
|
|
Children = |
|
|
|
{ |
|
|
|
keyframe1, |
|
|
|
keyframe2 |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
var border = new Border() |
|
|
|
{ |
|
|
|
Height = 100d, |
|
|
|
Width = 100d, |
|
|
|
}; |
|
|
|
|
|
|
|
var clock = new TestClock(); |
|
|
|
var animationRun = animation.RunAsync(border, clock); |
|
|
|
|
|
|
|
clock.Step(TimeSpan.FromSeconds(0d)); |
|
|
|
Assert.Equal(border.Width, 0d); |
|
|
|
|
|
|
|
clock.Step(TimeSpan.FromSeconds(0.050d)); |
|
|
|
Assert.Equal(border.Width, 0d); |
|
|
|
|
|
|
|
clock.Step(TimeSpan.FromSeconds(0.100d)); |
|
|
|
Assert.Equal(border.Width, 300d); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|