File: admin_queue_lifecycle.t

package info (click to toggle)
request-tracker5 5.0.7%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 80,216 kB
  • sloc: javascript: 191,898; perl: 87,146; sh: 1,412; makefile: 487; python: 37; php: 15
file content (92 lines) | stat: -rw-r--r-- 3,106 bytes parent folder | download | duplicates (2)
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;