RT 4.2.11, ticket#13852
[freeside.git] / rt / t / api / rtname.t
1 use strict;
2 use warnings;
3
4 use RT::Test nodata => 1, tests => 12;
5
6 use RT::Interface::Email;
7
8 # normal use case, regexp set to rtname
9 RT->Config->Set( rtname => "site" );
10 RT->Config->Set( EmailSubjectTagRegex => qr/site/ );
11 RT->Config->Set( rtname => undef );
12 is(RT::Interface::Email::ParseTicketId("[site #123] test"), 123);
13 is(RT::Interface::Email::ParseTicketId("[othersite #123] test"), undef);
14
15 # oops usecase, where the regexp is scragged
16 RT->Config->Set( rtname => "site" );
17 RT->Config->Set( EmailSubjectTagRegex => undef );
18 is(RT::Interface::Email::ParseTicketId("[site #123] test"), 123);
19 is(RT::Interface::Email::ParseTicketId("[othersite #123] test"), undef);
20
21 # set to a simple regexp. NOTE: we no longer match "site"
22 RT->Config->Set( rtname => "site");
23 RT->Config->Set( EmailSubjectTagRegex => qr/newsite/);
24 is(RT::Interface::Email::ParseTicketId("[site #123] test"), undef);
25 is(RT::Interface::Email::ParseTicketId("[newsite #123] test"), 123);
26
27 # set to a more complex regexp
28 RT->Config->Set( rtname => "site" );
29 RT->Config->Set( EmailSubjectTagRegex => qr/newsite|site/ );
30 is(RT::Interface::Email::ParseTicketId("[site #123] test"), 123);
31 is(RT::Interface::Email::ParseTicketId("[newsite #123] test"), 123);
32 is(RT::Interface::Email::ParseTicketId("[othersite #123] test"), undef);
33
34 # Parens work fine
35 RT->Config->Set( EmailSubjectTagRegex => qr/(new|)(site)/ );
36 is(RT::Interface::Email::ParseTicketId("[site #123] test"), 123);
37 is(RT::Interface::Email::ParseTicketId("[newsite #123] test"), 123);
38 is(RT::Interface::Email::ParseTicketId("[othersite #123] test"), undef);