Browse Source

Move unit tests per @tig.

BDisp 9 months ago
parent
commit
853f95f7f7
2 changed files with 246 additions and 246 deletions
  1. 0 246
      UnitTests/Drawing/CellTests.cs
  2. 246 0
      UnitTests/Views/TextViewTests.cs

+ 0 - 246
UnitTests/Drawing/CellTests.cs

@@ -33,249 +33,6 @@ public class CellTests (ITestOutputHelper output)
         Assert.False (c2.Equals (c1));
         Assert.False (c2.Equals (c1));
     }
     }
 
 
-    [Fact]
-    public void Equals_True ()
-    {
-        var c1 = new Cell ();
-        var c2 = new Cell ();
-        Assert.True (c1.Equals (c2));
-        Assert.True (c2.Equals (c1));
-
-        c1.Rune = new ('a');
-        c1.Attribute = new ();
-        c2.Rune = new ('a');
-        c2.Attribute = new ();
-        Assert.True (c1.Equals (c2));
-        Assert.True (c2.Equals (c1));
-    }
-
-    [Fact]
-    [AutoInitShutdown (configLocation: ConfigurationManager.ConfigLocations.DefaultOnly)]
-    public void Cell_LoadCells_InheritsPreviousAttribute ()
-    {
-        List<Cell> cells = [];
-
-        foreach (KeyValuePair<string, ColorScheme> color in Colors.ColorSchemes)
-        {
-            string csName = color.Key;
-
-            foreach (Rune rune in csName.EnumerateRunes ())
-            {
-                cells.Add (new() { Rune = rune, Attribute = color.Value.Normal });
-            }
-
-            cells.Add (new() { Rune = (Rune)'\n', Attribute = color.Value.Focus });
-        }
-
-        TextView tv = CreateTextView ();
-        tv.Load (cells);
-        var top = new Toplevel ();
-        top.Add (tv);
-        RunState rs = Application.Begin (top);
-        Assert.True (tv.InheritsPreviousAttribute);
-
-        var expectedText = @"
-TopLevel
-Base    
-Dialog  
-Menu    
-Error   ";
-        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
-
-        Attribute [] attributes =
-        {
-            // 0
-            Colors.ColorSchemes ["TopLevel"].Normal,
-
-            // 1
-            Colors.ColorSchemes ["Base"].Normal,
-
-            // 2
-            Colors.ColorSchemes ["Dialog"].Normal,
-
-            // 3
-            Colors.ColorSchemes ["Menu"].Normal,
-
-            // 4
-            Colors.ColorSchemes ["Error"].Normal,
-
-            // 5
-            tv.ColorScheme!.Focus
-        };
-
-        var expectedColor = @"
-0000000055
-1111555555
-2222225555
-3333555555
-4444455555";
-        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
-
-        tv.WordWrap = true;
-        Application.Refresh ();
-        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
-        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
-
-        tv.CursorPosition = new (6, 2);
-        tv.SelectionStartColumn = 0;
-        tv.SelectionStartRow = 0;
-        Assert.Equal ($"TopLevel{Environment.NewLine}Base{Environment.NewLine}Dialog", tv.SelectedText);
-        tv.Copy ();
-        tv.Selecting = false;
-        tv.CursorPosition = new (2, 4);
-        tv.Paste ();
-        Application.Refresh ();
-
-        expectedText = @"
-TopLevel  
-Base      
-Dialog    
-Menu      
-ErTopLevel
-Base      
-Dialogror ";
-        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
-
-        expectedColor = @"
-0000000055
-1111555555
-2222225555
-3333555555
-4400000000
-1111555555
-2222224445";
-        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
-
-        tv.Undo ();
-        tv.CursorPosition = new (0, 3);
-        tv.SelectionStartColumn = 0;
-        tv.SelectionStartRow = 0;
-
-        Assert.Equal (
-                      $"TopLevel{Environment.NewLine}Base{Environment.NewLine}Dialog{Environment.NewLine}",
-                      tv.SelectedText
-                     );
-        tv.Copy ();
-        tv.Selecting = false;
-        tv.CursorPosition = new (2, 4);
-        tv.Paste ();
-        Application.Refresh ();
-
-        expectedText = @"
-TopLevel  
-Base      
-Dialog    
-Menu      
-ErTopLevel
-Base      
-Dialog    
-ror       ";
-        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
-
-        expectedColor = @"
-0000000055
-1111555555
-2222225555
-3333555555
-4400000000
-1111555555
-2222225555
-4445555555";
-        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
-
-        Application.End (rs);
-        top.Dispose ();
-    }
-
-    [Fact]
-    public void Cell_LoadCells_Without_ColorScheme_Is_Never_Null ()
-    {
-        List<Cell> cells = new ()
-        {
-            new() { Rune = new ('T') },
-            new() { Rune = new ('e') },
-            new() { Rune = new ('s') },
-            new() { Rune = new ('t') }
-        };
-        TextView tv = CreateTextView ();
-        var top = new Toplevel ();
-        top.Add (tv);
-        tv.Load (cells);
-
-        for (var i = 0; i < tv.Lines; i++)
-        {
-            List<Cell> line = tv.GetLine (i);
-
-            foreach (Cell c in line)
-            {
-                Assert.NotNull (c.Attribute);
-            }
-        }
-    }
-
-    [Fact]
-    [AutoInitShutdown]
-    public void CellEventArgs_WordWrap_True ()
-    {
-        var eventCount = 0;
-
-        List<List<Cell>> text =
-        [
-            Cell.ToCells (
-                          "This is the first line.".ToRunes ()
-                         ),
-
-            Cell.ToCells (
-                          "This is the second line.".ToRunes ()
-                         )
-        ];
-        TextView tv = CreateTextView ();
-        tv.DrawNormalColor += _textView_DrawColor;
-        tv.DrawReadOnlyColor += _textView_DrawColor;
-        tv.DrawSelectionColor += _textView_DrawColor;
-        tv.DrawUsedColor += _textView_DrawColor;
-
-        void _textView_DrawColor (object sender, CellEventArgs e)
-        {
-            Assert.Equal (e.Line [e.Col], text [e.UnwrappedPosition.Row] [e.UnwrappedPosition.Col]);
-            eventCount++;
-        }
-
-        tv.Text = $"{Cell.ToString (text [0])}\n{Cell.ToString (text [1])}\n";
-        Assert.False (tv.WordWrap);
-        var top = new Toplevel ();
-        top.Add (tv);
-        Application.Begin (top);
-
-        TestHelpers.AssertDriverContentsWithFrameAre (
-                                                      @"
-This is the first line. 
-This is the second line.",
-                                                      output
-                                                     );
-
-        tv.Width = 10;
-        tv.Height = 25;
-        tv.WordWrap = true;
-        Application.Refresh ();
-
-        TestHelpers.AssertDriverContentsWithFrameAre (
-                                                      @"
-This is
-the    
-first  
-line.  
-This is
-the    
-second 
-line.  ",
-                                                      output
-                                                     );
-
-        Assert.Equal (eventCount, (text [0].Count + text [1].Count) * 2);
-        top.Dispose ();
-    }
-
     [Fact]
     [Fact]
     public void ToString_Override ()
     public void ToString_Override ()
     {
     {
@@ -292,7 +49,4 @@ line.  ",
                       c2.ToString ()
                       c2.ToString ()
                      );
                      );
     }
     }
-
-    // TODO: Move the tests below to View or Color - they test ColorScheme, not Cell primitives.
-    private TextView CreateTextView () { return new() { Width = 30, Height = 10 }; }
 }
 }

+ 246 - 0
UnitTests/Views/TextViewTests.cs

@@ -8756,4 +8756,250 @@ line.
 
 
         tv.Dispose ();
         tv.Dispose ();
     }
     }
+
+    [Fact]
+    public void Equals_True ()
+    {
+        var c1 = new Cell ();
+        var c2 = new Cell ();
+        Assert.True (c1.Equals (c2));
+        Assert.True (c2.Equals (c1));
+
+        c1.Rune = new ('a');
+        c1.Attribute = new ();
+        c2.Rune = new ('a');
+        c2.Attribute = new ();
+        Assert.True (c1.Equals (c2));
+        Assert.True (c2.Equals (c1));
+    }
+
+    [Fact]
+    [AutoInitShutdown]
+    public void CellEventArgs_WordWrap_True ()
+    {
+        var eventCount = 0;
+
+        List<List<Cell>> text =
+        [
+            Cell.ToCells (
+                          "This is the first line.".ToRunes ()
+                         ),
+
+            Cell.ToCells (
+                          "This is the second line.".ToRunes ()
+                         )
+        ];
+        TextView tv = CreateTextView ();
+        tv.DrawNormalColor += _textView_DrawColor;
+        tv.DrawReadOnlyColor += _textView_DrawColor;
+        tv.DrawSelectionColor += _textView_DrawColor;
+        tv.DrawUsedColor += _textView_DrawColor;
+
+        void _textView_DrawColor (object sender, CellEventArgs e)
+        {
+            Assert.Equal (e.Line [e.Col], text [e.UnwrappedPosition.Row] [e.UnwrappedPosition.Col]);
+            eventCount++;
+        }
+
+        tv.Text = $"{Cell.ToString (text [0])}\n{Cell.ToString (text [1])}\n";
+        Assert.False (tv.WordWrap);
+        var top = new Toplevel ();
+        top.Add (tv);
+        Application.Begin (top);
+
+        TestHelpers.AssertDriverContentsWithFrameAre (
+                                                      @"
+This is the first line. 
+This is the second line.",
+                                                      _output
+                                                     );
+
+        tv.Width = 10;
+        tv.Height = 25;
+        tv.WordWrap = true;
+        Application.Refresh ();
+
+        TestHelpers.AssertDriverContentsWithFrameAre (
+                                                      @"
+This is
+the    
+first  
+line.  
+This is
+the    
+second 
+line.  ",
+                                                      _output
+                                                     );
+
+        Assert.Equal (eventCount, (text [0].Count + text [1].Count) * 2);
+        top.Dispose ();
+    }
+
+    [Fact]
+    [AutoInitShutdown (configLocation: ConfigurationManager.ConfigLocations.DefaultOnly)]
+    public void Cell_LoadCells_InheritsPreviousAttribute ()
+    {
+        List<Cell> cells = [];
+
+        foreach (KeyValuePair<string, ColorScheme> color in Colors.ColorSchemes)
+        {
+            string csName = color.Key;
+
+            foreach (Rune rune in csName.EnumerateRunes ())
+            {
+                cells.Add (new () { Rune = rune, Attribute = color.Value.Normal });
+            }
+
+            cells.Add (new () { Rune = (Rune)'\n', Attribute = color.Value.Focus });
+        }
+
+        TextView tv = CreateTextView ();
+        tv.Load (cells);
+        var top = new Toplevel ();
+        top.Add (tv);
+        RunState rs = Application.Begin (top);
+        Assert.True (tv.InheritsPreviousAttribute);
+
+        var expectedText = @"
+TopLevel
+Base    
+Dialog  
+Menu    
+Error   ";
+        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
+
+        Attribute [] attributes =
+        {
+            // 0
+            Colors.ColorSchemes ["TopLevel"].Normal,
+
+            // 1
+            Colors.ColorSchemes ["Base"].Normal,
+
+            // 2
+            Colors.ColorSchemes ["Dialog"].Normal,
+
+            // 3
+            Colors.ColorSchemes ["Menu"].Normal,
+
+            // 4
+            Colors.ColorSchemes ["Error"].Normal,
+
+            // 5
+            tv.ColorScheme!.Focus
+        };
+
+        var expectedColor = @"
+0000000055
+1111555555
+2222225555
+3333555555
+4444455555";
+        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
+
+        tv.WordWrap = true;
+        Application.Refresh ();
+        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
+        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
+
+        tv.CursorPosition = new (6, 2);
+        tv.SelectionStartColumn = 0;
+        tv.SelectionStartRow = 0;
+        Assert.Equal ($"TopLevel{Environment.NewLine}Base{Environment.NewLine}Dialog", tv.SelectedText);
+        tv.Copy ();
+        tv.Selecting = false;
+        tv.CursorPosition = new (2, 4);
+        tv.Paste ();
+        Application.Refresh ();
+
+        expectedText = @"
+TopLevel  
+Base      
+Dialog    
+Menu      
+ErTopLevel
+Base      
+Dialogror ";
+        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
+
+        expectedColor = @"
+0000000055
+1111555555
+2222225555
+3333555555
+4400000000
+1111555555
+2222224445";
+        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
+
+        tv.Undo ();
+        tv.CursorPosition = new (0, 3);
+        tv.SelectionStartColumn = 0;
+        tv.SelectionStartRow = 0;
+
+        Assert.Equal (
+                      $"TopLevel{Environment.NewLine}Base{Environment.NewLine}Dialog{Environment.NewLine}",
+                      tv.SelectedText
+                     );
+        tv.Copy ();
+        tv.Selecting = false;
+        tv.CursorPosition = new (2, 4);
+        tv.Paste ();
+        Application.Refresh ();
+
+        expectedText = @"
+TopLevel  
+Base      
+Dialog    
+Menu      
+ErTopLevel
+Base      
+Dialog    
+ror       ";
+        TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
+
+        expectedColor = @"
+0000000055
+1111555555
+2222225555
+3333555555
+4400000000
+1111555555
+2222225555
+4445555555";
+        TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
+
+        Application.End (rs);
+        top.Dispose ();
+    }
+
+    [Fact]
+    public void Cell_LoadCells_Without_ColorScheme_Is_Never_Null ()
+    {
+        List<Cell> cells = new ()
+        {
+            new() { Rune = new ('T') },
+            new() { Rune = new ('e') },
+            new() { Rune = new ('s') },
+            new() { Rune = new ('t') }
+        };
+        TextView tv = CreateTextView ();
+        var top = new Toplevel ();
+        top.Add (tv);
+        tv.Load (cells);
+
+        for (var i = 0; i < tv.Lines; i++)
+        {
+            List<Cell> line = tv.GetLine (i);
+
+            foreach (Cell c in line)
+            {
+                Assert.NotNull (c.Attribute);
+            }
+        }
+    }
+
+    private TextView CreateTextView () { return new () { Width = 30, Height = 10 }; }
+
 }
 }