@ -13,7 +13,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Up_Opens_MenuItem_With_SubMenu ( )
public void Up_Opens_MenuItem_With_SubMenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var e = new KeyEventArgs { Key = Key . Up , Source = item } ;
var e = new KeyEventArgs { Key = Key . Up , Source = item } ;
@ -27,7 +27,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Down_Opens_MenuItem_With_SubMenu ( )
public void Down_Opens_MenuItem_With_SubMenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var e = new KeyEventArgs { Key = Key . Down , Source = item } ;
var e = new KeyEventArgs { Key = Key . Down , Source = item } ;
@ -41,7 +41,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Right_Selects_Next_MenuItem ( )
public void Right_Selects_Next_MenuItem ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( x = > x . MoveSelection ( NavigationDirection . Right , true ) = = true ) ;
var menu = Mock . Of < IMenu > ( x = > x . MoveSelection ( NavigationDirection . Right , true ) = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var e = new KeyEventArgs { Key = Key . Right , Source = item } ;
var e = new KeyEventArgs { Key = Key . Right , Source = item } ;
@ -55,7 +55,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Left_Selects_Previous_MenuItem ( )
public void Left_Selects_Previous_MenuItem ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( x = > x . MoveSelection ( NavigationDirection . Left , true ) = = true ) ;
var menu = Mock . Of < IMenu > ( x = > x . MoveSelection ( NavigationDirection . Left , true ) = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var e = new KeyEventArgs { Key = Key . Left , Source = item } ;
var e = new KeyEventArgs { Key = Key . Left , Source = item } ;
@ -69,7 +69,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Enter_On_Item_With_No_SubMenu_Causes_Click ( )
public void Enter_On_Item_With_No_SubMenu_Causes_Click ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var e = new KeyEventArgs { Key = Key . Enter , Source = item } ;
var e = new KeyEventArgs { Key = Key . Enter , Source = item } ;
@ -84,7 +84,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Enter_On_Item_With_SubMenu_Opens_SubMenu ( )
public void Enter_On_Item_With_SubMenu_Opens_SubMenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var e = new KeyEventArgs { Key = Key . Enter , Source = item } ;
var e = new KeyEventArgs { Key = Key . Enter , Source = item } ;
@ -99,7 +99,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Escape_Closes_Parent_Menu ( )
public void Escape_Closes_Parent_Menu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu ) ;
var e = new KeyEventArgs { Key = Key . Escape , Source = item } ;
var e = new KeyEventArgs { Key = Key . Escape , Source = item } ;
@ -113,7 +113,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerEnter_Opens_Item_When_Old_Item_Is_Open ( )
public void PointerEnter_Opens_Item_When_Old_Item_Is_Open ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = new Mock < IMenu > ( ) ;
var menu = new Mock < IMenu > ( ) ;
var item = Mock . Of < IMenuItem > ( x = >
var item = Mock . Of < IMenuItem > ( x = >
x . IsSubMenuOpen = = true & &
x . IsSubMenuOpen = = true & &
@ -141,7 +141,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerLeave_Deselects_Item_When_Menu_Not_Open ( )
public void PointerLeave_Deselects_Item_When_Menu_Not_Open ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = new Mock < IMenu > ( ) ;
var menu = new Mock < IMenu > ( ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu . Object ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu . Object ) ;
var e = new PointerEventArgs { RoutedEvent = MenuItem . PointerLeaveItemEvent , Source = item } ;
var e = new PointerEventArgs { RoutedEvent = MenuItem . PointerLeaveItemEvent , Source = item } ;
@ -156,7 +156,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerLeave_Doesnt_Deselect_Item_When_Menu_Open ( )
public void PointerLeave_Doesnt_Deselect_Item_When_Menu_Open ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = new Mock < IMenu > ( ) ;
var menu = new Mock < IMenu > ( ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu . Object ) ;
var item = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . Parent = = menu . Object ) ;
var e = new PointerEventArgs { RoutedEvent = MenuItem . PointerLeaveItemEvent , Source = item } ;
var e = new PointerEventArgs { RoutedEvent = MenuItem . PointerLeaveItemEvent , Source = item } ;
@ -175,7 +175,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Up_Selects_Previous_MenuItem ( )
public void Up_Selects_Previous_MenuItem ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var e = new KeyEventArgs { Key = Key . Up , Source = item } ;
var e = new KeyEventArgs { Key = Key . Up , Source = item } ;
@ -189,7 +189,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Down_Selects_Next_MenuItem ( )
public void Down_Selects_Next_MenuItem ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var e = new KeyEventArgs { Key = Key . Down , Source = item } ;
var e = new KeyEventArgs { Key = Key . Down , Source = item } ;
@ -203,7 +203,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Left_Closes_Parent_SubMenu ( )
public void Left_Closes_Parent_SubMenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . HasSubMenu = = true & & x . IsSubMenuOpen = = true ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . HasSubMenu = = true & & x . IsSubMenuOpen = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var e = new KeyEventArgs { Key = Key . Left , Source = item } ;
var e = new KeyEventArgs { Key = Key . Left , Source = item } ;
@ -218,7 +218,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Right_With_SubMenu_Items_Opens_SubMenu ( )
public void Right_With_SubMenu_Items_Opens_SubMenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
var e = new KeyEventArgs { Key = Key . Right , Source = item } ;
var e = new KeyEventArgs { Key = Key . Right , Source = item } ;
@ -233,7 +233,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Right_On_TopLevel_Child_Navigates_TopLevel_Selection ( )
public void Right_On_TopLevel_Child_Navigates_TopLevel_Selection ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = new Mock < IMenu > ( ) ;
var menu = new Mock < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = >
var parentItem = Mock . Of < IMenuItem > ( x = >
x . IsSubMenuOpen = = true & &
x . IsSubMenuOpen = = true & &
@ -263,7 +263,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Enter_On_Item_With_No_SubMenu_Causes_Click ( )
public void Enter_On_Item_With_No_SubMenu_Causes_Click ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
@ -279,7 +279,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Enter_On_Item_With_SubMenu_Opens_SubMenu ( )
public void Enter_On_Item_With_SubMenu_Opens_SubMenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
var e = new KeyEventArgs { Key = Key . Enter , Source = item } ;
var e = new KeyEventArgs { Key = Key . Enter , Source = item } ;
@ -294,7 +294,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void Escape_Closes_Parent_MenuItem ( )
public void Escape_Closes_Parent_MenuItem ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var e = new KeyEventArgs { Key = Key . Escape , Source = item } ;
var e = new KeyEventArgs { Key = Key . Escape , Source = item } ;
@ -309,7 +309,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerEnter_Selects_Item ( )
public void PointerEnter_Selects_Item ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
@ -325,7 +325,7 @@ namespace Avalonia.Controls.UnitTests.Platform
public void PointerEnter_Opens_Submenu_After_Delay ( )
public void PointerEnter_Opens_Submenu_After_Delay ( )
{
{
var timer = new TestTimer ( ) ;
var timer = new TestTimer ( ) ;
var target = new DefaultMenuInteractionHandler ( null , timer . RunOnce ) ;
var target = new DefaultMenuInteractionHandler ( false , null , timer . RunOnce ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
@ -344,7 +344,7 @@ namespace Avalonia.Controls.UnitTests.Platform
public void PointerEnter_Closes_Sibling_Submenu_After_Delay ( )
public void PointerEnter_Closes_Sibling_Submenu_After_Delay ( )
{
{
var timer = new TestTimer ( ) ;
var timer = new TestTimer ( ) ;
var target = new DefaultMenuInteractionHandler ( null , timer . RunOnce ) ;
var target = new DefaultMenuInteractionHandler ( false , null , timer . RunOnce ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
@ -365,7 +365,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerLeave_Deselects_Item ( )
public void PointerLeave_Deselects_Item ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
@ -381,7 +381,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerLeave_Doesnt_Deselect_Sibling ( )
public void PointerLeave_Doesnt_Deselect_Sibling ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
@ -398,7 +398,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerLeave_Doesnt_Deselect_Item_If_Pointer_Over_Submenu ( )
public void PointerLeave_Doesnt_Deselect_Item_If_Pointer_Over_Submenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true & & x . IsPointerOverSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true & & x . IsPointerOverSubMenu = = true ) ;
@ -413,7 +413,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerReleased_On_Item_With_No_SubMenu_Causes_Click ( )
public void PointerReleased_On_Item_With_No_SubMenu_Causes_Click ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem ) ;
@ -430,7 +430,7 @@ namespace Avalonia.Controls.UnitTests.Platform
public void Selection_Is_Correct_When_Pointer_Temporarily_Exits_Item_To_Select_SubItem ( )
public void Selection_Is_Correct_When_Pointer_Temporarily_Exits_Item_To_Select_SubItem ( )
{
{
var timer = new TestTimer ( ) ;
var timer = new TestTimer ( ) ;
var target = new DefaultMenuInteractionHandler ( null , timer . RunOnce ) ;
var target = new DefaultMenuInteractionHandler ( false , null , timer . RunOnce ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
@ -467,7 +467,7 @@ namespace Avalonia.Controls.UnitTests.Platform
[Fact]
[Fact]
public void PointerPressed_On_Item_With_SubMenu_Causes_Opens_Submenu ( )
public void PointerPressed_On_Item_With_SubMenu_Causes_Opens_Submenu ( )
{
{
var target = new DefaultMenuInteractionHandler ( ) ;
var target = new DefaultMenuInteractionHandler ( false ) ;
var menu = Mock . Of < IMenu > ( ) ;
var menu = Mock . Of < IMenu > ( ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var parentItem = Mock . Of < IMenuItem > ( x = > x . IsTopLevel = = true & & x . HasSubMenu = = true & & x . Parent = = menu ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
var item = Mock . Of < IMenuItem > ( x = > x . Parent = = parentItem & & x . HasSubMenu = = true ) ;
@ -481,6 +481,23 @@ namespace Avalonia.Controls.UnitTests.Platform
}
}
}
}
public class ContextMenu
{
[Fact]
public void Down_Selects_Selects_First_MenuItem_When_No_Selection ( )
{
var target = new DefaultMenuInteractionHandler ( true ) ;
var contextMenu = Mock . Of < IMenu > ( x = > x . MoveSelection ( NavigationDirection . Down , true ) = = true ) ;
var e = new KeyEventArgs { Key = Key . Down , Source = contextMenu } ;
target . Attach ( contextMenu ) ;
target . KeyDown ( contextMenu , e ) ;
Mock . Get ( contextMenu ) . Verify ( x = > x . MoveSelection ( NavigationDirection . Down , true ) ) ;
Assert . True ( e . Handled ) ;
}
}
private class TestTimer
private class TestTimer
{
{
private Action _ action ;
private Action _ action ;