Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add failing UI tests for TextBox
  • Loading branch information
nicolaihenriksen committed Feb 14, 2023
commit fc3cf2ac949df5d7d58d0adb732dfb9e73781ce1
41 changes: 41 additions & 0 deletions MaterialDesignThemes.UITests/WPF/TextBoxes/TextBoxTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,47 @@ public async Task FilledTextBox_ValidationErrorMargin_MatchesHelperTextMargin()

recorder.Success();
}

[Theory]
[InlineData("MaterialDesignFloatingHintTextBox", null)]
[InlineData("MaterialDesignFloatingHintTextBox", 5)]
[InlineData("MaterialDesignFloatingHintTextBox", 20)]
[InlineData("MaterialDesignFilledTextBox", null)]
[InlineData("MaterialDesignFilledTextBox", 5)]
[InlineData("MaterialDesignFilledTextBox", 20)]
[InlineData("MaterialDesignOutlinedTextBox", null)]
[InlineData("MaterialDesignOutlinedTextBox", 5)]
[InlineData("MaterialDesignOutlinedTextBox", 20)]
public async Task TextBox_WithHintAndHelperText_RespectsPadding(string styleName, int? padding)
{
await using var recorder = new TestRecorder(App);

// FIXME: Tolerance needed because TextFieldAssist.TextBoxViewMargin is in play and slightly modifies the hint text placement in certain cases.
double tolerance = 1.5;

string styleAttribute = $"Style=\"{{StaticResource {styleName}}}\"";
string paddingAttribute = padding.HasValue ? $"Padding=\"{padding.Value}\"" : string.Empty;

var textBox = await LoadXaml<TextBox>($@"
<TextBox {styleAttribute} {paddingAttribute}
materialDesign:HintAssist.Hint=""Hint text""
materialDesign:HintAssist.HelperText=""Helper text""
Width=""200"" VerticalAlignment=""Center"" HorizontalAlignment=""Center"" />
");

var contentHost = await textBox.GetElement<ScrollViewer>("PART_ContentHost");
var hint = await textBox.GetElement<SmartHint>("Hint");
var helperText = await textBox.GetElement<TextBlock>("HelperTextTextBlock");

Rect? contentHostCoordinates = await contentHost.GetCoordinates();
Rect? hintCoordinates = await hint.GetCoordinates();
Rect? helperTextCoordinates = await helperText.GetCoordinates();

Assert.InRange(Math.Abs(contentHostCoordinates.Value.Left - hintCoordinates.Value.Left), 0, tolerance);
Assert.InRange(Math.Abs(contentHostCoordinates.Value.Left - helperTextCoordinates.Value.Left), 0, tolerance);

recorder.Success();
}
}

public class NotEmptyValidationRule : ValidationRule
Expand Down