4 changed files with 833 additions and 20 deletions
@ -0,0 +1,791 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="KeyboardNavigationTests_Arrows.cs" company="Steven Kirk">
|
|||
// Copyright 2015 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Input.UnitTests |
|||
{ |
|||
using Perspex.Controls; |
|||
using Xunit; |
|||
|
|||
public class KeyboardNavigationTests_Arrows |
|||
{ |
|||
[Fact] |
|||
public void Down_Continue_Returns_Down_Control_In_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
(current = new Button { Name = "Button2" }), |
|||
(next = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Continue_Returns_First_Control_In_Down_Sibling_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
new Button { Name = "Button2" }, |
|||
(current = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button4" }), |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Continue_Returns_Down_Sibling() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
new Button { Name = "Button2" }, |
|||
(current = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
(next = new Button { Name = "Button4" }), |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Continue_Returns_First_Control_In_Down_Uncle_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
new Button { Name = "Button2" }, |
|||
(current = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
}, |
|||
}, |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button4" }), |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Continue_Returns_Child_Of_Top_Level() |
|||
{ |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button1" }), |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(top, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Continue_Wraps() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button1" }), |
|||
new Button { Name = "Button2" }, |
|||
new Button { Name = "Button3" }, |
|||
} |
|||
}), |
|||
}, |
|||
}, |
|||
new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
(current = new Button { Name = "Button6" }), |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Cycle_Returns_Down_Control_In_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Cycle, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
(current = new Button { Name = "Button2" }), |
|||
(next = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Cycle_Wraps_To_First() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Cycle, |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button1" }), |
|||
new Button { Name = "Button2" }, |
|||
(current = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Contained_Returns_Down_Control_In_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Contained, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
(current = new Button { Name = "Button2" }), |
|||
(next = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_Contained_Stops_At_End() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Contained, |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button1" }), |
|||
new Button { Name = "Button2" }, |
|||
(current = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Null(result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Down_None_Does_Nothing() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.None, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
(current = new Button { Name = "Button2" }), |
|||
new Button { Name = "Button3" }, |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Down); |
|||
|
|||
Assert.Null(result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Continue_Returns_Up_Control_In_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
(next = new Button { Name = "Button2" }), |
|||
(current = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Continue_Returns_Last_Control_In_Up_Sibling_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
new Button { Name = "Button2" }, |
|||
(next = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(current = new Button { Name = "Button4" }), |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Continue_Returns_Last_Child_Of_Sibling() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
new Button { Name = "Button2" }, |
|||
(next = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
(current = new Button { Name = "Button4" }), |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Continue_Returns_Last_Control_In_Up_Nephew_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button1" }, |
|||
new Button { Name = "Button2" }, |
|||
(next = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
}, |
|||
}, |
|||
new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(current = new Button { Name = "Button4" }), |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Continue_Wraps() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, |
|||
Children = new Controls |
|||
{ |
|||
(current = new Button { Name = "Button1" }), |
|||
new Button { Name = "Button2" }, |
|||
new Button { Name = "Button3" }, |
|||
} |
|||
}), |
|||
}, |
|||
}, |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
(next = new Button { Name = "Button6" }), |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Cycle_Returns_Up_Control_In_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Cycle, |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button1" }), |
|||
(current = new Button { Name = "Button2" }), |
|||
new Button { Name = "Button3" }, |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Cycle_Wraps_To_Last() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Cycle, |
|||
Children = new Controls |
|||
{ |
|||
(current = new Button { Name = "Button1" }), |
|||
new Button { Name = "Button2" }, |
|||
(next = new Button { Name = "Button3" }), |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Contained_Returns_Up_Control_In_Container() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
Button next; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Contained, |
|||
Children = new Controls |
|||
{ |
|||
(next = new Button { Name = "Button1" }), |
|||
(current = new Button { Name = "Button2" }), |
|||
new Button { Name = "Button3" }, |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Equal(next, result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Contained_Stops_At_Beginning() |
|||
{ |
|||
StackPanel container; |
|||
Button current; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
(container = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Contained, |
|||
Children = new Controls |
|||
{ |
|||
(current = new Button { Name = "Button1" }), |
|||
new Button { Name = "Button2" }, |
|||
new Button { Name = "Button3" }, |
|||
} |
|||
}), |
|||
new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new Button { Name = "Button4" }, |
|||
new Button { Name = "Button5" }, |
|||
new Button { Name = "Button6" }, |
|||
} |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Null(result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Up_Contained_Doesnt_Select_Child_Control() |
|||
{ |
|||
Decorator current; |
|||
|
|||
var top = new StackPanel |
|||
{ |
|||
[KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Contained, |
|||
Children = new Controls |
|||
{ |
|||
(current = new Decorator |
|||
{ |
|||
Focusable = true, |
|||
Child = new Button(), |
|||
}) |
|||
} |
|||
}; |
|||
|
|||
var result = KeyboardNavigationHandler.GetNext(current, FocusNavigationDirection.Up); |
|||
|
|||
Assert.Null(result); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue