The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More;

use Tickit::Test;

use Tickit::Widget::Static;
use Tickit::Widget::Tabbed;

my $win = mk_window;

my $widget = Tickit::Widget::Tabbed->new( tab_position => "left" );

my $tab = $widget->add_tab( Tickit::Widget::Static->new( text => "Widget" ), label => "tab" );

$widget->set_window( $win );

flush_tickit;

is_display( [ [TEXT("tab",fg=>14,bg=>4), TEXT(" >",fg=>7,bg=>4), TEXT("Widget")] ],
            'Display initially' );

$tab->set_label( "newlabel" );

flush_tickit;

is_display( [ [TEXT("newlabel",fg=>14,bg=>4), TEXT(" >",fg=>7,bg=>4), TEXT("Widget")] ],
            'Display after ->set_label' );

# Narrow rendering

$widget->set_window( undef );

my $subwin = $win->make_sub( 0, 0, 5, 80 );

$widget->add_tab( Tickit::Widget::Static->new( text => "Widget $_" ), label => "tab$_" ) for 1..10;

# Should be too narrow now

$widget->set_window( $subwin );

flush_tickit;

is_display( [ [TEXT("newlabel",fg=>14,bg=>4), TEXT(" >",fg=>7,bg=>4), TEXT("Widget")],
              [TEXT("tab1      ",fg=>7,bg=>4)],
              [TEXT("tab2      ",fg=>7,bg=>4)],
              [TEXT("tab3      ",fg=>7,bg=>4)],
              [TEXT("tab4      ",fg=>7,bg=>4)] ],
            'Display with narrow truncation' );

$widget->activate_tab( 7 );

flush_tickit;

is_display( [ [TEXT("tab4      ",fg=>7,bg=>4), TEXT("Widget 7")],
              [TEXT("tab5      ",fg=>7,bg=>4)],
              [TEXT("tab6      ",fg=>7,bg=>4)],
              [TEXT("tab7",fg=>14,bg=>4), TEXT(" >>>>>",fg=>7,bg=>4)],
              [TEXT("tab8      ",fg=>7,bg=>4)] ],
            'Display scrolls ribbon to active tab' );

done_testing;