@ -293,6 +293,113 @@ namespace Avalonia.Controls.UnitTests
Assert . False ( ToolTip . GetIsOpen ( target ) ) ;
Assert . False ( ToolTip . GetIsOpen ( target ) ) ;
}
}
}
}
[Fact]
public void Should_Not_Close_When_Pointer_Is_Moved_Over_ToolTip ( )
{
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
var window = new Window ( ) ;
var target = new Decorator ( )
{
[ToolTip.TipProperty] = "Tip" ,
[ToolTip.ShowDelayProperty] = 0
} ;
window . Content = target ;
window . ApplyStyling ( ) ;
window . ApplyTemplate ( ) ;
window . Presenter . ApplyTemplate ( ) ;
_ mouseHelper . Enter ( target ) ;
Assert . True ( ToolTip . GetIsOpen ( target ) ) ;
var tooltip = Assert . IsType < ToolTip > ( target . GetValue ( ToolTip . ToolTipProperty ) ) ;
_ mouseHelper . Enter ( tooltip ) ;
_ mouseHelper . Leave ( target ) ;
Assert . True ( ToolTip . GetIsOpen ( target ) ) ;
}
}
[Fact]
public void Should_Not_Close_When_Pointer_Is_Moved_From_ToolTip_To_Original_Control ( )
{
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
var window = new Window ( ) ;
var target = new Decorator ( )
{
[ToolTip.TipProperty] = "Tip" ,
[ToolTip.ShowDelayProperty] = 0
} ;
window . Content = target ;
window . ApplyStyling ( ) ;
window . ApplyTemplate ( ) ;
window . Presenter . ApplyTemplate ( ) ;
_ mouseHelper . Enter ( target ) ;
Assert . True ( ToolTip . GetIsOpen ( target ) ) ;
var tooltip = Assert . IsType < ToolTip > ( target . GetValue ( ToolTip . ToolTipProperty ) ) ;
_ mouseHelper . Enter ( tooltip ) ;
_ mouseHelper . Leave ( target ) ;
Assert . True ( ToolTip . GetIsOpen ( target ) ) ;
_ mouseHelper . Enter ( target ) ;
_ mouseHelper . Leave ( tooltip ) ;
Assert . True ( ToolTip . GetIsOpen ( target ) ) ;
}
}
[Fact]
public void Should_Close_When_Pointer_Is_Moved_From_ToolTip_To_Another_Control ( )
{
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
var window = new Window ( ) ;
var target = new Decorator ( )
{
[ToolTip.TipProperty] = "Tip" ,
[ToolTip.ShowDelayProperty] = 0
} ;
var other = new Decorator ( ) ;
var panel = new StackPanel
{
Children = { target , other }
} ;
window . Content = panel ;
window . ApplyStyling ( ) ;
window . ApplyTemplate ( ) ;
window . Presenter . ApplyTemplate ( ) ;
_ mouseHelper . Enter ( target ) ;
Assert . True ( ToolTip . GetIsOpen ( target ) ) ;
var tooltip = Assert . IsType < ToolTip > ( target . GetValue ( ToolTip . ToolTipProperty ) ) ;
_ mouseHelper . Enter ( tooltip ) ;
_ mouseHelper . Leave ( target ) ;
Assert . True ( ToolTip . GetIsOpen ( target ) ) ;
_ mouseHelper . Enter ( other ) ;
_ mouseHelper . Leave ( tooltip ) ;
Assert . False ( ToolTip . GetIsOpen ( target ) ) ;
}
}
}
}
internal class ToolTipViewModel
internal class ToolTipViewModel