@@ -57,6 +57,33 @@ public void Empty_size_to_content_grid_do_not_take_up_space()
5757 measuredSize . Height . Should ( ) . Be ( 0 ) ;
5858 }
5959
60+ [ Theory ]
61+ [ InlineData ( OutputMode . Ansi ) ]
62+ [ InlineData ( OutputMode . NonAnsi ) ]
63+ public void Column_width_definition_is_preserved_even_defintion_is_mixed_for_subsequent_columns ( OutputMode outputMode )
64+ {
65+ var grid = new GridView ( ) ;
66+ grid . SetColumns ( ColumnDefinition . Fixed ( 10 ) , ColumnDefinition . Star ( 1 ) , ColumnDefinition . Fixed ( 10 ) , ColumnDefinition . SizeToContent ( ) ) ;
67+ grid . SetChild ( new ContentView ( "The quick" ) , 0 , 0 ) ;
68+ grid . SetChild ( new ContentView ( "brown fox" ) , 1 , 0 ) ;
69+ grid . SetChild ( new ContentView ( "jumped" ) , 2 , 0 ) ;
70+ grid . SetChild ( new ContentView ( "over the sleepy" ) , 3 , 0 ) ;
71+
72+ var terminal = new TestTerminal ( ) ;
73+ var renderer = new ConsoleRenderer ( terminal , outputMode ) ;
74+ grid . Render ( renderer , new Region ( 0 , 0 , 115 , 1 ) ) ;
75+
76+ terminal . Events . Should ( ) . BeEquivalentSequenceTo (
77+ new TestTerminal . CursorPositionChanged ( new Point ( 0 , 0 ) ) ,
78+ new TestTerminal . ContentWritten ( "The quick " ) ,
79+ new TestTerminal . CursorPositionChanged ( new Point ( 10 , 0 ) ) ,
80+ new TestTerminal . ContentWritten ( "brown fox" + new string ( ' ' , 71 ) ) ,
81+ new TestTerminal . CursorPositionChanged ( new Point ( 90 , 0 ) ) ,
82+ new TestTerminal . ContentWritten ( "jumped " ) ,
83+ new TestTerminal . CursorPositionChanged ( new Point ( 100 , 0 ) ) ,
84+ new TestTerminal . ContentWritten ( "over the sleepy" ) ) ;
85+ }
86+
6087 [ Theory ]
6188 [ InlineData ( OutputMode . Ansi ) ]
6289 [ InlineData ( OutputMode . NonAnsi ) ]
0 commit comments