#!perl
use strict;
use warnings;
use RTF::Tokenizer;
use Test::More tests => 9;
SKIP: {
eval { require IO::Scalar };
skip "IO::Scalar not installed", 9 if $@;
my $xstring = 'x' x 500;
my $stringMAC = "{\\rtf1 Hi there\cM $xstring \cMSee ya!abc\\'aa}\\_";
my $fhMAC = new IO::Scalar \$stringMAC;
my $tokenizer =
RTF::Tokenizer->new( file => $fhMAC, note_escapes => 'true' );
ok( $tokenizer->{_NOTE_ESCAPES}, 'Note escapes flag set' );
ok( eq_array( [ $tokenizer->get_token() ], [ 'group', 1, '' ] ),
'Groups opens' );
ok( eq_array( [ $tokenizer->get_token() ], [ 'control', 'rtf', 1 ] ),
'RTF v1' );
ok( eq_array(
[ $tokenizer->get_token() ],
[ 'text', "Hi there $xstring See ya!abc", '' ]
),
'Read text' );
ok( eq_array( [ $tokenizer->get_token() ], [ 'escape', "'", 'aa' ] ),
'Hex char' );
ok( eq_array( [ $tokenizer->get_token() ], [ 'group', 0, '' ] ),
'Group closes' );
ok( !$tokenizer->{_TEMP_ESCAPE_FLAG}, "Temp flag is unset" );
ok( eq_array( [ $tokenizer->get_token() ], [ 'escape', '_', '' ] ),
'Escape found' );
ok( !$tokenizer->{_TEMP_ESCAPE_FLAG}, 'Temp flag is still unset' );
}