fix ticketing system error on bootstrap of new install
[freeside.git] / rt / t / web / transaction_batch.t
1 use strict;
2 use warnings;
3 use RT;
4 use RT::Test tests => 12;
5
6
7 my $q = RT::Test->load_or_create_queue ( Name => 'General' );
8
9 my $s1 = RT::Scrip->new(RT->SystemUser);
10 my ($val, $msg) =$s1->Create( Queue => $q->Id,
11              ScripCondition    => 'User Defined',
12              ScripAction       => 'User Defined',
13              CustomIsApplicableCode => 'return ($self->TransactionObj->Field||"") eq "TimeEstimated"',
14              CustomPrepareCode => 'return 1',
15              CustomCommitCode  => '
16 if ( $self->TicketObj->CurrentUser->Name ne "RT_System" ) { 
17     warn "Ticket obj has incorrect CurrentUser (should be RT_System) ".$self->TicketObj->CurrentUser->Name
18 }
19 if ( $self->TicketObj->QueueObj->CurrentUser->Name ne "RT_System" ) { 
20     warn "Queue obj has incorrect CurrentUser (should be RT_System) ".$self->TicketObj->QueueObj->CurrentUser->Name
21 }
22 $self->TicketObj->SetPriority($self->TicketObj->Priority + 2); return 1;',
23              Template          => 'Blank',
24              Stage             => 'TransactionBatch',
25     );
26 ok($val,$msg);
27
28 my $ticket = RT::Ticket->new(RT->SystemUser);
29 my ($tv,$ttv,$tm) = $ticket->Create(Queue => $q->Id,
30                                     Subject => "hair on fire",
31                                     );
32 ok($tv, $tm);
33
34 # Flush the Create transaction off of the ticket
35 $ticket->ApplyTransactionBatch;
36
37 my $testuser = RT::Test->load_or_create_user( Name => 'bob', EmailAddress => 'bob@example.com', Password => 'password' );
38 ok($testuser->Id, "Created test user bob");
39
40 ok( RT::Test->add_rights({ Principal => 'Privileged', Right => [qw(ShowTicket ModifyTicket SeeQueue)]}), 'Granted ticket management rights');
41
42 my $test_current_user = RT::CurrentUser->new();
43 $test_current_user->LoadByName($testuser->Name);
44 my $api_test = RT::Ticket->new($test_current_user);
45 $api_test->Load($ticket->Id);
46 is($api_test->Priority,0,"Ticket priority starts at 0");
47 $api_test->SetTimeEstimated(12);
48 $api_test->ApplyTransactionBatch;
49 is($api_test->CurrentUser->UserObj->Name, $testuser->Name,"User didn't change running Transaction Batch scrips");
50 $api_test->Load($api_test->Id);
51 is($api_test->Priority,2,"Ticket priority updated");
52
53 my ($baseurl, $m) = RT::Test->started_ok;
54 $m->login('bob','password');
55 $m->get_ok("$baseurl/Ticket/Modify.html?id=".$ticket->Id);
56     $m->submit_form( form_name => 'TicketModify',
57         fields => { TimeEstimated => 5 }
58     );
59
60
61 $ticket->Load($ticket->Id);
62 is ($ticket->Priority , 4, "Ticket priority is set right");