Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
98 changes: 98 additions & 0 deletions src/test/unit/System.Windows.Forms/NumericUpDownTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -858,6 +858,104 @@ public void UpButton_IncrementCausesOverflow_SetsValueToMaximum()
upDown.Value.Should().Be(decimal.MaxValue);
}

[WinFormsTheory]
[InlineData(VisualStylesMode.Net11)]
[InlineData(VisualStylesMode.Classic)]
public void NumericUpDown_VisualStylesMode_DoesNotThrowOnPaint(VisualStylesMode visualStylesMode)
{
using NumericUpDown numericUpDown = new()
{
VisualStylesMode = visualStylesMode,
Value = 5,
Size = new Size(120, 32)
};

numericUpDown.CreateControl();

using Bitmap bitmap = new(numericUpDown.Width, numericUpDown.Height);
numericUpDown.DrawToBitmap(bitmap, new Rectangle(Point.Empty, numericUpDown.Size));

Assert.Equal(visualStylesMode, numericUpDown.VisualStylesMode);
}

[WinFormsTheory]
[InlineData(VisualStylesMode.Net11)]
[InlineData(VisualStylesMode.Classic)]
public void NumericUpDown_VisualStylesMode_WithReadOnlyRenders(VisualStylesMode visualStylesMode)
{
using NumericUpDown numericUpDown = new()
{
VisualStylesMode = visualStylesMode,
Value = 42,
ReadOnly = true,
Size = new Size(120, 32)
};

numericUpDown.CreateControl();

using Bitmap bitmap = new(numericUpDown.Width, numericUpDown.Height);

// Should not throw with ReadOnly in any visual styles mode.
numericUpDown.DrawToBitmap(bitmap, new Rectangle(Point.Empty, numericUpDown.Size));
}

[WinFormsTheory]
[InlineData(VisualStylesMode.Net11)]
[InlineData(VisualStylesMode.Classic)]
public void NumericUpDown_VisualStylesMode_WithDisabledRenders(VisualStylesMode visualStylesMode)
{
using NumericUpDown numericUpDown = new()
{
VisualStylesMode = visualStylesMode,
Value = 10,
Enabled = false,
Size = new Size(120, 32)
};

numericUpDown.CreateControl();

using Bitmap bitmap = new(numericUpDown.Width, numericUpDown.Height);

// Should not throw when disabled in any visual styles mode.
numericUpDown.DrawToBitmap(bitmap, new Rectangle(Point.Empty, numericUpDown.Size));
}

[WinFormsFact]
public void NumericUpDown_VisualStylesMode_ChangedToNet11_Invalidates()
{
using NumericUpDown numericUpDown = new() { Size = new Size(120, 32) };
numericUpDown.CreateControl();

int invalidatedCount = 0;
numericUpDown.Invalidated += (s, e) => invalidatedCount++;

numericUpDown.VisualStylesMode = VisualStylesMode.Net11;

Assert.True(invalidatedCount >= 1);
Assert.Equal(VisualStylesMode.Net11, numericUpDown.VisualStylesMode);
}

[WinFormsFact]
public void NumericUpDown_VisualStylesMode_ChangedToNet11_PerformsAutoSizeLayout()
{
using FlowLayoutPanel parent = new();
using NumericUpDown numericUpDown = new()
{
AutoSize = true
};

parent.Controls.Add(numericUpDown);
parent.CreateControl();

Size sizeBeforeChange = numericUpDown.Size;

numericUpDown.VisualStylesMode = VisualStylesMode.Net11;

// Size may change due to different rendering in modern visual styles
Assert.NotNull(numericUpDown.Size);
Comment on lines +950 to +955
Assert.Equal(VisualStylesMode.Net11, numericUpDown.VisualStylesMode);
}

private class SubNumericUpDown : NumericUpDown
{
public int UpdateEditTextCallCount { get; private set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1469,6 +1469,68 @@ private static int FindBodyOffset(
private static int GetLuminance(Color color)
=> ((299 * color.R) + (587 * color.G) + (114 * color.B)) / 1000;

[WinFormsTheory]
[InlineData(VisualStylesMode.Net11)]
[InlineData(VisualStylesMode.Classic)]
Comment on lines +1473 to +1474
public void Button_VisualStylesMode_DoesNotThrowOnPaint(VisualStylesMode visualStylesMode)
{
using Button button = new()
{
VisualStylesMode = visualStylesMode,
Text = "Test Button",
Size = new Size(120, 32)
};

button.CreateControl();

using Bitmap bitmap = new(button.Width, button.Height);
button.DrawToBitmap(bitmap, new Rectangle(Point.Empty, button.Size));

Assert.Equal(visualStylesMode, button.VisualStylesMode);
}

[WinFormsTheory]
[InlineData(VisualStylesMode.Net11)]
[InlineData(VisualStylesMode.Classic)]
public void Button_VisualStylesMode_WithFlatStyleRenders(VisualStylesMode visualStylesMode)
{
using Button button = new()
{
VisualStylesMode = visualStylesMode,
FlatStyle = FlatStyle.Flat,
Text = "Flat Button",
Size = new Size(120, 32)
};

button.CreateControl();

using Bitmap bitmap = new(button.Width, button.Height);

// Should not throw with FlatStyle in any visual styles mode.
button.DrawToBitmap(bitmap, new Rectangle(Point.Empty, button.Size));
}

[WinFormsTheory]
[InlineData(VisualStylesMode.Net11)]
[InlineData(VisualStylesMode.Classic)]
public void Button_VisualStylesMode_WithDisabledRenders(VisualStylesMode visualStylesMode)
{
using Button button = new()
{
VisualStylesMode = visualStylesMode,
Text = "Disabled Button",
Enabled = false,
Size = new Size(120, 32)
};

button.CreateControl();

using Bitmap bitmap = new(button.Width, button.Height);

// Should not throw when disabled in any visual styles mode.
button.DrawToBitmap(bitmap, new Rectangle(Point.Empty, button.Size));
}

/// <summary>
/// Exposes colorization messages for renderer-refresh tests.
/// </summary>
Expand Down
Loading