mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-27 00:07:58 +01:00
108 lines
3.7 KiB
C#
108 lines
3.7 KiB
C#
using Xunit.Abstractions;
|
|
|
|
namespace UnitTests.ViewTests;
|
|
|
|
public class SubViewTests
|
|
{
|
|
private readonly ITestOutputHelper _output;
|
|
public SubViewTests (ITestOutputHelper output) { _output = output; }
|
|
|
|
// TODO: This is a poor unit tests. Not clear what it's testing. Refactor.
|
|
[Fact]
|
|
[AutoInitShutdown]
|
|
public void Initialized_Event_Will_Be_Invoked_When_Added_Dynamically ()
|
|
{
|
|
var t = new Toplevel { Id = "0" };
|
|
|
|
var w = new Window { Id = "t", Width = Dim.Fill (), Height = Dim.Fill () };
|
|
var v1 = new View { Id = "v1", Width = Dim.Fill (), Height = Dim.Fill () };
|
|
var v2 = new View { Id = "v2", Width = Dim.Fill (), Height = Dim.Fill () };
|
|
|
|
int tc = 0, wc = 0, v1c = 0, v2c = 0, sv1c = 0;
|
|
|
|
t.Initialized += (s, e) =>
|
|
{
|
|
tc++;
|
|
Assert.Equal (1, tc);
|
|
Assert.Equal (1, wc);
|
|
Assert.Equal (1, v1c);
|
|
Assert.Equal (1, v2c);
|
|
Assert.Equal (0, sv1c); // Added after t in the Application.Iteration.
|
|
|
|
Assert.True (t.CanFocus);
|
|
Assert.True (w.CanFocus);
|
|
Assert.False (v1.CanFocus);
|
|
Assert.False (v2.CanFocus);
|
|
|
|
Application.LayoutAndDraw ();
|
|
};
|
|
|
|
w.Initialized += (s, e) =>
|
|
{
|
|
wc++;
|
|
Assert.Equal (t.Viewport.Width, w.Frame.Width);
|
|
Assert.Equal (t.Viewport.Height, w.Frame.Height);
|
|
};
|
|
|
|
v1.Initialized += (s, e) =>
|
|
{
|
|
v1c++;
|
|
|
|
//Assert.Equal (t.Viewport.Width, v1.Frame.Width);
|
|
//Assert.Equal (t.Viewport.Height, v1.Frame.Height);
|
|
};
|
|
|
|
v2.Initialized += (s, e) =>
|
|
{
|
|
v2c++;
|
|
|
|
//Assert.Equal (t.Viewport.Width, v2.Frame.Width);
|
|
//Assert.Equal (t.Viewport.Height, v2.Frame.Height);
|
|
};
|
|
w.Add (v1, v2);
|
|
t.Add (w);
|
|
|
|
Application.Iteration += OnApplicationOnIteration;
|
|
|
|
Application.Run (t);
|
|
Application.Iteration -= OnApplicationOnIteration;
|
|
|
|
t.Dispose ();
|
|
Application.Shutdown ();
|
|
|
|
Assert.Equal (1, tc);
|
|
Assert.Equal (1, wc);
|
|
Assert.Equal (1, v1c);
|
|
Assert.Equal (1, v2c);
|
|
Assert.Equal (1, sv1c);
|
|
|
|
Assert.True (t.CanFocus);
|
|
Assert.True (w.CanFocus);
|
|
Assert.False (v1.CanFocus);
|
|
Assert.False (v2.CanFocus);
|
|
|
|
return;
|
|
|
|
void OnApplicationOnIteration (object s, IterationEventArgs a)
|
|
{
|
|
var sv1 = new View { Id = "sv1", Width = Dim.Fill (), Height = Dim.Fill () };
|
|
|
|
sv1.Initialized += (s, e) =>
|
|
{
|
|
sv1c++;
|
|
Assert.NotEqual (t.Frame.Width, sv1.Frame.Width);
|
|
Assert.NotEqual (t.Frame.Height, sv1.Frame.Height);
|
|
Assert.False (sv1.CanFocus);
|
|
|
|
//Assert.Throws<InvalidOperationException> (() => sv1.CanFocus = true);
|
|
Assert.False (sv1.CanFocus);
|
|
};
|
|
|
|
v1.Add (sv1);
|
|
|
|
Application.LayoutAndDraw ();
|
|
t.Running = false;
|
|
}
|
|
}
|
|
}
|