first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / reminders.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use RT::Test tests => 35;
5
6 my ($baseurl, $m) = RT::Test->started_ok;
7
8 ok($m->login, 'logged in');
9 my $user = RT::CurrentUser->new('root');
10
11 my $ticket = RT::Ticket->new($user);
12 $ticket->Create(Subject => 'testing reminders!', Queue => 'General');
13 ok($ticket->id, 'created a ticket');
14
15 $m->goto_ticket($ticket->id);
16 $m->text_contains('New reminder:', 'can create a new reminder');
17 $m->content_unlike(qr{Check box to complete}, "we don't display this text when there are no reminders");
18 $m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
19
20 $m->follow_link_ok({id => 'page-reminders'});
21 $m->title_is("Reminders for ticket #" . $ticket->id);
22 $m->text_contains('New reminder:', 'can create a new reminder');
23 $m->content_unlike(qr{Check box to complete}, "we don't display this text when there are no reminders");
24 $m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
25
26 $m->goto_ticket($ticket->id);
27 $m->form_name('UpdateReminders');
28 $m->field( 'NewReminder-Subject' => "baby's first reminder" );
29 $m->submit;
30
31 my $reminders = RT::Reminders->new($user);
32 $reminders->Ticket($ticket->id);
33 my $col = $reminders->Collection;
34 is($col->Count, 1, 'got a reminder');
35 my $reminder = $col->First;
36 is($reminder->Subject, "baby's first reminder");
37 my $reminder_id = $reminder->id;
38 is($reminder->Status, 'new');
39
40 $m->text_contains('New reminder:', 'can create a new reminder');
41 $m->text_contains('Check box to complete', "we DO display this text when there are reminders");
42 $m->content_like(qr{<th[^>]*>Reminders?</th>}, "now we have a reminder titlebar");
43 $m->text_contains("baby's first reminder", "display the reminder's subject");
44
45 $m->follow_link_ok({id => 'page-reminders'});
46 $m->title_is("Reminders for ticket #" . $ticket->id);
47 $m->form_name('UpdateReminders');
48 $m->field("Reminder-Subject-$reminder_id" => "changed the subject");
49 $m->submit;
50
51 DBIx::SearchBuilder::Record::Cachable->FlushCache;
52 $reminder = RT::Ticket->new($user);
53 $reminder->Load($reminder_id);
54 is($reminder->Subject, 'changed the subject');
55 is($reminder->Status, 'new');
56
57 $m->goto_ticket($ticket->id);
58 $m->form_name('UpdateReminders');
59 $m->tick("Complete-Reminder-$reminder_id" => 1);
60 $m->submit;
61
62 DBIx::SearchBuilder::Record::Cachable->FlushCache;
63 $reminder = RT::Ticket->new($user);
64 $reminder->Load($reminder_id);
65 is($reminder->Status, 'resolved');
66
67 $m->text_contains('New reminder:', 'can create a new reminder');
68 $m->content_unlike(qr{Check box to complete}, "we don't display this text when there are open reminders");
69 $m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
70 $m->content_unlike(qr{baby's first reminder}, "we don't display resolved reminders");
71
72 $m->follow_link_ok({id => 'page-reminders'});
73 $m->title_is("Reminders for ticket #" . $ticket->id);
74 $m->text_contains('New reminder:', 'can create a new reminder');
75 $m->text_contains('Check box to complete', "we DO display this text when there are reminders");
76 $m->content_contains("changed the subject", "display the resolved reminder's subject");
77
78 # make sure that when we submit the form, it doesn't accidentally reopen
79 # resolved reminders
80 $m->goto_ticket($ticket->id);
81 $m->form_name('UpdateReminders');
82 $m->submit;
83
84 DBIx::SearchBuilder::Record::Cachable->FlushCache;
85 $reminder = RT::Ticket->new($user);
86 $reminder->Load($reminder_id);
87 is($reminder->Status, 'resolved');
88