summaryrefslogtreecommitdiff
path: root/t/12resize-top.t
diff options
context:
space:
mode:
Diffstat (limited to 't/12resize-top.t')
-rw-r--r--t/12resize-top.t100
1 files changed, 100 insertions, 0 deletions
diff --git a/t/12resize-top.t b/t/12resize-top.t
new file mode 100644
index 0000000..2f32438
--- /dev/null
+++ b/t/12resize-top.t
@@ -0,0 +1,100 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use Tickit::Test;
+
+use Tickit::Widget::Scroller;
+use Tickit::Widget::Scroller::Item::Text;
+
+my ( $term, $rootwin ) = mk_term_and_window;
+my $win = $rootwin->make_sub( 0, 0, 5, 40 );
+
+my $scroller = Tickit::Widget::Scroller->new(
+ gravity => "top",
+);
+
+$scroller->push( Tickit::Widget::Scroller::Item::Text->new( "A line of content at line $_" ) ) for 1 .. 10;
+
+$scroller->set_window( $win );
+
+flush_tickit;
+
+is_display( [ "A line of content at line 1",
+ "A line of content at line 2",
+ "A line of content at line 3",
+ "A line of content at line 4",
+ "A line of content at line 5", ],
+ 'Display initially' );
+
+$term->clear;
+$win->resize( 7, 40 );
+
+flush_tickit;
+
+is_display( [ "A line of content at line 1",
+ "A line of content at line 2",
+ "A line of content at line 3",
+ "A line of content at line 4",
+ "A line of content at line 5",
+ "A line of content at line 6",
+ "A line of content at line 7", ],
+ 'Display after resize more lines' );
+
+$term->clear;
+$win->resize( 5, 40 );
+
+flush_tickit;
+
+is_display( [ "A line of content at line 1",
+ "A line of content at line 2",
+ "A line of content at line 3",
+ "A line of content at line 4",
+ "A line of content at line 5", ],
+ 'Display after resize fewer lines' );
+
+$term->clear;
+$win->resize( 5, 20 );
+
+flush_tickit;
+
+is_display( [ "A line of content at",
+ "line 1",
+ "A line of content at",
+ "line 2",
+ "A line of content at", ],
+ 'Display after resize fewer columns' );
+
+$term->clear;
+$win->resize( 15, 40 );
+
+flush_tickit;
+
+is_display( [ "A line of content at line 1",
+ "A line of content at line 2",
+ "A line of content at line 3",
+ "A line of content at line 4",
+ "A line of content at line 5",
+ "A line of content at line 6",
+ "A line of content at line 7",
+ "A line of content at line 8",
+ "A line of content at line 9",
+ "A line of content at line 10" ],
+ 'Display after resize too big' );
+
+$term->clear;
+$win->resize( 5, 40 );
+
+flush_tickit;
+
+is_display( [ "A line of content at line 1",
+ "A line of content at line 2",
+ "A line of content at line 3",
+ "A line of content at line 4",
+ "A line of content at line 5" ],
+ 'Display after shrink from resize too big' );
+
+done_testing;