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

use Test::More tests => 8;
use Data::Dumper;

use WWW::HtmlUnit;

my $webClient = WWW::HtmlUnit->new;

my $confirm = WWW::HtmlUnit::com::gargoylesoftware::htmlunit::ClickConfirmHandler->new(1);
isa_ok $confirm,
  'WWW::HtmlUnit::com::gargoylesoftware::htmlunit::ClickConfirmHandler',
  'ClickConfirmHandler created';
$webClient->setConfirmHandler($confirm);

my $alert_handler = WWW::HtmlUnit::com::gargoylesoftware::htmlunit::CollectingAlertHandler->new();
isa_ok $alert_handler,
  'WWW::HtmlUnit::com::gargoylesoftware::htmlunit::CollectingAlertHandler',
  'CollectingAlertHandler created';
$webClient->setAlertHandler($alert_handler);

my $page = $webClient->getPage("file:t/03_clickhandler.html");

# Check to see if the onload alert was triggered
is $alert_handler->getCollectedAlerts->toArray->[0], 'load alert', 'Got onload alert';

# For the confirm callback, first we'll try OK, which is the default
$page->getElementById('submit')->click();
is $confirm->getCollectedConfirms->toArray->[0], 'clicked', 'Clicked confirm';
like $page->getElementById('content')->asXml,
  qr/I am confirmed/,
  'Callback did confirm';

# Then we'll try Cancel
$confirm->make_click_cancel();
$page->getElementById('submit')->click();
is $confirm->getCollectedConfirms->toArray->[0], 'clicked', 'Clicked confirm';
like $page->getElementById('content')->asXml,
  qr/I was denied/,
  'Callback did deny';

is $confirm->get_last_confirm_msg(), 'clicked', 'Last message was "clicked"';