From 06f7a9898ec63b3c06f7e800a9017b4f1bd3ffcc Mon Sep 17 00:00:00 2001 From: Tigger Kindel Date: Fri, 11 Aug 2023 13:32:42 -0600 Subject: [PATCH] fixed WindowsDriver to work in linux unit tests --- Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs | 1 + .../ConsoleDrivers/CursesDriver/CursesDriver.cs | 6 ++++-- Terminal.Gui/ConsoleDrivers/NetDriver.cs | 12 ++++++++++-- UnitTests/ConsoleDrivers/ColorTests.cs | 15 ++++++--------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs b/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs index c839f1453..a40d89d68 100644 --- a/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs @@ -369,6 +369,7 @@ public abstract class ConsoleDriver { get => _force16Colors || !SupportsTrueColor; set { _force16Colors = (value || !SupportsTrueColor); + Refresh (); } } diff --git a/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs b/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs index 0b4d2a024..b0feeece0 100644 --- a/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs @@ -247,8 +247,10 @@ internal class CursesDriver : ConsoleDriver { } } - Curses.move (Row, Col); - _window.wrefresh (); + if (_window != null) { + Curses.move (Row, Col); + _window.wrefresh (); + } } public Curses.Window _window; diff --git a/Terminal.Gui/ConsoleDrivers/NetDriver.cs b/Terminal.Gui/ConsoleDrivers/NetDriver.cs index 4c3ece531..aafcfbcea 100644 --- a/Terminal.Gui/ConsoleDrivers/NetDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/NetDriver.cs @@ -671,6 +671,9 @@ internal class NetDriver : ConsoleDriver { public override void UpdateScreen () { + if (NetWinConsole == null) { + return; + } if (_winSizeChanging || Console.WindowHeight < 1 || Contents.Length != Rows * Cols || Rows != Console.WindowHeight) { return; } @@ -862,6 +865,9 @@ internal class NetDriver : ConsoleDriver { public override bool SetCursorVisibility (CursorVisibility visibility) { _cachedCursorVisibility = visibility; + if (NetWinConsole == null) { + return visibility == CursorVisibility.Default; + } var isVisible = Console.CursorVisible = visibility == CursorVisibility.Default; //Console.Out.Write (isVisible ? EscSeqUtils.CSI_ShowCursor : EscSeqUtils.CSI_HideCursor); return isVisible; @@ -885,8 +891,10 @@ internal class NetDriver : ConsoleDriver { void SetWindowPosition (int col, int row) { - Top = Console.WindowTop; - Left = Console.WindowLeft; + if (NetWinConsole != null) { + Top = Console.WindowTop; + Left = Console.WindowLeft; + } } private bool EnsureBufferSize () diff --git a/UnitTests/ConsoleDrivers/ColorTests.cs b/UnitTests/ConsoleDrivers/ColorTests.cs index 966091f4c..a05084e69 100644 --- a/UnitTests/ConsoleDrivers/ColorTests.cs +++ b/UnitTests/ConsoleDrivers/ColorTests.cs @@ -92,21 +92,18 @@ namespace Terminal.Gui.DriverTests { } [Theory] - [InlineData (typeof (FakeDriver), true)] - [InlineData (typeof (NetDriver), false)] - [InlineData (typeof (CursesDriver), true)] - [InlineData (typeof (WindowsDriver), false)] - public void Force16Colors_Sets (Type driverType, bool expectedSetting) + [InlineData (typeof (FakeDriver))] + [InlineData (typeof (NetDriver))] + [InlineData (typeof (CursesDriver))] + [InlineData (typeof (WindowsDriver))] + public void Force16Colors_Sets (Type driverType) { var driver = (ConsoleDriver)Activator.CreateInstance (driverType); driver.Init (() => { }); - Assert.Equal (expectedSetting, driver.Force16Colors); - driver.Force16Colors = true; - Assert.True (driver.Force16Colors); - + driver.End (); // Shutdown must be called to safely clean up Application if Init has been called