RT 4.0.22
[freeside.git] / rt / t / web / admin_queue_lifecycle.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 13;
5
6 my $lifecycles = RT->Config->Get('Lifecycles');
7 RT->Config->Set( Lifecycles => %{$lifecycles},
8                  foo => {
9                      initial  => ['initial'],
10                      active   => ['open'],
11                      inactive => ['resolved'],
12                  }
13 );
14
15 RT::Lifecycle->FillCache();
16
17 my ( $url, $m ) = RT::Test->started_ok;
18 ok( $m->login(), 'logged in' );
19
20 $m->get_ok( $url . '/Admin/Queues/Modify.html?id=1' );
21
22 my $form            = $m->form_name('ModifyQueue');
23 my $lifecycle_input = $form->find_input('Lifecycle');
24 is( $lifecycle_input->value, 'default', 'default lifecycle' );
25
26 my @lifecycles = sort $lifecycle_input->possible_values;
27 is_deeply( \@lifecycles, [qw/approvals default foo/], 'found all lifecycles' );
28
29 $m->submit_form();
30 $m->content_lacks( 'Lifecycle changed from',
31     'no message of "Lifecycle changed from"' );
32 $m->content_lacks( 'That is already the current value',
33     'no message of "That is already the current value"' );
34
35 $form = $m->form_name('ModifyQueue');
36 $m->submit_form( fields => { Lifecycle => 'foo' }, );
37 $m->content_contains(
38     'Lifecycle changed from "default" to "foo"');
39 $lifecycle_input = $form->find_input('Lifecycle');
40 is( $lifecycle_input->value, 'foo', 'lifecycle is changed to foo' );
41
42 $form = $m->form_name('ModifyQueue');
43 $m->submit_form( fields => { Lifecycle => 'default' }, );
44 $m->content_contains(
45     'Lifecycle changed from "foo" to "default"');
46 $lifecycle_input = $form->find_input('Lifecycle');
47 is( $lifecycle_input->value, 'default',
48     'lifecycle is changed back to default' );
49