File: emailparser.t

package info (click to toggle)
request-tracker5 5.0.9%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 80,796 kB
  • sloc: javascript: 191,917; perl: 88,458; sh: 1,433; makefile: 489; python: 37; php: 15
file content (47 lines) | stat: -rw-r--r-- 2,144 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

use strict;
use warnings;

use RT::Test tests => undef;

ok(require RT::EmailParser);

RT->Config->Set( RTAddressRegexp => undef );
is(RT::EmailParser::IsRTAddress("",""),undef, "Empty emails from users don't match queues without email addresses" );

my $general = RT::Test->load_or_create_queue(Name => 'General');
ok( $general->SetCorrespondAddress('general@example.com'), 'Updated CorrespondAddress' );
ok( $general->SetCommentAddress('comment@example.com'), 'Updated CommentAddress' );
is( RT::EmailParser::IsRTAddress( "", "general\@example.com" ), 1, "Queue CorrespondAddress matched rt address" );
is( RT::EmailParser::IsRTAddress( "", "comment\@example.com" ), 1, "Queue CommentAddress matched rt address" );

RT->Config->Set( RTAddressRegexp => qr/^rt\@example.com$/i );

is(RT::EmailParser::IsRTAddress("","rt\@example.com"),1, "Regexp matched rt address" );
is(RT::EmailParser::IsRTAddress("","frt\@example.com"),undef, "Regexp didn't match non-rt address" );

is( RT::EmailParser::IsRTAddress( "", "general\@example.com" ), 1, "Queue CorrespondAddress matched rt address" );
is( RT::EmailParser::IsRTAddress( "", "comment\@example.com" ), 1, "Queue CommentAddress matched rt address" );

my @before = ("rt\@example.com", "frt\@example.com");
my @after = ("frt\@example.com");
ok(eq_array(RT::EmailParser->CullRTAddresses(@before),@after), "CullRTAddresses only culls RT addresses");

{
    my ( $addr ) =
      RT::EmailParser->ParseEmailAddress('foo@example.com');
    is( $addr->address, 'foo@example.com', 'addr for foo@example.com' );
    is( $addr->phrase,  undef,             'no name for foo@example.com' );

    ( $addr ) =
      RT::EmailParser->ParseEmailAddress('Foo <foo@example.com>');
    is( $addr->address, 'foo@example.com', 'addr for Foo <foo@example.com>' );
    is( $addr->phrase,  'Foo',             'name for Foo <foo@example.com>' );

    ( $addr ) =
      RT::EmailParser->ParseEmailAddress('foo@example.com (Comment)');
    is( $addr->address, 'foo@example.com', 'addr for foo@example.com (Comment)' );
    is( $addr->phrase,  undef,             'no name for foo@example.com (Comment)' );
}

done_testing;