|
|
|
@ -13,40 +13,43 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
[Fact] |
|
|
|
public void Old_Content_Shuold_Be_Removed__From_Logical_Tree_After_Out_Animation() |
|
|
|
{ |
|
|
|
var testTransition = new TestTransition(); |
|
|
|
using (UnitTestApplication.Start(TestServices.MockThreadingInterface)) |
|
|
|
{ |
|
|
|
var testTransition = new TestTransition(); |
|
|
|
|
|
|
|
var target = new TransitioningContentControl(); |
|
|
|
target.PageTransition = testTransition; |
|
|
|
var target = new TransitioningContentControl(); |
|
|
|
target.PageTransition = testTransition; |
|
|
|
|
|
|
|
var root = new TestRoot() { Child = target }; |
|
|
|
var root = new TestRoot() { Child = target }; |
|
|
|
|
|
|
|
var oldControl = new Control(); |
|
|
|
var newControl = new Control(); |
|
|
|
var oldControl = new Control(); |
|
|
|
var newControl = new Control(); |
|
|
|
|
|
|
|
target.Content = oldControl; |
|
|
|
Threading.Dispatcher.UIThread.RunJobs(); |
|
|
|
target.Content = oldControl; |
|
|
|
Threading.Dispatcher.UIThread.RunJobs(); |
|
|
|
|
|
|
|
Assert.Equal(target, oldControl.GetLogicalParent()); |
|
|
|
Assert.Equal(null, newControl.GetLogicalParent()); |
|
|
|
Assert.Equal(target, oldControl.GetLogicalParent()); |
|
|
|
Assert.Equal(null, newControl.GetLogicalParent()); |
|
|
|
|
|
|
|
testTransition.BeginTransition += isFrom => |
|
|
|
{ |
|
|
|
// Old out
|
|
|
|
if (isFrom) |
|
|
|
{ |
|
|
|
Assert.Equal(target, oldControl.GetLogicalParent()); |
|
|
|
Assert.Equal(null, newControl.GetLogicalParent()); |
|
|
|
} |
|
|
|
// New in
|
|
|
|
else |
|
|
|
testTransition.BeginTransition += isFrom => |
|
|
|
{ |
|
|
|
Assert.Equal(null, oldControl.GetLogicalParent()); |
|
|
|
Assert.Equal(target, newControl.GetLogicalParent()); |
|
|
|
} |
|
|
|
}; |
|
|
|
// Old out
|
|
|
|
if (isFrom) |
|
|
|
{ |
|
|
|
Assert.Equal(target, oldControl.GetLogicalParent()); |
|
|
|
Assert.Equal(null, newControl.GetLogicalParent()); |
|
|
|
} |
|
|
|
// New in
|
|
|
|
else |
|
|
|
{ |
|
|
|
Assert.Equal(null, oldControl.GetLogicalParent()); |
|
|
|
Assert.Equal(target, newControl.GetLogicalParent()); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
target.Content = newControl; |
|
|
|
Threading.Dispatcher.UIThread.RunJobs(); |
|
|
|
target.Content = newControl; |
|
|
|
Threading.Dispatcher.UIThread.RunJobs(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
public class TestTransition : IPageTransition |
|
|
|
|