123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413 |
- using NStack;
- using System;
- using System.Collections.Generic;
- using Terminal.Gui.Graphs;
- using Xunit;
- using Xunit.Abstractions;
- //using GraphViewTests = Terminal.Gui.Views.GraphViewTests;
- // Alias Console to MockConsole so we don't accidentally use Console
- using Console = Terminal.Gui.FakeConsole;
- namespace Terminal.Gui.CoreTests {
- public class LayoutTests {
- readonly ITestOutputHelper output;
- public LayoutTests (ITestOutputHelper output)
- {
- this.output = output;
- }
- [Fact]
- public void View_With_No_Difference_Between_An_Object_Initializer_And_A_Constructor ()
- {
- // Object Initializer
- var view = new View () {
- X = 1,
- Y = 2,
- Width = 3,
- Height = 4
- };
- Assert.Equal (1, view.X);
- Assert.Equal (2, view.Y);
- Assert.Equal (3, view.Width);
- Assert.Equal (4, view.Height);
- Assert.False (view.Frame.IsEmpty);
- Assert.Equal (new Rect (1, 2, 3, 4), view.Frame);
- Assert.False (view.Bounds.IsEmpty);
- Assert.Equal (new Rect (0, 0, 3, 4), view.Bounds);
- view.LayoutSubviews ();
- Assert.Equal (1, view.X);
- Assert.Equal (2, view.Y);
- Assert.Equal (3, view.Width);
- Assert.Equal (4, view.Height);
- Assert.False (view.Frame.IsEmpty);
- Assert.False (view.Bounds.IsEmpty);
- // Default Constructor
- view = new View ();
- Assert.Null (view.X);
- Assert.Null (view.Y);
- Assert.Null (view.Width);
- Assert.Null (view.Height);
- Assert.True (view.Frame.IsEmpty);
- Assert.True (view.Bounds.IsEmpty);
- // Constructor
- view = new View (1, 2, "");
- Assert.Null (view.X);
- Assert.Null (view.Y);
- Assert.Null (view.Width);
- Assert.Null (view.Height);
- Assert.False (view.Frame.IsEmpty);
- Assert.True (view.Bounds.IsEmpty);
- // Default Constructor and post assignment equivalent to Object Initializer
- view = new View ();
- view.X = 1;
- view.Y = 2;
- view.Width = 3;
- view.Height = 4;
- Assert.Equal (1, view.X);
- Assert.Equal (2, view.Y);
- Assert.Equal (3, view.Width);
- Assert.Equal (4, view.Height);
- Assert.False (view.Frame.IsEmpty);
- Assert.Equal (new Rect (1, 2, 3, 4), view.Frame);
- Assert.False (view.Bounds.IsEmpty);
- Assert.Equal (new Rect (0, 0, 3, 4), view.Bounds);
- }
- [Fact]
- public void FocusNearestView_Ensure_Focus_Ordered ()
- {
- var top = new Toplevel ();
- var win = new Window ();
- var winSubview = new View ("WindowSubview") {
- CanFocus = true
- };
- win.Add (winSubview);
- top.Add (win);
- var frm = new FrameView ();
- var frmSubview = new View ("FrameSubview") {
- CanFocus = true
- };
- frm.Add (frmSubview);
- top.Add (frm);
- top.ProcessKey (new KeyEvent (Key.Tab, new KeyModifiers ()));
- Assert.Equal ($"WindowSubview", top.MostFocused.Text);
- top.ProcessKey (new KeyEvent (Key.Tab, new KeyModifiers ()));
- Assert.Equal ("FrameSubview", top.MostFocused.Text);
- top.ProcessKey (new KeyEvent (Key.Tab, new KeyModifiers ()));
- Assert.Equal ($"WindowSubview", top.MostFocused.Text);
- top.ProcessKey (new KeyEvent (Key.BackTab | Key.ShiftMask, new KeyModifiers ()));
- Assert.Equal ("FrameSubview", top.MostFocused.Text);
- top.ProcessKey (new KeyEvent (Key.BackTab | Key.ShiftMask, new KeyModifiers ()));
- Assert.Equal ($"WindowSubview", top.MostFocused.Text);
- }
- [Fact]
- public void KeyPress_Handled_To_True_Prevents_Changes ()
- {
- Application.Init (new FakeDriver ());
- Console.MockKeyPresses.Push (new ConsoleKeyInfo ('N', ConsoleKey.N, false, false, false));
- var top = Application.Top;
- var text = new TextField ("");
- text.KeyPress += (e) => {
- e.Handled = true;
- Assert.True (e.Handled);
- Assert.Equal (Key.N, e.KeyEvent.Key);
- };
- top.Add (text);
- Application.Iteration += () => {
- Console.MockKeyPresses.Push (new ConsoleKeyInfo ('N', ConsoleKey.N, false, false, false));
- Assert.Equal ("", text.Text);
- Application.RequestStop ();
- };
- Application.Run ();
- // Shutdown must be called to safely clean up Application if Init has been called
- Application.Shutdown ();
- }
- [Fact, AutoInitShutdown]
- public void SetWidth_CanSetWidth_ForceValidatePosDim ()
- {
- var top = new View () {
- X = 0,
- Y = 0,
- Width = 80,
- };
- var v = new View () {
- Width = Dim.Fill (),
- ForceValidatePosDim = true
- };
- top.Add (v);
- Assert.False (v.SetWidth (70, out int rWidth));
- Assert.Equal (70, rWidth);
- v.Width = Dim.Fill (1);
- Assert.False (v.SetWidth (70, out rWidth));
- Assert.Equal (69, rWidth);
- v.Width = null;
- Assert.True (v.SetWidth (70, out rWidth));
- Assert.Equal (70, rWidth);
- Assert.False (v.IsInitialized);
- Application.Top.Add (top);
- Application.Begin (Application.Top);
- Assert.True (v.IsInitialized);
- v.Width = Dim.Fill (1);
- Assert.Throws<ArgumentException> (() => v.Width = 75);
- v.LayoutStyle = LayoutStyle.Absolute;
- v.Width = 75;
- Assert.True (v.SetWidth (60, out rWidth));
- Assert.Equal (60, rWidth);
- }
- [Fact, AutoInitShutdown]
- public void SetHeight_CanSetHeight_ForceValidatePosDim ()
- {
- var top = new View () {
- X = 0,
- Y = 0,
- Height = 20
- };
- var v = new View () {
- Height = Dim.Fill (),
- ForceValidatePosDim = true
- };
- top.Add (v);
- Assert.False (v.SetHeight (10, out int rHeight));
- Assert.Equal (10, rHeight);
- v.Height = Dim.Fill (1);
- Assert.False (v.SetHeight (10, out rHeight));
- Assert.Equal (9, rHeight);
- v.Height = null;
- Assert.True (v.SetHeight (10, out rHeight));
- Assert.Equal (10, rHeight);
- Assert.False (v.IsInitialized);
- Application.Top.Add (top);
- Application.Begin (Application.Top);
- Assert.True (v.IsInitialized);
- v.Height = Dim.Fill (1);
- Assert.Throws<ArgumentException> (() => v.Height = 15);
- v.LayoutStyle = LayoutStyle.Absolute;
- v.Height = 15;
- Assert.True (v.SetHeight (5, out rHeight));
- Assert.Equal (5, rHeight);
- }
- [Fact]
- public void GetCurrentWidth_CanSetWidth ()
- {
- var top = new View () {
- X = 0,
- Y = 0,
- Width = 80,
- };
- var v = new View () {
- Width = Dim.Fill ()
- };
- top.Add (v);
- Assert.False (v.AutoSize);
- Assert.True (v.GetCurrentWidth (out int cWidth));
- Assert.Equal (80, cWidth);
- v.Width = Dim.Fill (1);
- Assert.True (v.GetCurrentWidth (out cWidth));
- Assert.Equal (79, cWidth);
- v.AutoSize = true;
- Assert.True (v.GetCurrentWidth (out cWidth));
- Assert.Equal (79, cWidth);
- }
- [Fact]
- public void GetCurrentHeight_CanSetHeight ()
- {
- var top = new View () {
- X = 0,
- Y = 0,
- Height = 20
- };
- var v = new View () {
- Height = Dim.Fill ()
- };
- top.Add (v);
- Assert.False (v.AutoSize);
- Assert.True (v.GetCurrentHeight (out int cHeight));
- Assert.Equal (20, cHeight);
- v.Height = Dim.Fill (1);
- Assert.True (v.GetCurrentHeight (out cHeight));
- Assert.Equal (19, cHeight);
- v.AutoSize = true;
- Assert.True (v.GetCurrentHeight (out cHeight));
- Assert.Equal (19, cHeight);
- }
- [Fact]
- public void AutoSize_False_If_Text_Emmpty ()
- {
- var view1 = new View ();
- var view2 = new View ("");
- var view3 = new View () { Text = "" };
- Assert.False (view1.AutoSize);
- Assert.False (view2.AutoSize);
- Assert.False (view3.AutoSize);
- }
- [Fact]
- public void AutoSize_False_If_Text_Is_Not_Emmpty ()
- {
- var view1 = new View ();
- view1.Text = "Hello World";
- var view2 = new View ("Hello World");
- var view3 = new View () { Text = "Hello World" };
- Assert.False (view1.AutoSize);
- Assert.False (view2.AutoSize);
- Assert.False (view3.AutoSize);
- }
- [Fact]
- public void AutoSize_True_Label_If_Text_Emmpty ()
- {
- var label1 = new Label ();
- var label2 = new Label ("");
- var label3 = new Label () { Text = "" };
- Assert.True (label1.AutoSize);
- Assert.True (label2.AutoSize);
- Assert.True (label3.AutoSize);
- }
- [Fact]
- public void AutoSize_True_Label_If_Text_Is_Not_Emmpty ()
- {
- var label1 = new Label ();
- label1.Text = "Hello World";
- var label2 = new Label ("Hello World");
- var label3 = new Label () { Text = "Hello World" };
- Assert.True (label1.AutoSize);
- Assert.True (label2.AutoSize);
- Assert.True (label3.AutoSize);
- }
- [Fact]
- public void AutoSize_False_ResizeView_Is_Always_False ()
- {
- var label = new Label () { AutoSize = false };
- label.Text = "New text";
- Assert.False (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=0,Height=1}", label.Bounds.ToString ());
- }
- [Fact]
- public void AutoSize_True_ResizeView_With_Dim_Absolute ()
- {
- var label = new Label ();
- label.Text = "New text";
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=8,Height=1}", label.Bounds.ToString ());
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_False_ResizeView_With_Dim_Fill_After_IsInitialized ()
- {
- var win = new Window (new Rect (0, 0, 30, 80), "");
- var label = new Label () { AutoSize = false, Width = Dim.Fill (), Height = Dim.Fill () };
- win.Add (label);
- Application.Top.Add (win);
- // Text is empty so height=0
- Assert.False (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=0,Height=0}", label.Bounds.ToString ());
- label.Text = "New text\nNew line";
- Application.Top.LayoutSubviews ();
- Assert.False (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=78}", label.Bounds.ToString ());
- Assert.False (label.IsInitialized);
- Application.Begin (Application.Top);
- Assert.True (label.IsInitialized);
- Assert.False (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=78}", label.Bounds.ToString ());
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_False_SetWidthHeight_With_Dim_Fill_And_Dim_Absolute_After_IsAdded_And_IsInitialized ()
- {
- var win = new Window (new Rect (0, 0, 30, 80), "");
- var label = new Label () { Width = Dim.Fill () };
- win.Add (label);
- Application.Top.Add (win);
- Assert.True (label.IsAdded);
- // Text is empty so height=0
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=0,Height=0}", label.Bounds.ToString ());
- label.Text = "First line\nSecond line";
- Application.Top.LayoutSubviews ();
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=2}", label.Bounds.ToString ());
- Assert.False (label.IsInitialized);
- Application.Begin (Application.Top);
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=2}", label.Bounds.ToString ());
- Assert.True (label.IsInitialized);
- label.AutoSize = false;
- Application.Refresh ();
- Assert.False (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=1}", label.Bounds.ToString ());
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_False_SetWidthHeight_With_Dim_Fill_And_Dim_Absolute_With_Initialization ()
- {
- var win = new Window (new Rect (0, 0, 30, 80), "");
- var label = new Label () { Width = Dim.Fill () };
- win.Add (label);
- Application.Top.Add (win);
- // Text is empty so height=0
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=0,Height=0}", label.Bounds.ToString ());
- Application.Begin (Application.Top);
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=0}", label.Bounds.ToString ());
- label.Text = "First line\nSecond line";
- Application.Refresh ();
- // Here the AutoSize ensuring the right size
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=2}", label.Bounds.ToString ());
- label.AutoSize = false;
- Application.Refresh ();
- // Here the SetMinWidthHeight ensuring the minimum height
- Assert.False (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=1}", label.Bounds.ToString ());
- label.Text = "First changed line\nSecond changed line\nNew line";
- Application.Refresh ();
- Assert.False (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=1}", label.Bounds.ToString ());
- label.AutoSize = true;
- Application.Refresh ();
- Assert.True (label.AutoSize);
- Assert.Equal ("{X=0,Y=0,Width=28,Height=3}", label.Bounds.ToString ());
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_True_Setting_With_Height_Horizontal ()
- {
- var label = new Label ("Hello") { Width = 10, Height = 2 };
- var viewX = new View ("X") { X = Pos.Right (label) };
- var viewY = new View ("Y") { Y = Pos.Bottom (label) };
- Application.Top.Add (label, viewX, viewY);
- Application.Begin (Application.Top);
- Assert.True (label.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 2), label.Frame);
- var expected = @"
- Hello X
-
- Y
- ";
- var pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 11, 3), pos);
- label.AutoSize = false;
- Application.Refresh ();
- Assert.False (label.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 2), label.Frame);
- expected = @"
- Hello X
-
- Y
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 11, 3), pos);
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_True_Setting_With_Height_Vertical ()
- {
- var label = new Label ("Hello") { Width = 2, Height = 10, TextDirection = TextDirection.TopBottom_LeftRight };
- var viewX = new View ("X") { X = Pos.Right (label) };
- var viewY = new View ("Y") { Y = Pos.Bottom (label) };
- Application.Top.Add (label, viewX, viewY);
- Application.Begin (Application.Top);
- Assert.True (label.AutoSize);
- Assert.Equal (new Rect (0, 0, 2, 10), label.Frame);
- var expected = @"
- H X
- e
- l
- l
- o
-
-
-
-
-
- Y
- ";
- var pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 3, 11), pos);
- label.AutoSize = false;
- Application.Refresh ();
- Assert.False (label.AutoSize);
- Assert.Equal (new Rect (0, 0, 2, 10), label.Frame);
- expected = @"
- H X
- e
- l
- l
- o
-
-
-
-
-
- Y
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 3, 11), pos);
- }
- [Fact]
- [AutoInitShutdown]
- public void Excess_Text_Is_Erased_When_The_Width_Is_Reduced ()
- {
- var lbl = new Label ("123");
- Application.Top.Add (lbl);
- Application.Begin (Application.Top);
- Assert.True (lbl.AutoSize);
- Assert.Equal ("123 ", GetContents ());
- lbl.Text = "12";
- lbl.SuperView.Redraw (lbl.SuperView.NeedDisplay);
- Assert.Equal ("12 ", GetContents ());
- string GetContents ()
- {
- var text = "";
- for (int i = 0; i < 4; i++) {
- text += (char)Application.Driver.Contents [0, i, 0];
- }
- return text;
- }
- }
- [Fact, AutoInitShutdown]
- public void Width_Height_SetMinWidthHeight_Narrow_Wide_Runes ()
- {
- var text = $"First line{Environment.NewLine}Second line";
- var horizontalView = new View () {
- Width = 20,
- Text = text
- };
- var verticalView = new View () {
- Y = 3,
- Height = 20,
- Text = text,
- TextDirection = TextDirection.TopBottom_LeftRight
- };
- var win = new Window () {
- Width = Dim.Fill (),
- Height = Dim.Fill (),
- Text = "Window"
- };
- win.Add (horizontalView, verticalView);
- Application.Top.Add (win);
- Application.Begin (Application.Top);
- ((FakeDriver)Application.Driver).SetBufferSize (32, 32);
- Assert.False (horizontalView.AutoSize);
- Assert.False (verticalView.AutoSize);
- Assert.Equal (new Rect (0, 0, 20, 1), horizontalView.Frame);
- Assert.Equal (new Rect (0, 3, 1, 20), verticalView.Frame);
- var expected = @"
- ┌──────────────────────────────┐
- │First line Second li │
- │ │
- │ │
- │F │
- │i │
- │r │
- │s │
- │t │
- │ │
- │l │
- │i │
- │n │
- │e │
- │ │
- │S │
- │e │
- │c │
- │o │
- │n │
- │d │
- │ │
- │l │
- │i │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └──────────────────────────────┘
- ";
- var pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 32, 32), pos);
- verticalView.Text = $"最初の行{Environment.NewLine}二行目";
- Application.Top.Redraw (Application.Top.Bounds);
- Assert.Equal (new Rect (0, 3, 2, 20), verticalView.Frame);
- expected = @"
- ┌──────────────────────────────┐
- │First line Second li │
- │ │
- │ │
- │最 │
- │初 │
- │の │
- │行 │
- │ │
- │二 │
- │行 │
- │目 │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └──────────────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 32, 32), pos);
- }
- [Fact, AutoInitShutdown]
- public void TextDirection_Toggle ()
- {
- var view = new View ();
- var win = new Window () { Width = Dim.Fill (), Height = Dim.Fill () };
- win.Add (view);
- Application.Top.Add (win);
- Application.Begin (Application.Top);
- ((FakeDriver)Application.Driver).SetBufferSize (22, 22);
- Assert.False (view.AutoSize);
- Assert.Equal (TextDirection.LeftRight_TopBottom, view.TextDirection);
- Assert.Equal (Rect.Empty, view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(0)", view.Width.ToString ());
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
- var expected = @"
- ┌────────────────────┐
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- var pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- view.Text = "Hello World";
- view.Width = 11;
- Application.Refresh ();
- Assert.Equal (new Rect (0, 0, 11, 1), view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │Hello World │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- view.AutoSize = true;
- view.Text = "Hello Worlds";
- Application.Refresh ();
- Assert.Equal (new Rect (0, 0, 12, 1), view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │Hello Worlds │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- view.TextDirection = TextDirection.TopBottom_LeftRight;
- Application.Refresh ();
- Assert.Equal (new Rect (0, 0, 11, 12), view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │H │
- │e │
- │l │
- │l │
- │o │
- │ │
- │W │
- │o │
- │r │
- │l │
- │d │
- │s │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- view.AutoSize = false;
- view.Height = 1;
- Application.Refresh ();
- Assert.Equal (new Rect (0, 0, 11, 1), view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
- Assert.Equal ("Absolute(1)", view.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │HelloWorlds │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- view.PreserveTrailingSpaces = true;
- Application.Refresh ();
- Assert.Equal (new Rect (0, 0, 11, 1), view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
- Assert.Equal ("Absolute(1)", view.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │Hello World │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- view.PreserveTrailingSpaces = false;
- var f = view.Frame;
- view.Width = f.Height;
- view.Height = f.Width;
- view.TextDirection = TextDirection.TopBottom_LeftRight;
- Application.Refresh ();
- Assert.Equal (new Rect (0, 0, 1, 11), view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(1)", view.Width.ToString ());
- Assert.Equal ("Absolute(11)", view.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │H │
- │e │
- │l │
- │l │
- │o │
- │ │
- │W │
- │o │
- │r │
- │l │
- │d │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- view.AutoSize = true;
- Application.Refresh ();
- Assert.Equal (new Rect (0, 0, 1, 12), view.Frame);
- Assert.Equal ("Absolute(0)", view.X.ToString ());
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
- Assert.Equal ("Absolute(1)", view.Width.ToString ());
- Assert.Equal ("Absolute(11)", view.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │H │
- │e │
- │l │
- │l │
- │o │
- │ │
- │W │
- │o │
- │r │
- │l │
- │d │
- │s │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- }
- [Fact, AutoInitShutdown]
- public void Width_Height_AutoSize_True_Stay_True_If_TextFormatter_Size_Fit ()
- {
- var text = $"Fi_nish 終";
- var horizontalView = new View () {
- AutoSize = true,
- HotKeySpecifier = '_',
- Text = text
- };
- var verticalView = new View () {
- Y = 3,
- AutoSize = true,
- HotKeySpecifier = '_',
- Text = text,
- TextDirection = TextDirection.TopBottom_LeftRight
- };
- var win = new Window () {
- Width = Dim.Fill (),
- Height = Dim.Fill (),
- Text = "Window"
- };
- win.Add (horizontalView, verticalView);
- Application.Top.Add (win);
- Application.Begin (Application.Top);
- ((FakeDriver)Application.Driver).SetBufferSize (22, 22);
- Assert.True (horizontalView.AutoSize);
- Assert.True (verticalView.AutoSize);
- Assert.Equal (new Size (10, 1), horizontalView.TextFormatter.Size);
- Assert.Equal (new Size (2, 9), verticalView.TextFormatter.Size);
- Assert.Equal (new Rect (0, 0, 9, 1), horizontalView.Frame);
- Assert.Equal ("Absolute(0)", horizontalView.X.ToString ());
- Assert.Equal ("Absolute(0)", horizontalView.Y.ToString ());
- Assert.Equal ("Absolute(9)", horizontalView.Width.ToString ());
- Assert.Equal ("Absolute(1)", horizontalView.Height.ToString ());
- Assert.Equal (new Rect (0, 3, 2, 8), verticalView.Frame);
- Assert.Equal ("Absolute(0)", verticalView.X.ToString ());
- Assert.Equal ("Absolute(3)", verticalView.Y.ToString ());
- Assert.Equal ("Absolute(2)", verticalView.Width.ToString ());
- Assert.Equal ("Absolute(8)", verticalView.Height.ToString ());
- var expected = @"
- ┌────────────────────┐
- │Finish 終 │
- │ │
- │ │
- │F │
- │i │
- │n │
- │i │
- │s │
- │h │
- │ │
- │終 │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- var pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- verticalView.Text = $"最初_の行二行目";
- Application.Top.Redraw (Application.Top.Bounds);
- Assert.True (horizontalView.AutoSize);
- Assert.True (verticalView.AutoSize);
- // height was initialized with 8 and is kept as minimum
- Assert.Equal (new Rect (0, 3, 2, 8), verticalView.Frame);
- Assert.Equal ("Absolute(0)", verticalView.X.ToString ());
- Assert.Equal ("Absolute(3)", verticalView.Y.ToString ());
- Assert.Equal ("Absolute(2)", verticalView.Width.ToString ());
- Assert.Equal ("Absolute(8)", verticalView.Height.ToString ());
- expected = @"
- ┌────────────────────┐
- │Finish 終 │
- │ │
- │ │
- │最 │
- │初 │
- │の │
- │行 │
- │二 │
- │行 │
- │目 │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └────────────────────┘
- ";
- pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rect (0, 0, 22, 22), pos);
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_Stays_True_Center_HotKeySpecifier ()
- {
- var btn = new Button () {
- X = Pos.Center (),
- Y = Pos.Center (),
- Text = "Say He_llo 你"
- };
- var win = new Window () {
- Width = Dim.Fill (),
- Height = Dim.Fill (),
- Title = "Test Demo 你"
- };
- win.Add (btn);
- Application.Top.Add (win);
- Assert.True (btn.AutoSize);
- Application.Begin (Application.Top);
- ((FakeDriver)Application.Driver).SetBufferSize (30, 5);
- var expected = @"
- ┌ Test Demo 你 ──────────────┐
- │ │
- │ [ Say Hello 你 ] │
- │ │
- └────────────────────────────┘
- ";
- TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.True (btn.AutoSize);
- btn.Text = "Say He_llo 你 changed";
- Assert.True (btn.AutoSize);
- Application.Refresh ();
- expected = @"
- ┌ Test Demo 你 ──────────────┐
- │ │
- │ [ Say Hello 你 changed ] │
- │ │
- └────────────────────────────┘
- ";
- TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_False_Equal_Before_And_After_IsInitialized_With_Differents_Orders ()
- {
- var view1 = new View () { Text = "Say Hello view1 你", AutoSize = false, Width = 10, Height = 5 };
- var view2 = new View () { Text = "Say Hello view2 你", Width = 10, Height = 5, AutoSize = false };
- var view3 = new View () { AutoSize = false, Width = 10, Height = 5, Text = "Say Hello view3 你" };
- var view4 = new View () {
- Text = "Say Hello view4 你",
- AutoSize = false,
- Width = 10,
- Height = 5,
- TextDirection = TextDirection.TopBottom_LeftRight
- };
- var view5 = new View () {
- Text = "Say Hello view5 你",
- Width = 10,
- Height = 5,
- AutoSize = false,
- TextDirection = TextDirection.TopBottom_LeftRight
- };
- var view6 = new View () {
- AutoSize = false,
- Width = 10,
- Height = 5,
- TextDirection = TextDirection.TopBottom_LeftRight,
- Text = "Say Hello view6 你",
- };
- Application.Top.Add (view1, view2, view3, view4, view5, view6);
- Assert.False (view1.IsInitialized);
- Assert.False (view2.IsInitialized);
- Assert.False (view3.IsInitialized);
- Assert.False (view4.IsInitialized);
- Assert.False (view5.IsInitialized);
- Assert.False (view1.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view1.Frame);
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
- Assert.False (view2.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view2.Frame);
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
- Assert.False (view3.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view3.Frame);
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
- Assert.False (view4.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view4.Frame);
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
- Assert.False (view5.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view5.Frame);
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
- Assert.False (view6.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view6.Frame);
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
- Application.Begin (Application.Top);
- Assert.True (view1.IsInitialized);
- Assert.True (view2.IsInitialized);
- Assert.True (view3.IsInitialized);
- Assert.True (view4.IsInitialized);
- Assert.True (view5.IsInitialized);
- Assert.False (view1.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view1.Frame);
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
- Assert.False (view2.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view2.Frame);
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
- Assert.False (view3.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view3.Frame);
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
- Assert.False (view4.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view4.Frame);
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
- Assert.False (view5.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view5.Frame);
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
- Assert.False (view6.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 5), view6.Frame);
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
- }
- [Fact, AutoInitShutdown]
- public void AutoSize_True_Equal_Before_And_After_IsInitialized_With_Differents_Orders ()
- {
- var view1 = new View () { Text = "Say Hello view1 你", AutoSize = true, Width = 10, Height = 5 };
- var view2 = new View () { Text = "Say Hello view2 你", Width = 10, Height = 5, AutoSize = true };
- var view3 = new View () { AutoSize = true, Width = 10, Height = 5, Text = "Say Hello view3 你" };
- var view4 = new View () {
- Text = "Say Hello view4 你",
- AutoSize = true,
- Width = 10,
- Height = 5,
- TextDirection = TextDirection.TopBottom_LeftRight
- };
- var view5 = new View () {
- Text = "Say Hello view5 你",
- Width = 10,
- Height = 5,
- AutoSize = true,
- TextDirection = TextDirection.TopBottom_LeftRight
- };
- var view6 = new View () {
- AutoSize = true,
- Width = 10,
- Height = 5,
- TextDirection = TextDirection.TopBottom_LeftRight,
- Text = "Say Hello view6 你",
- };
- Application.Top.Add (view1, view2, view3, view4, view5, view6);
- Assert.False (view1.IsInitialized);
- Assert.False (view2.IsInitialized);
- Assert.False (view3.IsInitialized);
- Assert.False (view4.IsInitialized);
- Assert.False (view5.IsInitialized);
- Assert.True (view1.AutoSize);
- Assert.Equal (new Rect (0, 0, 18, 5), view1.Frame);
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
- Assert.True (view2.AutoSize);
- Assert.Equal (new Rect (0, 0, 18, 5), view2.Frame);
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
- Assert.True (view3.AutoSize);
- Assert.Equal (new Rect (0, 0, 18, 5), view3.Frame);
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
- Assert.True (view4.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 17), view4.Frame);
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
- Assert.True (view5.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 17), view5.Frame);
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
- Assert.True (view6.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 17), view6.Frame);
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
- Application.Begin (Application.Top);
- Assert.True (view1.IsInitialized);
- Assert.True (view2.IsInitialized);
- Assert.True (view3.IsInitialized);
- Assert.True (view4.IsInitialized);
- Assert.True (view5.IsInitialized);
- Assert.True (view1.AutoSize);
- Assert.Equal (new Rect (0, 0, 18, 5), view1.Frame);
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
- Assert.True (view2.AutoSize);
- Assert.Equal (new Rect (0, 0, 18, 5), view2.Frame);
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
- Assert.True (view3.AutoSize);
- Assert.Equal (new Rect (0, 0, 18, 5), view3.Frame);
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
- Assert.True (view4.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 17), view4.Frame);
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
- Assert.True (view5.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 17), view5.Frame);
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
- Assert.True (view6.AutoSize);
- Assert.Equal (new Rect (0, 0, 10, 17), view6.Frame);
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
- }
- [Fact, AutoInitShutdown]
- public void Setting_Frame_Dont_Respect_AutoSize_True_On_Layout_Absolute ()
- {
- var view1 = new View (new Rect (0, 0, 10, 0)) { Text = "Say Hello view1 你", AutoSize = true };
- var view2 = new View (new Rect (0, 0, 0, 10)) {
- Text = "Say Hello view2 你",
- AutoSize = true,
- TextDirection = TextDirection.TopBottom_LeftRight
- };
- Application.Top.Add (view1, view2);
- var rs = Application.Begin (Application.Top);
- Assert.True (view1.AutoSize);
- Assert.Equal (LayoutStyle.Absolute, view1.LayoutStyle);
- Assert.Equal (new Rect (0, 0, 18, 1), view1.Frame);
- Assert.Equal ("Absolute(0)", view1.X.ToString ());
- Assert.Equal ("Absolute(0)", view1.Y.ToString ());
- Assert.Equal ("Absolute(18)", view1.Width.ToString ());
- Assert.Equal ("Absolute(1)", view1.Height.ToString ());
- Assert.True (view2.AutoSize);
- Assert.Equal (LayoutStyle.Absolute, view2.LayoutStyle);
- Assert.Equal (new Rect (0, 0, 2, 17), view2.Frame);
- Assert.Equal ("Absolute(0)", view2.X.ToString ());
- Assert.Equal ("Absolute(0)", view2.Y.ToString ());
- Assert.Equal ("Absolute(2)", view2.Width.ToString ());
- Assert.Equal ("Absolute(17)", view2.Height.ToString ());
- view1.Frame = new Rect (0, 0, 25, 4);
- bool firstIteration = false;
- Application.RunMainLoopIteration (ref rs, true, ref firstIteration);
- Assert.True (view1.AutoSize);
- Assert.Equal (LayoutStyle.Absolute, view1.LayoutStyle);
- Assert.Equal (new Rect (0, 0, 25, 4), view1.Frame);
- Assert.Equal ("Absolute(0)", view1.X.ToString ());
- Assert.Equal ("Absolute(0)", view1.Y.ToString ());
- Assert.Equal ("Absolute(18)", view1.Width.ToString ());
- Assert.Equal ("Absolute(1)", view1.Height.ToString ());
- view2.Frame = new Rect (0, 0, 1, 25);
- Application.RunMainLoopIteration (ref rs, true, ref firstIteration);
- Assert.True (view2.AutoSize);
- Assert.Equal (LayoutStyle.Absolute, view2.LayoutStyle);
- Assert.Equal (new Rect (0, 0, 1, 25), view2.Frame);
- Assert.Equal ("Absolute(0)", view2.X.ToString ());
- Assert.Equal ("Absolute(0)", view2.Y.ToString ());
- Assert.Equal ("Absolute(2)", view2.Width.ToString ());
- Assert.Equal ("Absolute(17)", view2.Height.ToString ());
- }
- [Fact, AutoInitShutdown]
- public void Pos_Dim_Are_Null_If_Not_Initialized_On_Constructor_IsAdded_False ()
- {
- var top = Application.Top;
- var view1 = new View ();
- Assert.False (view1.IsAdded);
- Assert.Null (view1.X);
- Assert.Null (view1.Y);
- Assert.Null (view1.Width);
- Assert.Null (view1.Height);
- top.Add (view1);
- Assert.True (view1.IsAdded);
- Assert.Equal ("Absolute(0)", view1.X.ToString ());
- Assert.Equal ("Absolute(0)", view1.Y.ToString ());
- Assert.Equal ("Absolute(0)", view1.Width.ToString ());
- Assert.Equal ("Absolute(0)", view1.Height.ToString ());
- var view2 = new View () {
- X = Pos.Center (),
- Y = Pos.Center (),
- Width = Dim.Fill (),
- Height = Dim.Fill ()
- };
- Assert.False (view2.IsAdded);
- Assert.Equal ("Center", view2.X.ToString ());
- Assert.Equal ("Center", view2.Y.ToString ());
- Assert.Equal ("Fill(0)", view2.Width.ToString ());
- Assert.Equal ("Fill(0)", view2.Height.ToString ());
- top.Add (view2);
- Assert.True (view2.IsAdded);
- Assert.Equal ("Center", view2.X.ToString ());
- Assert.Equal ("Center", view2.Y.ToString ());
- Assert.Equal ("Fill(0)", view2.Width.ToString ());
- Assert.Equal ("Fill(0)", view2.Height.ToString ());
- }
- }
- }
|