|
@@ -27,6 +27,132 @@ public class ShadowStyleTests (ITestOutputHelper _output)
|
|
|
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,
|
|
|
+ """
|
|
|
+ 011
|
|
|
+ 111
|
|
|
+ 111
|
|
|
+ """)]
|
|
|
+ [InlineData (
|
|
|
+ ShadowStyle.Transparent,
|
|
|
+ """
|
|
|
+ 011
|
|
|
+ 131
|
|
|
+ 111
|
|
|
+ """)]
|
|
|
+ [InlineData (
|
|
|
+ ShadowStyle.Opaque,
|
|
|
+ """
|
|
|
+ 011
|
|
|
+ 121
|
|
|
+ 111
|
|
|
+ """)]
|
|
|
+ [SetupFakeDriver]
|
|
|
+ public void ShadowView_Colors (ShadowStyle style, string expectedAttrs)
|
|
|
+ {
|
|
|
+ Color fg = Color.Red;
|
|
|
+ Color bg = Color.Green;
|
|
|
+
|
|
|
+ // 0 - View
|
|
|
+ // 1 - SuperView
|
|
|
+ // 2 - Opaque - fg is Black, bg is SuperView.Bg
|
|
|
+ // 3 - Transparent - fg is darker fg, bg is darker bg
|
|
|
+ Attribute [] attributes =
|
|
|
+ {
|
|
|
+ Attribute.Default,
|
|
|
+ new (fg, bg),
|
|
|
+ new (Color.Black, bg),
|
|
|
+ new (fg.GetDarkerColor (), bg.GetDarkerColor ())
|
|
|
+ };
|
|
|
+
|
|
|
+ var superView = new View
|
|
|
+ {
|
|
|
+ Height = 3,
|
|
|
+ Width = 3,
|
|
|
+ Text = "012ABC!@#",
|
|
|
+ ColorScheme = new (new Attribute (fg, bg))
|
|
|
+ };
|
|
|
+ superView.TextFormatter.WordWrap = true;
|
|
|
+
|
|
|
+ View view = new ()
|
|
|
+ {
|
|
|
+ Width = Dim.Auto (),
|
|
|
+ Height = Dim.Auto (),
|
|
|
+ Text = " ",
|
|
|
+ ShadowStyle = style,
|
|
|
+ ColorScheme = new (Attribute.Default)
|
|
|
+ };
|
|
|
+ superView.Add (view);
|
|
|
+ superView.BeginInit ();
|
|
|
+ superView.EndInit ();
|
|
|
+
|
|
|
+ superView.Draw ();
|
|
|
+ TestHelpers.AssertDriverAttributesAre (expectedAttrs, Application.Driver, attributes);
|
|
|
+ }
|
|
|
+
|
|
|
[Theory]
|
|
|
[InlineData (ShadowStyle.None, 3)]
|
|
|
[InlineData (ShadowStyle.Opaque, 4)]
|