Skip to content

Commit 89524fe

Browse files
Update UI tests to assert on header panel margin
1 parent ea6a297 commit 89524fe

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

tests/MaterialDesignThemes.UITests/TestBase.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Diagnostics.CodeAnalysis;
22
using System.Windows.Media;
33
using MaterialDesignThemes.UITests;
4+
using MaterialDesignThemes.Wpf.Internal;
45
using TUnit.Core.Interfaces;
56

67
[assembly: ParallelLimiter<SingleParallelLimit>]
@@ -16,6 +17,7 @@
1617
[assembly: GenerateHelpers(typeof(TimePicker))]
1718
[assembly: GenerateHelpers(typeof(TreeListView))]
1819
[assembly: GenerateHelpers(typeof(TreeListViewItem))]
20+
[assembly: GenerateHelpers(typeof(PaddedBringIntoViewStackPanel))]
1921

2022
namespace MaterialDesignThemes.UITests;
2123

tests/MaterialDesignThemes.UITests/WPF/TabControls/TabControlTests.cs

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.ComponentModel;
22
using System.Windows.Media;
3+
using MaterialDesignThemes.Wpf.Internal;
34

45

56
namespace MaterialDesignThemes.UITests.WPF.TabControls;
@@ -154,13 +155,15 @@ public async Task TabControl_ShouldRespectSelectedContentTemplate_WhenSetDirectl
154155
}
155156

156157
[Test]
157-
public async Task ScrollingTabs_UniformGrid()
158+
[Arguments("")] // UniformGrid style
159+
[Arguments("HorizontalContentAlignment=\"Left\"")] // VirtualizingStackPanel style
160+
public async Task ScrollingTabs_WithMoreTabsThanScreenRealEstate_ShouldAddLeftAndRightMarginToHeaderPanel(string additionalProperties)
158161
{
159162
await using var recorder = new TestRecorder(App);
160163

161164
//Arrange
162-
const int numTabs = 10;
163-
StringBuilder xaml = new("<TabControl>");
165+
const int numTabs = 20;
166+
StringBuilder xaml = new($"<TabControl {additionalProperties}>");
164167
for (int i = 1; i <= numTabs; i++)
165168
{
166169
xaml.Append($"""
@@ -171,22 +174,30 @@ public async Task ScrollingTabs_UniformGrid()
171174
}
172175
xaml.Append("</TabControl>");
173176
IVisualElement<TabControl> tabControl = await LoadXaml<TabControl>(xaml.ToString());
177+
IVisualElement<PaddedBringIntoViewStackPanel> headerPanel = await tabControl.GetElement<PaddedBringIntoViewStackPanel>();
178+
double offsetWhenOverflowingWidth = await headerPanel.GetHeaderPadding();
174179

175180
//Act
181+
Thickness margin = await headerPanel.GetMargin();
176182

177-
//Assert
183+
// Assert
184+
await Assert.That(offsetWhenOverflowingWidth).IsGreaterThan(0);
185+
await Assert.That(margin.Left).IsEqualTo(offsetWhenOverflowingWidth);
186+
await Assert.That(margin.Right).IsEqualTo(offsetWhenOverflowingWidth);
178187

179188
recorder.Success();
180189
}
181190

182191
[Test]
183-
public async Task ScrollingTabs_VirtualizingStackPanel()
192+
[Arguments("")] // UniformGrid style
193+
[Arguments("HorizontalContentAlignment=\"Left\"")] // VirtualizingStackPanel style
194+
public async Task ScrollingTabs_WithLessTabsThanScreenRealEstate_ShouldNotAddLeftAndRightMarginToHeaderPanel(string additionalProperties)
184195
{
185196
await using var recorder = new TestRecorder(App);
186197

187198
//Arrange
188-
const int numTabs = 10;
189-
StringBuilder xaml = new("<TabControl HorizontalContentAlignment=\"Left\">");
199+
const int numTabs = 5;
200+
StringBuilder xaml = new($"<TabControl {additionalProperties}>");
190201
for (int i = 1; i <= numTabs; i++)
191202
{
192203
xaml.Append($"""
@@ -197,10 +208,16 @@ public async Task ScrollingTabs_VirtualizingStackPanel()
197208
}
198209
xaml.Append("</TabControl>");
199210
IVisualElement<TabControl> tabControl = await LoadXaml<TabControl>(xaml.ToString());
211+
IVisualElement<PaddedBringIntoViewStackPanel> headerPanel = await tabControl.GetElement<PaddedBringIntoViewStackPanel>();
212+
double offsetWhenOverflowingWidth = await headerPanel.GetHeaderPadding();
200213

201214
//Act
215+
Thickness margin = await headerPanel.GetMargin();
202216

203-
//Assert
217+
// Assert
218+
await Assert.That(offsetWhenOverflowingWidth).IsGreaterThan(0);
219+
await Assert.That(margin.Left).IsEqualTo(0);
220+
await Assert.That(margin.Right).IsEqualTo(0);
204221

205222
recorder.Success();
206223
}

0 commit comments

Comments
 (0)