X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fmail%2Fgnupg-special.t;h=6a31ef13185cb77d2bfa46a5142afcb4183f5577;hb=24548f7cf666bac02335d0bc74f81251c7b4ab50;hp=7e50819e8824361cc51dba8cf5f861e654efa6fa;hpb=75162bb14b3e38d66617077843f4dfdcaf09d5c4;p=freeside.git

diff --git a/rt/t/mail/gnupg-special.t b/rt/t/mail/gnupg-special.t
index 7e50819e8..6a31ef131 100644
--- a/rt/t/mail/gnupg-special.t
+++ b/rt/t/mail/gnupg-special.t
@@ -2,13 +2,15 @@
 use strict;
 use warnings;
 
-use RT::Test tests => 11;
+use RT::Test tests => 23;
 
 plan skip_all => 'GnuPG required.'
     unless eval 'use GnuPG::Interface; 1';
 plan skip_all => 'gpg executable is required.'
     unless RT::Test->find_executable('gpg');
 
+use Digest::MD5 qw(md5_hex);
+
 use File::Temp qw(tempdir);
 my $homedir = tempdir( CLEANUP => 1 );
 
@@ -21,6 +23,7 @@ RT->Config->Set( 'GnuPG',
 
 RT->Config->Set( 'GnuPGOptions',
                  homedir => $homedir,
+                 'passphrase' => 'rt-test',
                  'no-permission-warning' => undef);
 
 RT->Config->Set( 'MailPlugins' => 'Auth::MailFrom', 'Auth::GnuPG' );
@@ -71,6 +74,46 @@ RT::Test->set_rights(
     is(scalar @mail, 1, "autoreply only");
 }
 
+{
+    my $id = send_via_mailgate('binary-asc-attach-marked-plain-text.txt');
+
+    my $tick = RT::Ticket->new( $RT::SystemUser );
+    $tick->Load( $id );
+    ok ($tick->id, "loaded ticket #$id");
+
+    my $txn = $tick->Transactions->First;
+    my ($msg, @attachs) = @{$txn->Attachments->ItemsArrayRef};
+
+    is (scalar @attachs, 3, 'text, attachment and original');
+    my $bin = $attachs[1];
+    is(
+        (split /;/, $bin->GetHeader('Content-Type'))[0],
+        'application/octet-stream',
+        'binary attachment'
+    );
+    is(md5_hex($bin->Content), '1e35f1aa90c98ca2bab85c26ae3e1ba7', "correct png");
+}
+
+{
+    my $id = send_via_mailgate('inline-binary-attachment-with-wrap.txt');
+
+    my $tick = RT::Ticket->new( $RT::SystemUser );
+    $tick->Load( $id );
+    ok ($tick->id, "loaded ticket #$id");
+
+    my $txn = $tick->Transactions->First;
+    my ($msg, @attachs) = @{$txn->Attachments->ItemsArrayRef};
+
+    is (scalar @attachs, 3, 'text, attachment and original');
+    my $bin = $attachs[1];
+    is(
+        (split /;/, $bin->GetHeader('Content-Type'))[0],
+        'application/octet-stream',
+        'binary attachment'
+    );
+    is(md5_hex($bin->Content), '1e35f1aa90c98ca2bab85c26ae3e1ba7', "correct png");
+}
+
 sub send_via_mailgate {
     my $fname = shift;
     my $emaildatadir = RT::Test::get_relocatable_dir(File::Spec->updir(),