[Rt-commit] rt branch, 4.0/gnupg-headers-fix, created. rt-4.0.1rc1-9-g8071fe9
? sunnavy
sunnavy at bestpractical.com
Wed Jun 8 04:04:20 EDT 2011
The branch, 4.0/gnupg-headers-fix has been created
at 8071fe96d041120157c2093f4a66d5bd5b275e22 (commit)
- Log -----------------------------------------------------------------
commit d3341b787e3a734c441596b84ce621339f327851
Author: sunnavy <sunnavy at bestpractical.com>
Date: Wed Jun 8 14:21:29 2011 +0800
values of X-RT-(Sign|Encrypt) are either 1 or 0, not ARRAY(...)
diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 597f728..0b37786 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -1291,9 +1291,8 @@ sub CreateTicket {
}
foreach my $argument (qw(Encrypt Sign)) {
- $MIMEObj->head->add(
- "X-RT-$argument" => Encode::encode_utf8( $ARGS{$argument} )
- ) if defined $ARGS{$argument};
+ $MIMEObj->head->replace( "X-RT-$argument" => $ARGS{$argument} ? 1 : 0 )
+ if defined $ARGS{$argument};
}
my %create_args = (
@@ -1526,8 +1525,8 @@ sub ProcessUpdateMessage {
}
my %message_args = (
- Sign => $args{ARGSRef}->{'Sign'},
- Encrypt => $args{ARGSRef}->{'Encrypt'},
+ Sign => ( $args{ARGSRef}->{'Sign'} ? 1 : 0 ),
+ Encrypt => ( $args{ARGSRef}->{'Encrypt'} ? 1 : 0 ),
MIMEObj => $Message,
TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'}
);
commit 8071fe96d041120157c2093f4a66d5bd5b275e22
Author: sunnavy <sunnavy at bestpractical.com>
Date: Wed Jun 8 15:23:36 2011 +0800
X-RT-(Encrypt|Sign) tests
diff --git a/t/web/gnupg-headers.t b/t/web/gnupg-headers.t
new file mode 100644
index 0000000..88b3ab9
--- /dev/null
+++ b/t/web/gnupg-headers.t
@@ -0,0 +1,53 @@
+#!/usr/bin/perl -w
+use strict;
+
+use RT::Test::GnuPG
+ tests => 15,
+ gnupg_options => {
+ passphrase => 'recipient',
+ 'trust-model' => 'always',
+ };
+
+RT::Test->import_gnupg_key( 'recipient at example.com', 'public' );
+RT::Test->import_gnupg_key( 'general at example.com', 'secret' );
+
+ok( my $user = RT::User->new( RT->SystemUser ) );
+ok( $user->Load('root'), "Loaded user 'root'" );
+$user->SetEmailAddress('recipient at example.com');
+
+my $queue = RT::Test->load_or_create_queue(
+ Name => 'General',
+ CorrespondAddress => 'general at example.com',
+);
+ok $queue && $queue->id, 'loaded or created queue';
+my $qid = $queue->id;
+
+my ( $baseurl, $m ) = RT::Test->started_ok;
+ok $m->login, 'logged in';
+
+diag "test with Encrypt and Sign disabled";
+
+$m->goto_create_ticket($queue);
+$m->form_name('TicketCreate');
+$m->field( 'Subject', 'Signing test' );
+$m->field( 'Content', 'Some other content' );
+$m->submit;
+$m->content_like( qr/Ticket \d+ created/i, 'created the ticket' );
+$m->follow_link_ok( { text => 'with headers' } );
+$m->content_contains('X-RT-Encrypt: 0');
+$m->content_contains('X-RT-Sign: 0');
+
+diag "test with Encrypt and Sign enabled";
+
+$m->goto_create_ticket($queue);
+$m->form_name('TicketCreate');
+$m->field( 'Subject', 'Signing test' );
+$m->field( 'Content', 'Some other content' );
+$m->tick( 'Encrypt', 1 );
+$m->tick( 'Sign', 1 );
+$m->submit;
+$m->content_like( qr/Ticket \d+ created/i, 'created the ticket' );
+$m->follow_link_ok( { text => 'with headers' } );
+$m->content_contains('X-RT-Encrypt: 1');
+$m->content_contains('X-RT-Sign: 1');
+
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list