[Rt-commit] rt branch, 4.2/do-not-encode-mime-headers-in-forward-method, repushed

? sunnavy sunnavy at bestpractical.com
Sun Mar 15 07:02:11 EDT 2015


The branch 4.2/do-not-encode-mime-headers-in-forward-method was deleted and repushed:
       was 9f9f5212d7fa1d8e4f54dc66fccfbf118775c313
       now b56cf8e3daac89ceb08554ff85b218ffccb6fe7c

1:  9f9f521 ! 1:  b56cf8e it's not RT::Ticket::Forward's job to encode headers to mime
    @@ -21,13 +21,6 @@
     --- a/etc/upgrade/4.2.11/content
     +++ b/etc/upgrade/4.2.11/content
     @@
    - use strict;
    - use warnings;
    -+use Encode;
    - 
    - our @Initial = (
    -     sub {
    -@@
                     AND Content IS NULL;
      EOSQL
          },
    @@ -40,12 +33,12 @@
     +
     +            # we only need to process ascii-only strings
     +            unless ( $att->Subject =~ /[^\x00-\x7F]/ ) {
    -+                $att->__Set( Field => 'Subject', Value => decode_utf8(RT::I18N::DecodeMIMEWordsToUTF8($att->Subject, 'Subject')) );
    ++                $att->__Set( Field => 'Subject', Value => Encode::decode("UTF-8", RT::I18N::DecodeMIMEWordsToUTF8($att->Subject, 'Subject')) );
     +            }
     +            for my $field ( qw/Subject From To Cc Bcc/ ) {
     +                next if !$att->GetHeader($field) || $att->GetHeader($field) =~ /[^\x00-\x7F]/;
     +                # Subject here is not a typo, because we don't really want to parse email addresses here
    -+                $att->SetHeader( $field, decode_utf8(RT::I18N::DecodeMIMEWordsToUTF8($att->GetHeader($field), 'Subject')) );
    ++                $att->SetHeader( $field, Encode::decode("UTF-8", RT::I18N::DecodeMIMEWordsToUTF8($att->GetHeader($field), 'Subject')) );
     +            }
     +        }
     +    },
    @@ -75,21 +68,13 @@
     --- a/t/web/ticket_forward.t
     +++ b/t/web/ticket_forward.t
     @@
    - print $att_fh "this is an attachment";
    - close $att_fh;
    - my $att_name = ( File::Spec->splitpath($att_file) )[-1];
    -+use Encode;
    - 
    - my ( $baseurl, $m ) = RT::Test->started_ok;
    - ok $m->login, 'logged in as root';
    -@@
          like($mail, qr/Subject: \[example.com #\d+\] OVERRIDING SUBJECT/);
      }
      
     +diag "Forward Transaction with non-ascii subject" if $ENV{TEST_VERBOSE};
     +{
     +    $m->follow_link_ok( { text => 'Forward', n => 2 }, 'follow 2nd Forward' );
    -+    my $subject = decode_utf8('test non-ascii äöü');
    ++    my $subject = Encode::decode("UTF-8", 'test non-ascii äöü');
     +    $m->submit_form(
     +        form_name => 'ForwardMessage',
     +        fields    => {
    @@ -100,7 +85,7 @@
     +    );
     +    my ($mail) = RT::Test->fetch_caught_mails;
     +    if ( $mail =~ /Subject: (.+)/ ) {
    -+        like( decode_utf8(RT::I18N::DecodeMIMEWordsToUTF8( $1, 'Subject' )), qr/$subject/, 'non-ascii subject' );
    ++        like( Encode::decode("UTF-8", RT::I18N::DecodeMIMEWordsToUTF8( $1, 'Subject' )), qr/$subject/, 'non-ascii subject' );
     +    }
     +    $m->content_contains( $subject, 'non-ascii subject got displayed correctly' );
     +}



More information about the rt-commit mailing list