use strict; use warnings; use Test::More tests => 14; use Captcha::reCAPTCHA::Mailhide; use constant PUBKEY => 'UcV0oq5XNVM01AyYmMNRqvRA=='; use constant PRIVKEY => 'E542D5DB870FF2D2B9D01070FF04F0C8'; ok my $captcha = Captcha::reCAPTCHA::Mailhide->new, "create ok"; isa_ok $captcha, 'Captcha::reCAPTCHA::Mailhide'; my $mh_url = $captcha->mailhide_url( PUBKEY, PRIVKEY, 'someone@example.com' ); is $mh_url, 'http://www.google.com/recaptcha/mailhide/d?c=4jBBJ29mAjTuEk81neCXmYlMeLR6' . 'FAqNTe_fq72Tkq4%3d&k=UcV0oq5XNVM01AyYmMNRqvRA%3d%3d', 'url OK'; # Call it twice for coverage of HTML::Tiny caching for ( 1 .. 2 ) { { my $mh_html = $captcha->mailhide_html( PUBKEY, PRIVKEY, 'someone@example.com' ); $mh_html =~ s/'/'/g; is $mh_html, 'some.' . '..@example.com', 'HTML OK'; } { my $mh_html = $captcha->mailhide_html( PUBKEY, PRIVKEY, 'someone@anunusuallylongexampledomainname.com' ); $mh_html =~ s/'/'/g; is $mh_html, 'some...@anunusuallylonge' . 'xampledomainname.com', 'HTML OK'; } } my @addr = ( 'someone@example.com', [ 'some', '...', '@', 'example.com' ], 'someon@example.com', [ 'som', '...', '@', 'example.com' ], 'someo@example.com', [ 'som', '...', '@', 'example.com' ], 'some@example.com', [ 's', '...', '@', 'example.com' ], 'som@example.com', [ 's', '...', '@', 'example.com' ], 'so@example.com', [ 's', '...', '@', 'example.com' ], 's@example.com', [ 's', '...', '@', 'example.com' ], ); while ( my ( $em, $want ) = splice @addr, 0, 2 ) { my @parts = Captcha::reCAPTCHA::Mailhide::_email_parts( $em ); is_deeply \@parts, $want, "$em: parts ok"; }