예제 #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();
        }