The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use Test::More tests => 1;
use lib 'inc';
use IO::Catch;

# Disable all ReadLine functionality
$ENV{PERL_RL} = 0;
$ENV{COLUMNS} = 80;
$ENV{LINES} = 24;

TODO: {
  #local $TODO = "Term::Shell::catch_smry is buggy";

  # Now check that the Term::Shell summary calls catch_smry

  require Term::Shell;
  use vars qw( $called );
  {
    package Term::Shell::Test;
    use base 'Term::Shell';
    sub summary { $::called++ };
    sub print_pairs {};
  };
  my $s = { handlers => { foo => { run => sub {}}} };
  bless $s, 'Term::Shell::Test';

  { local *STDOUT;
    tie *STDOUT, 'IO::Catch', '_STDOUT_';
    $s->run_help();
  };

  if (not is($called,1,"Term::Shell::Test::catch_smry gets called for unknown methods")) {
    diag "Term::Shell did not call a custom catch_smry handler";
    diag "This is most likely because your version of Term::Shell";
    diag "has a bug. Please upgrade to v0.02 or higher, which";
    diag "should close this bug.";
    diag "If that is no option, patch sub help() in Term/Shell.pm, line 641ff.";
    diag "to:";
    diag '      #my $smry = exists $o->{handlers}{$h}{smry};';
		diag '    #? $o->summary($h);';
		diag '    #: "undocumented";';
    diag '      my $smry = $o->summary($h);';
    diag 'Fixing this is not necessary - you will get no online help';
    diag 'but the shell will otherwise work fine. Help is still';
    diag 'available through ``perldoc WWW::Mechanize::Shell``';
  };
};