summaryrefslogtreecommitdiff
path: root/rt/t/mail/charsets-outgoing.t
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/mail/charsets-outgoing.t')
-rw-r--r--rt/t/mail/charsets-outgoing.t331
1 files changed, 0 insertions, 331 deletions
diff --git a/rt/t/mail/charsets-outgoing.t b/rt/t/mail/charsets-outgoing.t
deleted file mode 100644
index e8f78cc1a..000000000
--- a/rt/t/mail/charsets-outgoing.t
+++ /dev/null
@@ -1,331 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-use Encode;
-
-use RT::Test tests => 78;
-
-my %string = (
- ru => {
- test => "\x{442}\x{435}\x{441}\x{442}",
- autoreply => "\x{410}\x{432}\x{442}\x{43e}\x{43e}\x{442}\x{432}\x{435}\x{442}",
- support => "\x{43f}\x{43e}\x{434}\x{434}\x{435}\x{440}\x{436}\x{43a}\x{430}",
- },
- latin1 => {
- test => Encode::decode('latin1', "t\xE9st"),
- autoreply => Encode::decode('latin1', "a\xFCtoreply"),
- support => Encode::decode('latin1', "supp\xF5rt"),
- },
-);
-
-RT::Test->set_mail_catcher;
-
-my $queue = RT::Test->load_or_create_queue(
- Name => 'Regression',
- CorrespondAddress => 'rt-recipient@example.com',
- CommentAddress => 'rt-recipient@example.com',
-);
-ok $queue && $queue->id, 'loaded or created queue';
-
-diag "make sure queue has no subject tag" if $ENV{'TEST_VERBOSE'};
-{
- my ($status, $msg) = $queue->SetSubjectTag( undef );
- ok $status, "set subject tag for the queue" or diag "error: $msg";
-}
-
-diag "set intial simple autoreply template" if $ENV{'TEST_VERBOSE'};
-{
- my $template = RT::Template->new( $RT::SystemUser );
- $template->Load('Autoreply');
- ok $template->id, "loaded autoreply tempalte";
-
- my ($status, $msg) = $template->SetContent(
- "Subject: Autreply { \$Ticket->Subject }\n"
- ."\n"
- ."hi there it's an autoreply.\n"
- ."\n"
- );
- ok $status, "changed content of the template"
- or diag "error: $msg";
-}
-
-diag "basic test of autoreply" if $ENV{'TEST_VERBOSE'};
-{
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => 'test',
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-}
-
-diag "non-ascii Subject with ascii prefix set in the template"
- if $ENV{'TEST_VERBOSE'};
-foreach my $set ( 'ru', 'latin1' ) {
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => $string{$set}{test},
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$set}{test}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-foreach my $tag_set ( 'ru', 'latin1' ) {
-
-diag "set non-ascii subject tag for the queue" if $ENV{'TEST_VERBOSE'};
-{
- my ($status, $msg) = $queue->SetSubjectTag( $string{$tag_set}{support} );
- ok $status, "set subject tag for the queue" or diag "error: $msg";
-}
-
-diag "ascii subject with non-ascii subject tag" if $ENV{'TEST_VERBOSE'};
-{
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => 'test',
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$tag_set}{support}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-diag "non-ascii subject with non-ascii subject tag" if $ENV{'TEST_VERBOSE'};
-foreach my $set ( 'ru', 'latin1' ) {
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => $string{$set}{test},
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$tag_set}{support}/
- or do { $status = 0; diag "wrong subject: $subject" };
- $subject =~ /$string{$set}{test}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-} # subject tag
-
-diag "return back the empty subject tag" if $ENV{'TEST_VERBOSE'};
-{
- my ($status, $msg) = $queue->SetSubjectTag( undef );
- ok $status, "set subject tag for the queue" or diag "error: $msg";
-}
-
-
-foreach my $prefix_set ( 'ru', 'latin1' ) {
-
-diag "add non-ascii subject prefix in the autoreply template" if $ENV{'TEST_VERBOSE'};
-{
- my $template = RT::Template->new( $RT::SystemUser );
- $template->Load('Autoreply');
- ok $template->id, "loaded autoreply tempalte";
-
- my ($status, $msg) = $template->SetContent(
- "Subject: $string{$prefix_set}{autoreply} { \$Ticket->Subject }\n"
- ."\n"
- ."hi there it's an autoreply.\n"
- ."\n"
- );
- ok $status, "changed content of the template" or diag "error: $msg";
-}
-
-diag "ascii subject with non-ascii subject prefix in template" if $ENV{'TEST_VERBOSE'};
-{
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => 'test',
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$prefix_set}{autoreply}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-diag "non-ascii subject with non-ascii subject prefix in template"
- if $ENV{'TEST_VERBOSE'};
-foreach my $set ( 'ru', 'latin1' ) {
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => $string{$set}{test},
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$prefix_set}{autoreply}/
- or do { $status = 0; diag "wrong subject: $subject" };
- $subject =~ /$string{$set}{test}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-foreach my $tag_set ( 'ru', 'latin1' ) {
-diag "set non-ascii subject tag for the queue" if $ENV{'TEST_VERBOSE'};
-{
- my ($status, $msg) = $queue->SetSubjectTag( $string{$tag_set}{support} );
- ok $status, "set subject tag for the queue" or diag "error: $msg";
-}
-
-diag "non-ascii subject, non-ascii prefix in template and non-ascii tag"
- if $ENV{'TEST_VERBOSE'};
-foreach my $set ( 'ru', 'latin1' ) {
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => $string{$set}{test},
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$prefix_set}{autoreply}/
- or do { $status = 0; diag "wrong subject: $subject" };
- $subject =~ /$string{$tag_set}{support}/
- or do { $status = 0; diag "wrong subject: $subject" };
- $subject =~ /$string{$set}{test}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-} # subject tag
-
-diag "flush subject tag of the queue" if $ENV{'TEST_VERBOSE'};
-{
- my ($status, $msg) = $queue->SetSubjectTag( undef );
- ok $status, "set subject tag for the queue" or diag "error: $msg";
-}
-
-} # prefix set
-
-
-diag "don't change subject via template" if $ENV{'TEST_VERBOSE'};
-# clean DB has autoreply that always changes subject in template,
-# we should test situation when subject is not changed from template
-{
- my $template = RT::Template->new( $RT::SystemUser );
- $template->Load('Autoreply');
- ok $template->id, "loaded autoreply tempalte";
-
- my ($status, $msg) = $template->SetContent(
- "\n"
- ."\n"
- ."hi there it's an autoreply.\n"
- ."\n"
- );
- ok $status, "changed content of the template" or diag "error: $msg";
-}
-
-diag "non-ascii Subject without changes in template" if $ENV{'TEST_VERBOSE'};
-foreach my $set ( 'ru', 'latin1' ) {
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => $string{$set}{test},
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$set}{test}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-foreach my $tag_set ( 'ru', 'latin1' ) {
-diag "set non-ascii subject tag for the queue" if $ENV{'TEST_VERBOSE'};
-{
- my ($status, $msg) = $queue->SetSubjectTag( $string{$tag_set}{support} );
- ok $status, "set subject tag for the queue" or diag "error: $msg";
-}
-
-diag "non-ascii Subject without changes in template and with non-ascii subject tag"
- if $ENV{'TEST_VERBOSE'};
-foreach my $set ( 'ru', 'latin1' ) {
- my $ticket = RT::Ticket->new( $RT::SystemUser );
- $ticket->Create(
- Queue => $queue->id,
- Subject => $string{$set}{test},
- Requestor => 'root@localhost',
- );
- my @mails = RT::Test->fetch_caught_mails;
- ok @mails, "got some outgoing emails";
-
- my $status = 1;
- foreach my $mail ( @mails ) {
- my $entity = parse_mail( $mail );
- my $subject = Encode::decode_utf8( $entity->head->get('Subject') );
- $subject =~ /$string{$set}{test}/
- or do { $status = 0; diag "wrong subject: $subject" };
- $subject =~ /$string{$tag_set}{support}/
- or do { $status = 0; diag "wrong subject: $subject" };
- }
- ok $status, "all mails have correct data";
-}
-
-} # subject tag set
-
-sub parse_mail {
- my $mail = shift;
- require RT::EmailParser;
- my $parser = new RT::EmailParser;
- $parser->ParseMIMEEntityFromScalar( $mail );
- return $parser->Entity;
-}
-