The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More qw[no_plan];
use strict;
$^W = 1;

BEGIN {
    use_ok 'Email::Reply';
    use_ok 'Email::Simple';
    use_ok 'Email::Simple::Creator';
    use_ok 'Email::MIME::Modifier';
    use_ok 'Email::Address';
}

my $response = <<__RESPONSE__;
Welcome to Earth!
__RESPONSE__

my $simple = Email::Simple->create(
    header => [
        To      => Email::Address->new(undef, 'casey@geeknest.com'),
        From    => 'alien@titan.saturn.sol',
        Subject => 'Ping',
    ],
    body => <<__MESSAGE__ );
Are you out there?


-- 
The New Ones
__MESSAGE__

my $reply = reply to => $simple, body => $response;

$reply->header_set(Date => undef);

is $reply->as_string, <<'__MESSAGE__', 'simple reply matches';
From: <casey@geeknest.com>
To: <alien@titan.saturn.sol>
Subject: Re: Ping

alien wrote:
> Are you out there?

Welcome to Earth!

__MESSAGE__

$simple->header_set(Date => undef);
$simple->header_set(Cc => 'martian@mars.sol, "Casey" <human@earth.sol>');
$simple->header_set('Message-ID' => '1232345@titan.saturn.sol');
my $complex = reply to         => $simple,
                    from       => Email::Address->new('Casey West', 'human@earth.sol'),
                    all        => 1,
                    self       => 1,
                    attach     => 1,
                    top_post   => 1,
                    keep_sig   => 1,
                    prefix     => '%% ',
                    attrib     => 'Quoth the raven:',
                    body       => $response;
$complex->header_set(Date => undef);
$complex->boundary_set('boundary42');
$complex->parts_set([map {$_->header_set(Date=>undef);$_} $complex->parts]);
is $complex->as_string, <<'__COMPLEX__', 'complex reply matches';
From: Casey West <human@earth.sol>
To: <alien@titan.saturn.sol>
Subject: Re: Ping
In-Reply-To: <1232345@titan.saturn.sol>
References: <1232345@titan.saturn.sol>
Cc: <casey@geeknest.com>, <martian@mars.sol>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="boundary42"; charset="us-ascii"


--boundary42
MIME-Version: 1.0

Welcome to Earth!

Quoth the raven:
%% Are you out there?
%% 
%% 
%% -- 
%% The New Ones



--boundary42
MIME-Version: 1.0
Content-Type: message/rfc822; charset="us-ascii"

To: <casey@geeknest.com>
From: alien@titan.saturn.sol
Subject: Ping
Cc: martian@mars.sol, "Casey" <human@earth.sol>
Message-ID: 1232345@titan.saturn.sol

Are you out there?


-- 
The New Ones




--boundary42--
__COMPLEX__

$complex->header_set('Message-ID' => '4506957@earth.sol');
my $replyreply = reply to => $complex, body => $response;
$replyreply->header_set(Date => undef);
is $replyreply->as_string, <<'__REPLY2__', 'reply to reply matched';
From: <alien@titan.saturn.sol>
To: Casey West <human@earth.sol>
Subject: Re: Ping
In-Reply-To: <4506957@earth.sol>
References: <1232345@titan.saturn.sol> <4506957@earth.sol>

Casey West wrote:
> Welcome to Earth!
> 
> Quoth the raven:
> %% Are you out there?
> %% 
> %% 
> %% -- 
> %% The New Ones

Welcome to Earth!

__REPLY2__