Files
Terminal.Gui/Tests/UnitTestsParallelizable/View/Adornment/ShadowStyletests.cs
Tig b0f32811eb Fixes #3930 - Splits tests to Tests/UnitTests, Tests/IntegrationTests, Tests/StressTests (#3954)
* Tons of API doc updates

* Removed stale test

* Removed stale tests

* Fixed Skipped Shadow test 1

* Fixed Skipped Shadow test 2

* Fixed Skipped Shadow test 3

* Removed stale test

* Removed stale test2

* Explicit unregister of event handler on Application.Driver!.ClearedContents

* Added Toplevels to dict

* code cleanup

* spelling error

* Removed stale test3

* Removed stale test4

* Removed stale test5

* added script

* tweaked script

* tweaked script

* Created StressTests project; moved some tests

* Created IntegrationTests project; moved some tests

* New yml

* made old yml just unit tests

* Tweaked Button_IsDefault_Raises_Accepted_Correctly

* tweaked script

* cleaned up ymls

* tweakled up ymls

* stress tests...

* stress tests on ubuntu only

* Fixed WindowsDriver in InvokeLeakTest

* Fixed WindowsDriver in InvokeLeakTest2

* Added Directory.Packages.props.
Added Directory.Build.props

* Shortened StressTest time

* Removed dupe file.

* DemoFiles

* Moved all tests to ./Tests dir.

* Fixed release build issue

* Fixed .sln file

* Fixed .sl* files

* Fixing ymls

* Fixing interation tests

* Create link to the file TestHelpers.

* Created Tests/UnitTestsParallelizable.
Moved all obviously parallelizable tests.
Updated yml.

* fixing logs

* fixing logs2

* fixing logs3

* don't require stress to pass for PRs

* Fix a failure?

* tweaked script

* Coudl this be it?

* Moved tons of tests to parallelizable

* Fixed some stuff

* Script to find duplicate tests

* Testing workflows

* Updated to v4

* Fix RelativeBasePath issue

* Replace powershell to pwsh

* Add ignore projects.

* Removed dupe unit tests

* Code cleanup of tests

* Cleaned up test warnings

* yml tweak

* Moved setter

* tweak ymls

* just randomly throwing spaghetti at a wall

* Enable runing 5 test runners in par

* Turned off DEBUG_DISPOSABLE for par tests

* RunningUnitTests=true

* code cleanup (forcing more Action runs)

* DISABLE_DEBUG_IDISPOSABLE

* Added View.DebugIDisposable. False by default.

* Remobed bogus tareet

* Remobed bogus tareet2

* fixed warning

* added api doc

* fixed warning

* fixed warning

* fixed warning2

* fixed warning3

* fixed warning4

---------

Co-authored-by: BDisp <bd.bdisp@gmail.com>
2025-03-05 23:44:27 -07:00

107 lines
3.2 KiB
C#

namespace Terminal.Gui.ViewTests;
public class ShadowStyleTests
{
[Fact]
public void Default_None ()
{
var view = new View ();
Assert.Equal (ShadowStyle.None, view.ShadowStyle);
Assert.Equal (ShadowStyle.None, view.Margin!.ShadowStyle);
view.Dispose ();
}
[Theory]
[InlineData (ShadowStyle.None)]
[InlineData (ShadowStyle.Opaque)]
[InlineData (ShadowStyle.Transparent)]
public void Set_View_Sets_Margin (ShadowStyle style)
{
var view = new View ();
view.ShadowStyle = style;
Assert.Equal (style, view.ShadowStyle);
Assert.Equal (style, view.Margin!.ShadowStyle);
view.Dispose ();
}
[Theory]
[InlineData (ShadowStyle.None, 0, 0, 0, 0)]
[InlineData (ShadowStyle.Opaque, 1, 0, 0, 1)]
[InlineData (ShadowStyle.Transparent, 1, 0, 0, 1)]
public void ShadowStyle_Button1Pressed_Causes_Movement (ShadowStyle style, int expectedLeft, int expectedTop, int expectedRight, int expectedBottom)
{
var superView = new View
{
Height = 10, Width = 10
};
View view = new ()
{
Width = Dim.Auto (),
Height = Dim.Auto (),
Text = "0123",
HighlightStyle = HighlightStyle.Pressed,
ShadowStyle = style,
CanFocus = true
};
superView.Add (view);
superView.BeginInit ();
superView.EndInit ();
Thickness origThickness = view.Margin!.Thickness;
view.NewMouseEvent (new () { Flags = MouseFlags.Button1Pressed, Position = new (0, 0) });
Assert.Equal (new (expectedLeft, expectedTop, expectedRight, expectedBottom), view.Margin.Thickness);
view.NewMouseEvent (new () { Flags = MouseFlags.Button1Released, Position = new (0, 0) });
Assert.Equal (origThickness, view.Margin.Thickness);
}
[Theory]
[InlineData (ShadowStyle.None, 0, 0, 0, 0)]
[InlineData (ShadowStyle.Opaque, 0, 0, 1, 1)]
[InlineData (ShadowStyle.Transparent, 0, 0, 1, 1)]
public void ShadowStyle_Margin_Thickness (ShadowStyle style, int expectedLeft, int expectedTop, int expectedRight, int expectedBottom)
{
var superView = new View
{
Height = 10, Width = 10
};
View view = new ()
{
Width = Dim.Auto (),
Height = Dim.Auto (),
Text = "0123",
HighlightStyle = HighlightStyle.Pressed,
ShadowStyle = style,
CanFocus = true
};
superView.Add (view);
superView.BeginInit ();
superView.EndInit ();
Assert.Equal (new (expectedLeft, expectedTop, expectedRight, expectedBottom), view.Margin.Thickness);
}
[Theory]
[InlineData (ShadowStyle.None, 3)]
[InlineData (ShadowStyle.Opaque, 4)]
[InlineData (ShadowStyle.Transparent, 4)]
public void Style_Changes_Margin_Thickness (ShadowStyle style, int expected)
{
var view = new View ();
view.Margin!.Thickness = new (3);
view.ShadowStyle = style;
Assert.Equal (new (3, 3, expected, expected), view.Margin.Thickness);
view.ShadowStyle = ShadowStyle.None;
Assert.Equal (new (3), view.Margin.Thickness);
view.Dispose ();
}
}