4 use RT::Test tests => undef;
14 # Variables to test return values
18 my $class = RT::Class->new($RT::SystemUser);
19 ($ret, $msg) = $class->Create('Name' => 'TestClass-'.$$,
20 'Description' => 'A general-purpose test class');
21 ok($ret, "Test class created: $msg");
22 # because id 0 represents global, it uses an empty Queue object...
23 ($ret, $msg) = $class->AddToObject(RT::Queue->new($RT::SystemUser));
24 ok($ret, "Applied Class globally: $msg");
26 # Create some article custom fields
27 my $bodyCF = RT::CustomField->new($RT::SystemUser);
28 my $subjectCF = RT::CustomField->new($RT::SystemUser);
29 ($ret, $msg) = $subjectCF->Create('Name' => 'Subject-'.$$,
32 'LookupType' => 'RT::Class-RT::Article',
33 'Description' => 'The subject to be answered',
35 ok($ret, "Question CF created: $msg");
36 ($ret, $msg) = $bodyCF->Create('Name' => 'Body-'.$$,
39 'LookupType' => 'RT::Class-RT::Article',
40 'Description' => 'The body to the subject',
42 ok($ret, "Answer CF created: $msg");
43 my ($sid, $bid) = ($subjectCF->Id, $bodyCF->Id);
45 # Attach the custom fields to our class
46 ($ret, $msg) = $subjectCF->AddToObject($class);
47 ok($ret, "Subject CF added to class: $msg");
48 ($ret, $msg) = $bodyCF->AddToObject($class);
49 ok($ret, "Body CF added to class: $msg");
51 my $article = RT::Article->new($RT::SystemUser);
52 ($ret, $msg) = $article->Create(Name => 'First article '.$$,
53 Summary => 'blah blah 1',
55 "CustomField-$bid" => 'This goes in the body',
56 "CustomField-$sid" => 'This clobbers your subject',
58 ok($ret, "article 1 created: $msg");
61 my $parser = RT::EmailParser->new();
62 $parser->ParseMIMEEntityFromScalar('From: root@localhost
64 Subject: test ticket for articles
66 This is some form of new request.
67 May as well say something about Africa.');
69 my $ticket = RT::Ticket->new($RT::SystemUser);
71 ($ret, $obj, $msg) = $ticket->Create(Queue => 'General',
72 Subject => 'test ticket for articles '.$$,
73 MIMEObj => $parser->Entity);
74 ok($ret, "Test ticket for articles created: $msg");
77 #### Right. That's our data. Now begin the real testing.
79 my ($url, $m) = RT::Test->started_ok;
80 ok($m->login, 'logged in');
82 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket->id,
83 'ticket update page' );
84 is($m->form_number(3)->find_input('UpdateSubject')->value,$ticket->Subject,'Ticket Subject Found');
87 fields => { 'Articles-Include-Article-Named' => $article->Id },
90 is($m->form_number(3)->find_input('UpdateSubject')->value,$ticket->Subject,'Ticket Subject Not Clobbered');
92 $m->get_ok("$url/Admin/Articles/Classes/");
93 $m->follow_link_ok( { text => 'TestClass-'.$$ } );
96 fields => { SubjectOverride => $sid },
98 $m->content_contains("Added Subject Override: Subject-$$");
100 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket->id,
101 'ticket update page' );
102 is($m->form_number(3)->find_input('UpdateSubject')->value,$ticket->Subject,'Ticket Subject Found');
105 fields => { 'Articles-Include-Article-Named' => $article->Name },
108 is($m->form_number(3)->find_input('UpdateSubject')->value,$article->FirstCustomFieldValue("Subject-$$"),'Ticket Subject Clobbered');