first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / gnupg-tickyboxes.t
1 #!/usr/bin/perl -w
2 use strict;
3 use warnings;
4
5 use RT::Test::GnuPG tests => 22, gnupg_options => { passphrase => 'rt-test' };
6
7 use RT::Action::SendEmail;
8
9 RT::Test->import_gnupg_key('rt-recipient@example.com');
10 RT::Test->import_gnupg_key('rt-test@example.com', 'public');
11
12 my $queue = RT::Test->load_or_create_queue(
13     Name              => 'Regression',
14     CorrespondAddress => 'rt-recipient@example.com',
15     CommentAddress    => 'rt-recipient@example.com',
16 );
17 ok $queue && $queue->id, 'loaded or created queue';
18
19 my ($baseurl, $m) = RT::Test->started_ok;
20 ok $m->login, 'logged in';
21
22 my @variants = (
23     {},
24     { Sign => 1 },
25     { Encrypt => 1 },
26     { Sign => 1, Encrypt => 1 },
27 );
28
29 # collect emails
30 my %mail = (
31     plain            => [],
32     signed           => [],
33     encrypted        => [],
34     signed_encrypted => [],
35 );
36
37 diag "check in read-only mode that queue's props influence create/update ticket pages";
38 {
39     foreach my $variant ( @variants ) {
40         set_queue_crypt_options( $queue =>  %$variant );
41         $m->goto_create_ticket( $queue );
42         $m->form_name('TicketCreate');
43         if ( $variant->{'Encrypt'} ) {
44             ok $m->value('Encrypt', 2), "encrypt tick box is checked";
45         } else {
46             ok !$m->value('Encrypt', 2), "encrypt tick box is unchecked";
47         }
48         if ( $variant->{'Sign'} ) {
49             ok $m->value('Sign', 2), "sign tick box is checked";
50         } else {
51             ok !$m->value('Sign', 2), "sign tick box is unchecked";
52         }
53     }
54
55     # to avoid encryption/signing during create
56     set_queue_crypt_options($queue);
57
58     my $ticket = RT::Ticket->new( RT->SystemUser );
59     my ($id) = $ticket->Create(
60         Subject   => 'test',
61         Queue     => $queue->id,
62         Requestor => 'rt-test@example.com',
63     );
64     ok $id, 'ticket created';
65
66     foreach my $variant ( @variants ) {
67         set_queue_crypt_options( $queue => %$variant );
68         $m->get( $m->rt_base_url . "/Ticket/Update.html?Action=Respond&id=$id" );
69         $m->form_name('TicketUpdate');
70         if ( $variant->{'Encrypt'} ) {
71             ok $m->value('Encrypt', 2), "encrypt tick box is checked";
72         } else {
73             ok !$m->value('Encrypt', 2), "encrypt tick box is unchecked";
74         }
75         if ( $variant->{'Sign'} ) {
76             ok $m->value('Sign', 2), "sign tick box is checked";
77         } else {
78             ok !$m->value('Sign', 2), "sign tick box is unchecked";
79         }
80     }
81 }
82
83
84