File: 01basic.t

package info (click to toggle)
libtickit-console-perl 0.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 164 kB
  • sloc: perl: 771; makefile: 2
file content (112 lines) | stat: -rw-r--r-- 3,239 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/perl

use v5.26;
use warnings;

use Test2::V0 0.000148;

use Tickit::Test;

use String::Tagged;

use Tickit::Console;

my $win = mk_window;

my $console = Tickit::Console->new;

ok( defined $console, 'defined $console' );

is_oneref( $console, '$console has refcount 1 initially' );

$console->set_window( $win );

flush_tickit;

is_termlog( [ ( map { GOTO($_,0),
                      SETBG(undef),
                      ERASECH(80) } 0 .. 22 ),
              GOTO(23,0),
              SETBG(4),
              ERASECH(80),
              GOTO(24,0),
              SETBG(undef),
              ERASECH(80),
              GOTO(24,0) ],
            'Termlog initially' );

is_display( [ BLANKLINES(23),
              BLANKLINE(bg=>4),
              BLANKLINE() ],
            'Display initially' );

is_cursorpos( 24, 0, 'Cursor position initially' );

my $tab = $console->add_tab( name => "Tabname" );

flush_tickit;

is_display( [ BLANKLINES(23),
              [TEXT("[",fg=>7,bg=>4),TEXT("Tabname",fg=>14,bg=>4),TEXT("]",fg=>7,bg=>4),TEXT("",bg=>4)],
              BLANKLINE() ],
            'Display after ->add_tab' );

is_cursorpos( 24, 0, 'Cursor position after ->add_tab' );

$tab->append_line( "A line of content" );

flush_tickit;

is_display( [ [TEXT("A line of content")],
              BLANKLINES(22),
              [TEXT("[",fg=>7,bg=>4),TEXT("Tabname",fg=>14,bg=>4),TEXT("]",fg=>7,bg=>4),TEXT("",bg=>4)],
              BLANKLINE() ],
            'Display after tab->append_line' );

is_cursorpos( 24, 0, 'Cursor position after tab->append_line' );

my $text = String::Tagged->new( "Content with formatting in it" );
$text->apply_tag(  0,  7, b => 1 );
$text->apply_tag( 13, 10, u => 1 );

$tab->append_line( $text );

flush_tickit;

is_display( [ [TEXT("A line of content")],
              [TEXT("Content",b=>1),TEXT(" with "),TEXT("formatting",u=>1),TEXT(" in it")],
              BLANKLINES(21),
              [TEXT("[",fg=>7,bg=>4),TEXT("Tabname",fg=>14,bg=>4),TEXT("]",fg=>7,bg=>4),TEXT("",bg=>4)],
              BLANKLINE() ],
            'Display after tab->append_line tagged' );

$tab->append_line( "XXXX " x 20, indent => 4 );

flush_tickit;

is_display( [ [TEXT("A line of content")],
              [TEXT("Content",b=>1),TEXT(" with "),TEXT("formatting",u=>1),TEXT(" in it")],
              [TEXT("XXXX " x 16)],
              [TEXT("    "),TEXT("XXXX " x 4),TEXT("")],
              BLANKLINES(19),
              [TEXT("[",fg=>7,bg=>4),TEXT("Tabname",fg=>14,bg=>4),TEXT("]",fg=>7,bg=>4),TEXT("",bg=>4)],
              BLANKLINE() ],
            'Display after tab->append_line with indent' );

$tab->prepend_line( "This line first" );

flush_tickit;

is_display( [ [TEXT("This line first")],
              [TEXT("A line of content")],
              [TEXT("Content",b=>1),TEXT(" with "),TEXT("formatting",u=>1),TEXT(" in it")],
              [TEXT("XXXX " x 16)],
              [TEXT("    "),TEXT("XXXX " x 4),TEXT("")],
              BLANKLINES(18),
              [TEXT("[",fg=>7,bg=>4),TEXT("Tabname",fg=>14,bg=>4),TEXT("]",fg=>7,bg=>4),TEXT("",bg=>4)],
              BLANKLINE() ],
            'Display after tab->prepend_line' );

is_oneref( $console, '$console has refcount 1 at EOF' );

done_testing;