mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-27 00:07:58 +01:00
* Comment/warning clean up * Moved Text and Drawing out * Moved Layout out * Removed extra lines * Removed Mouse out * Reorgainzed View * API docs * removed border.cs * TopLevel.Resized -> TerminalResized * Mdi -> Overlapped * Removed confusing and un-needed WillPresent * privates -> _ * Tweaked RunLoop API
157 lines
4.9 KiB
C#
157 lines
4.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Xunit;
|
|
using Xunit.Abstractions;
|
|
|
|
// Alias Console to MockConsole so we don't accidentally use Console
|
|
using Console = Terminal.Gui.FakeConsole;
|
|
|
|
namespace Terminal.Gui.DriverTests {
|
|
public class ConsoleScrollingTests {
|
|
readonly ITestOutputHelper output;
|
|
|
|
public ConsoleScrollingTests (ITestOutputHelper output)
|
|
{
|
|
this.output = output;
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData (typeof (FakeDriver))]
|
|
public void EnableConsoleScrolling_Is_False_Left_And_Top_Is_Always_Zero (Type driverType)
|
|
{
|
|
var driver = (FakeDriver)Activator.CreateInstance (driverType);
|
|
Application.Init (driver);
|
|
|
|
Assert.False (Application.EnableConsoleScrolling);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
driver.SetWindowPosition (5, 5);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
Application.Shutdown ();
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData (typeof (FakeDriver))]
|
|
public void EnableConsoleScrolling_Is_True_Left_Cannot_Be_Greater_Than_WindowWidth (Type driverType)
|
|
{
|
|
var driver = (FakeDriver)Activator.CreateInstance (driverType);
|
|
Application.Init (driver);
|
|
|
|
Application.EnableConsoleScrolling = true;
|
|
Assert.True (Application.EnableConsoleScrolling);
|
|
|
|
driver.SetWindowPosition (81, 25);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
Application.Shutdown ();
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData (typeof (FakeDriver))]
|
|
public void EnableConsoleScrolling_Is_True_Left_Cannot_Be_Greater_Than_BufferWidth_Minus_WindowWidth (Type driverType)
|
|
{
|
|
var driver = (FakeDriver)Activator.CreateInstance (driverType);
|
|
Application.Init (driver);
|
|
|
|
Application.EnableConsoleScrolling = true;
|
|
Assert.True (Application.EnableConsoleScrolling);
|
|
|
|
driver.SetWindowPosition (81, 25);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
// MockDriver will now be sets to 120x25
|
|
driver.SetBufferSize (120, 25);
|
|
Assert.Equal (120, Application.Driver.Cols);
|
|
Assert.Equal (25, Application.Driver.Rows);
|
|
Assert.Equal (120, Console.BufferWidth);
|
|
Assert.Equal (25, Console.BufferHeight);
|
|
Assert.Equal (80, Console.WindowWidth);
|
|
Assert.Equal (25, Console.WindowHeight);
|
|
driver.SetWindowPosition (121, 25);
|
|
Assert.Equal (40, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
driver.SetWindowSize (90, 25);
|
|
Assert.Equal (120, Application.Driver.Cols);
|
|
Assert.Equal (25, Application.Driver.Rows);
|
|
Assert.Equal (120, Console.BufferWidth);
|
|
Assert.Equal (25, Console.BufferHeight);
|
|
Assert.Equal (90, Console.WindowWidth);
|
|
Assert.Equal (25, Console.WindowHeight);
|
|
driver.SetWindowPosition (121, 25);
|
|
Assert.Equal (30, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
Application.Shutdown ();
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData (typeof (FakeDriver))]
|
|
public void EnableConsoleScrolling_Is_True_Top_Cannot_Be_Greater_Than_WindowHeight (Type driverType)
|
|
{
|
|
var driver = (FakeDriver)Activator.CreateInstance (driverType);
|
|
Application.Init (driver);
|
|
|
|
Application.EnableConsoleScrolling = true;
|
|
Assert.True (Application.EnableConsoleScrolling);
|
|
|
|
driver.SetWindowPosition (80, 26);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
Application.Shutdown ();
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData (typeof (FakeDriver))]
|
|
public void EnableConsoleScrolling_Is_True_Top_Cannot_Be_Greater_Than_BufferHeight_Minus_WindowHeight (Type driverType)
|
|
{
|
|
var driver = (FakeDriver)Activator.CreateInstance (driverType);
|
|
Application.Init (driver);
|
|
|
|
Application.EnableConsoleScrolling = true;
|
|
Assert.True (Application.EnableConsoleScrolling);
|
|
|
|
driver.SetWindowPosition (80, 26);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
|
|
// MockDriver will now be sets to 80x40
|
|
driver.SetBufferSize (80, 40);
|
|
Assert.Equal (80, Application.Driver.Cols);
|
|
Assert.Equal (40, Application.Driver.Rows);
|
|
Assert.Equal (80, Console.BufferWidth);
|
|
Assert.Equal (40, Console.BufferHeight);
|
|
Assert.Equal (80, Console.WindowWidth);
|
|
Assert.Equal (25, Console.WindowHeight);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (0, Console.WindowTop);
|
|
driver.SetWindowPosition (80, 40);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (15, Console.WindowTop);
|
|
|
|
driver.SetWindowSize (80, 20);
|
|
Assert.Equal (80, Application.Driver.Cols);
|
|
Assert.Equal (40, Application.Driver.Rows);
|
|
Assert.Equal (80, Console.BufferWidth);
|
|
Assert.Equal (40, Console.BufferHeight);
|
|
Assert.Equal (80, Console.WindowWidth);
|
|
Assert.Equal (20, Console.WindowHeight);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (15, Console.WindowTop);
|
|
driver.SetWindowPosition (80, 41);
|
|
Assert.Equal (0, Console.WindowLeft);
|
|
Assert.Equal (20, Console.WindowTop);
|
|
|
|
Application.Shutdown ();
|
|
}
|
|
}
|
|
}
|