#!perl -T use strict; use warnings; use Test::More tests => 3; use IO::Socket::Telnet; my @sent; { no warnings 'once'; *IO::Socket::Telnet::send = sub { my ($self, $text) = @_; push @sent, $text; }; } my @got; my $socket = IO::Socket::Telnet->new(); $socket->telnet_complex_callback(sub { push @got, pop; return }); my $IAC = chr(255); my $SB = chr(250); my $SE = chr(240); my $STATUS = chr(5); my $IS = chr(0); is($socket->_parse("$IAC$SB$STATUS$IS$IAC$IAC$IAC$SE"), '', "subnegotiation parsed out"); is(@got, 1, "callback called"); is(pop @got, "$STATUS$IS$IAC", "callback called with reasonable arguments");