|
@@ -1,6 +1,7 @@
|
|
using System;
|
|
using System;
|
|
using Avalonia.Controls.Platform;
|
|
using Avalonia.Controls.Platform;
|
|
using Avalonia.Input;
|
|
using Avalonia.Input;
|
|
|
|
+using Avalonia.Interactivity;
|
|
using Moq;
|
|
using Moq;
|
|
using Xunit;
|
|
using Xunit;
|
|
|
|
|
|
@@ -110,6 +111,22 @@ namespace Avalonia.Controls.UnitTests.Platform
|
|
Assert.True(e.Handled);
|
|
Assert.True(e.Handled);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ [Fact]
|
|
|
|
+ public void Click_On_Open_TopLevel_Menu_Closes_Menu()
|
|
|
|
+ {
|
|
|
|
+ var target = new DefaultMenuInteractionHandler(false);
|
|
|
|
+ var menu = Mock.Of<IMenu>();
|
|
|
|
+ var item = Mock.Of<IMenuItem>(x =>
|
|
|
|
+ x.IsSubMenuOpen == true &&
|
|
|
|
+ x.IsTopLevel == true &&
|
|
|
|
+ x.HasSubMenu == true &&
|
|
|
|
+ x.Parent == menu);
|
|
|
|
+ var e = new PointerPressedEventArgs { MouseButton = MouseButton.Left, Source = item };
|
|
|
|
+
|
|
|
|
+ target.PointerPressed(item, e);
|
|
|
|
+ Mock.Get(menu).Verify(x => x.Close());
|
|
|
|
+ }
|
|
|
|
+
|
|
[Fact]
|
|
[Fact]
|
|
public void PointerEnter_Opens_Item_When_Old_Item_Is_Open()
|
|
public void PointerEnter_Opens_Item_When_Old_Item_Is_Open()
|
|
{
|
|
{
|