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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
use strict;
use warnings;
use RT::Test tests => undef;
my $ticket = RT::Test->create_ticket(
Subject => 'test ticket basics',
Queue => 1,
);
my ( $url, $m ) = RT::Test->started_ok;
ok( $m->login, 'logged in' );
my $root = RT::Test->load_or_create_user( Name => 'root' );
# Failing test where the time units are not preserved when you
# click 'Add more files' on Display
my @form_tries = (
{Subject => "hello rt"},
{Status => "open"},
{Owner => $root->id},
(
map +{
"Time$_" => undef,
"Time$_-TimeUnits" => 'hours',
}, qw/Estimated Worked Left/
),
(
map +{
"Time$_" => '1',
"Time$_-TimeUnits" => 'hours',
}, qw/Estimated Worked Left/
),
{InitialPriority => "10"},
{FinalPriority => "10"},
);
for my $try (@form_tries) {
$m->goto_create_ticket(1);
$m->form_name('TicketCreate');
$m->set_fields(%$try);
$m->click('AddMoreAttach');
$m->form_name('TicketCreate');
for my $field (keys %$try) {
is(
$m->value($field),
defined($try->{$field}) ? $try->{$field} : '',
"field $field is the same after the form was submitted"
);
}
}
# Test for time unit preservation in Jumbo
for my $try (@form_tries) {
my $jumbo_ticket = RT::Test->create_ticket(
Subject => 'test jumbo ticket basics',
Queue => 1,
);
local($try->{Priority}) = delete local($try->{InitialPriority})
if exists $try->{InitialPriority};
$m->get( $url . "/Ticket/ModifyAll.html?id=" . $jumbo_ticket->id );
$m->form_name('TicketModifyAll');
$m->set_fields(%$try);
$m->click('AddMoreAttach');
$m->form_name('TicketModifyAll');
for my $field (keys %$try) {
is(
$m->value($field),
defined($try->{$field}) ? $try->{$field} : '',
"field $field is the same after the Jumbo form was submitted"
);
}
}
my $cf = RT::Test->load_or_create_custom_field(
Name => 'CF1',
Type => 'Freeform',
Pattern => '.', # mandatory
Queue => 'General',
);
# More time unit testing by a failing CF validation
$m->get_ok($url.'/Admin/CustomFields/Objects.html?id='.$cf->id);
$m->form_with_fields('UpdateObjs');
$m->tick('AddCustomField-'.$cf->id => '0'); # Make CF global
$m->click('UpdateObjs');
$m->text_contains('Object created', 'CF applied globally');
# Test for preservation when a ticket is submitted and CF validation fails
for my $try (@form_tries) {
$m->goto_create_ticket(1);
$m->form_name('TicketCreate');
$m->set_fields(%$try);
$m->submit();
$m->form_name('TicketCreate');
for my $field (keys %$try) {
is(
$m->value($field),
defined($try->{$field}) ? $try->{$field} : '',
"field $field is the same after the form was submitted"
);
}
}
undef $m;
done_testing();
|