Exemple #1
0
        public void StatusBar_Contructor_Default()
        {
            var sb = new StatusBar();

            Assert.Empty(sb.Items);
            Assert.False(sb.CanFocus);
            Assert.Equal(Colors.Menu, sb.ColorScheme);
            Assert.Equal(0, sb.X);
            Assert.Equal(Dim.Fill(), sb.Width);
            Assert.Equal(1, sb.Height);

            Assert.Equal(0, sb.Y);

            var driver = new FakeDriver();

            Application.Init(driver, new FakeMainLoop(() => FakeConsole.ReadKey(true)));

            sb = new StatusBar();

            driver.SetCursorVisibility(CursorVisibility.Default);
            driver.GetCursorVisibility(out CursorVisibility cv);
            Assert.Equal(CursorVisibility.Default, cv);
            Assert.True(FakeConsole.CursorVisible);

            Application.Iteration += () => {
                Assert.Equal(24, sb.Y);

                driver.SetWindowSize(driver.Cols, 15);

                Assert.Equal(14, sb.Y);

                sb.OnEnter(null);
                driver.GetCursorVisibility(out cv);
                Assert.Equal(CursorVisibility.Invisible, cv);
                Assert.False(FakeConsole.CursorVisible);

                Application.RequestStop();
            };

            Application.Top.Add(sb);

            Application.Run();

            Application.Shutdown();
        }
Exemple #2
0
        public void HeightAsBuffer_Is_True_Top_Cannot_Be_Greater_Than_BufferHeight_Minus_WindowHeight()
        {
            var driver = new FakeDriver();

            Application.Init(driver, new FakeMainLoop(() => FakeConsole.ReadKey(true)));

            Application.HeightAsBuffer = true;
            Assert.True(Application.HeightAsBuffer);

            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();
        }
        public void TerminalResized_Simulation()
        {
            var driver = new FakeDriver();

            Application.Init(driver, new FakeMainLoop(() => FakeConsole.ReadKey(true)));
            var wasTerminalResized = false;

            Application.Resized = (e) => {
                wasTerminalResized = true;
                Assert.Equal(120, e.Cols);
                Assert.Equal(40, e.Rows);
            };

            Assert.Equal(80, Console.BufferWidth);
            Assert.Equal(25, Console.BufferHeight);

            // MockDriver is by default 80x25
            Assert.Equal(Console.BufferWidth, driver.Cols);
            Assert.Equal(Console.BufferHeight, driver.Rows);
            Assert.False(wasTerminalResized);

            // MockDriver will now be sets to 120x40
            driver.SetBufferSize(120, 40);
            Assert.Equal(120, Application.Driver.Cols);
            Assert.Equal(40, Application.Driver.Rows);
            Assert.True(wasTerminalResized);

            // MockDriver will still be 120x40
            wasTerminalResized         = false;
            Application.HeightAsBuffer = true;
            driver.SetWindowSize(40, 20);
            Assert.Equal(120, Application.Driver.Cols);
            Assert.Equal(40, Application.Driver.Rows);
            Assert.Equal(120, Console.BufferWidth);
            Assert.Equal(40, Console.BufferHeight);
            Assert.Equal(40, Console.WindowWidth);
            Assert.Equal(20, Console.WindowHeight);
            Assert.True(wasTerminalResized);

            Application.Shutdown();
        }
        public void HeightAsBuffer_Is_True_Left_Cannot_Be_Greater_Than_BufferWidth_Minus_WindowWidth()
        {
            var driver = new FakeDriver();

            Application.Init(driver, new FakeMainLoop(() => FakeConsole.ReadKey(true)));

            Application.HeightAsBuffer = true;
            Assert.True(Application.HeightAsBuffer);

            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(120, Console.WindowWidth);
            Assert.Equal(25, Console.WindowHeight);
            driver.SetWindowPosition(121, 25);
            Assert.Equal(0, 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();
        }