1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
use strict;
use warnings;
use RT::Test tests => undef;
use Test::Warn;
my $lifecycles = RT->Config->Get('Lifecycles');
RT->Config->Set( Lifecycles => %{$lifecycles},
foo => {
initial => ['initial'],
active => ['open'],
inactive => ['resolved'],
}
);
RT::Lifecycle->FillCache();
my ( $url, $m ) = RT::Test->started_ok;
ok( $m->login(), 'logged in' );
$m->get_ok( $url . '/Admin/Queues/Modify.html?id=1' );
my $form = $m->form_name('ModifyQueue');
my $lifecycle_input = $form->find_input('Lifecycle');
is( $lifecycle_input->value, 'default', 'default lifecycle' );
my @lifecycles = sort $lifecycle_input->possible_values;
is_deeply( \@lifecycles, [qw/default foo/], 'found all lifecycles' );
$m->submit_form();
$m->content_lacks( 'Lifecycle changed from',
'no message of "Lifecycle changed from"' );
$m->content_lacks( 'That is already the current value',
'no message of "That is already the current value"' );
$form = $m->form_name('ModifyQueue');
$m->submit_form( fields => { Lifecycle => 'foo' }, );
$m->content_contains(
'Lifecycle changed from "default" to "foo"');
$lifecycle_input = $form->find_input('Lifecycle');
is( $lifecycle_input->value, 'foo', 'lifecycle is changed to foo' );
$form = $m->form_name('ModifyQueue');
$m->submit_form( fields => { Lifecycle => 'default' }, );
$m->content_contains(
'Lifecycle changed from "foo" to "default"');
$lifecycle_input = $form->find_input('Lifecycle');
is( $lifecycle_input->value, 'default',
'lifecycle is changed back to default' );
RT::Test->stop_server;
RT->Config->Set(
Lifecycles => %{$lifecycles},
foo => {
initial => ['initial'],
active => ['open'],
inactive => ['resolved'],
},
bar => {
initial => ['initial'],
active => ['open'],
inactive => ['resolved'],
},
);
RT::Lifecycle->FillCache();
( $url, $m ) = RT::Test->started_ok;
ok( $m->login(), 'logged in' );
$m->get_ok( $url . '/Admin/Queues/Modify.html?id=1' );
$form = $m->form_name('ModifyQueue');
$m->submit_form( fields => { Lifecycle => 'bar' }, );
$m->text_contains(q{Lifecycle changed from "default" to "bar"});
$lifecycle_input = $form->find_input('Lifecycle');
is( $lifecycle_input->value, 'bar', 'lifecycle is changed to bar' );
RT::Test->stop_server;
RT->Config->Set( Lifecycles => %$lifecycles );
warning_like {
RT::Lifecycle->FillCache();
} qr/Lifecycle bar is missing in %Lifecycles config/;
( $url, $m ) = RT::Test->started_ok;
ok( $m->login(), 'logged in' );
$m->get_ok( $url . '/Admin/Queues/Modify.html?id=1' );
$m->next_warning_like(qr/Unable to load lifecycle for bar/, 'warning of missing lifecycle bar');
$form = $m->form_name('ModifyQueue');
$m->submit_form( fields => { Lifecycle => 'default' }, );
$m->text_contains(q{Lifecycle changed from "bar" to "default"});
$lifecycle_input = $form->find_input('Lifecycle');
is( $lifecycle_input->value, 'default', 'lifecycle is changed to default' );
done_testing;
|