From d8ec2a8bfec91e8aee7fb1450f16e2f0fe841d9d Mon Sep 17 00:00:00 2001 From: BDisp Date: Mon, 13 May 2024 14:39:41 +0100 Subject: [PATCH] Fixes #3475. FakeConsole throws System.IndexOutOfRangeException using SetupFakeDriverAttribute. --- .../ConsoleDrivers/FakeDriver/FakeDriver.cs | 22 +++++++++++++++++++ UnitTests/TestHelpers.cs | 2 ++ 2 files changed, 24 insertions(+) diff --git a/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs b/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs index 74328a818..1155a2846 100644 --- a/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs @@ -40,6 +40,28 @@ public class FakeDriver : ConsoleDriver public static Behaviors FakeBehaviors = new (); public override bool SupportsTrueColor => false; + /// + public override int Cols + { + get => base.Cols; + internal set + { + base.Cols = value; + FakeConsole.SetBufferSize (Cols, Rows); + } + } + + /// + public override int Rows + { + get => base.Rows; + internal set + { + base.Rows = value; + FakeConsole.SetBufferSize (Cols, Rows); + } + } + public FakeDriver () { Cols = FakeConsole.WindowWidth = FakeConsole.BufferWidth = FakeConsole.WIDTH; diff --git a/UnitTests/TestHelpers.cs b/UnitTests/TestHelpers.cs index 32b68eb37..d0444ea68 100644 --- a/UnitTests/TestHelpers.cs +++ b/UnitTests/TestHelpers.cs @@ -171,6 +171,8 @@ public class SetupFakeDriverAttribute : BeforeAfterTestAttribute Debug.WriteLine ($"Before: {methodUnderTest.Name}"); Assert.Null (Application.Driver); Application.Driver = new FakeDriver { Rows = 25, Cols = 25 }; + Assert.Equal (FakeConsole.BufferWidth, Application.Driver.Cols); + Assert.Equal (FakeConsole.BufferHeight, Application.Driver.Rows); base.Before (methodUnderTest); } }