Skip to content

Commit 543791e

Browse files
Add Vertical Splitter tests to compliment bound tests for horizontal splitter
1 parent ce16a2b commit 543791e

File tree

2 files changed

+113
-4
lines changed

2 files changed

+113
-4
lines changed

UITests/UITests.Tests.Shared/Controls/GridSplitterTest.cs

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,105 @@ public async Task TestGridSplitterDragHorizontalPastMinimumAsync()
9494
Verify.AreEqual(columnDefinitionEnd.MinWidth, columnDefinitionEnd.ActualWidth, "Column was not the minimum size expected.");
9595
}
9696

97+
[TestMethod]
98+
[TestPage("GridSplitterTestPage")]
99+
public async Task TestGridSplitterDragHorizontalPastMaximumAsync()
100+
{
101+
var amount = 150;
102+
103+
var gridSplitter = FindElement.ById("GridSplitterHorizontal");
104+
105+
Verify.IsNotNull(gridSplitter, "Can't find Horizontal GridSplitter");
106+
107+
// Drag to the Left
108+
InputHelper.DragDistance(gridSplitter, amount, Direction.East, 1000);
109+
110+
Wait.ForMilliseconds(1050);
111+
Wait.ForIdle();
112+
113+
ColumnDefinition columnDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<ColumnDefinition>>("GridSplitterRoot", "ColumnDefinitions"))?.FirstOrDefault();
114+
115+
Wait.ForIdle();
116+
117+
Verify.AreEqual(columnDefinitionEnd.MaxWidth, columnDefinitionEnd.ActualWidth, "Column was not the maximum size expected.");
118+
}
119+
120+
[TestMethod]
121+
[TestPage("GridSplitterTestPage")]
122+
public async Task TestGridSplitterDragVerticalAsync()
123+
{
124+
var amount = 50;
125+
var tolerance = 10;
126+
127+
var grid = FindElement.ByName("GridSplitterRoot");
128+
var gridSplitter = FindElement.ById("GridSplitterVertical");
129+
130+
Verify.IsNotNull(grid, "Can't find GridSplitterRoot");
131+
Verify.IsNotNull(gridSplitter, "Can't find Vertical GridSplitter");
132+
133+
RowDefinition rowDefinitionStart = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
134+
135+
Verify.IsNotNull(rowDefinitionStart, "Couldn't retrieve Row Definition");
136+
137+
// Drag to the Left
138+
InputHelper.DragDistance(gridSplitter, amount, Direction.North, 1000);
139+
140+
Wait.ForMilliseconds(1050);
141+
Wait.ForIdle();
142+
143+
RowDefinition rowDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
144+
145+
Wait.ForIdle();
146+
147+
Verify.IsTrue(Math.Abs(rowDefinitionStart.ActualHeight - amount - rowDefinitionEnd.ActualHeight) <= tolerance, $"RowDefinition not in range expected {rowDefinitionStart.ActualHeight - amount} was {rowDefinitionEnd.ActualHeight}");
148+
}
149+
150+
[TestMethod]
151+
[TestPage("GridSplitterTestPage")]
152+
public async Task TestGridSplitterDragVerticalPastMinimumAsync()
153+
{
154+
var amount = 150;
155+
156+
var gridSplitter = FindElement.ById("GridSplitterVertical");
157+
158+
Verify.IsNotNull(gridSplitter, "Can't find Vertical GridSplitter");
159+
160+
// Drag to the Left
161+
InputHelper.DragDistance(gridSplitter, amount, Direction.North, 1000);
162+
163+
Wait.ForMilliseconds(1050);
164+
Wait.ForIdle();
165+
166+
RowDefinition rowDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
167+
168+
Wait.ForIdle();
169+
170+
Verify.AreEqual(rowDefinitionEnd.MinHeight, rowDefinitionEnd.ActualHeight, "Row was not the minimum size expected.");
171+
}
172+
173+
[TestMethod]
174+
[TestPage("GridSplitterTestPage")]
175+
public async Task TestGridSplitterDragVerticalPastMaximumAsync()
176+
{
177+
var amount = 150;
178+
179+
var gridSplitter = FindElement.ById("GridSplitterVertical");
180+
181+
Verify.IsNotNull(gridSplitter, "Can't find Vertical GridSplitter");
182+
183+
// Drag to the Left
184+
InputHelper.DragDistance(gridSplitter, amount, Direction.South, 1000);
185+
186+
Wait.ForMilliseconds(1050);
187+
Wait.ForIdle();
188+
189+
RowDefinition rowDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
190+
191+
Wait.ForIdle();
192+
193+
Verify.AreEqual(rowDefinitionEnd.MaxHeight, rowDefinitionEnd.ActualHeight, "Row was not the maximum size expected.");
194+
}
195+
97196
private class ColumnDefinition
98197
{
99198
public GridLength Width { get; set; }
@@ -105,6 +204,17 @@ private class ColumnDefinition
105204
public double MaxWidth { get; set; }
106205
}
107206

207+
private class RowDefinition
208+
{
209+
public GridLength Height { get; set; }
210+
211+
public double ActualHeight { get; set; }
212+
213+
public double MinHeight { get; set; }
214+
215+
public double MaxHeight { get; set; }
216+
}
217+
108218
private class GridLength
109219
{
110220
public int GridUnitType { get; set; } // 0 Auto, 1 Pixel, 2 Star

UITests/UITests.Tests.Shared/Controls/GridSplitterTestPage.xaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@
2929
BorderBrush="{ThemeResource SystemControlHighlightChromeHighBrush}"
3030
BorderThickness="0,0,1,1">
3131
<Grid.RowDefinitions>
32-
<RowDefinition MinHeight="100"
32+
<RowDefinition Height="200"
33+
MinHeight="100"
3334
MaxHeight="300" />
34-
<RowDefinition Height="200" />
35+
<RowDefinition />
3536
</Grid.RowDefinitions>
3637
<Grid.ColumnDefinitions>
3738
<ColumnDefinition Width="200"
@@ -73,8 +74,6 @@
7374
Grid.Column="1"
7475
Width="16"
7576
HorizontalAlignment="Left"
76-
CursorBehavior="ChangeOnSplitterHover"
77-
GripperCursor="Default"
7877
ResizeBehavior="BasedOnAlignment"
7978
ResizeDirection="Auto">
8079
<!--<controls:GridSplitter.RenderTransform>

0 commit comments

Comments
 (0)