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
|
use strict;
use warnings;
use RT::Test tests => 'no_declare';
my $content = join ' ', ('The quick brown fox jumps over the lazy dog.') x 5;
$content = join "\n\n", $content, $content, $content;
my ($base, $m) = RT::Test->started_ok;
$m->login;
my $ticket = RT::Test->create_ticket(
Queue => 1,
Subject => 'a test ticket',
);
ok $ticket && $ticket->id, "Created ticket";
my $EditUrl = "/Ticket/Modify.html?id=" . $ticket->id;
my $cfs = {
area => {
type => 'Text',
name => 'TheTextarea',
},
text => {
type => 'FreeformSingle',
name => 'TheControlField',
},
};
while ( my( $label, $data ) = each %$cfs ) {
my $cf = $data->{obj} = RT::Test->load_or_create_custom_field(
Name => $data->{name},
Type => $data->{type},
Queue => 0,
LookupType => 'RT::Queue-RT::Ticket',
);
ok $cf && $cf->id, "Created $data->{type} CF";
# get cf input field name
$data->{input} = RT::Interface::Web::GetCustomFieldInputName(
Object => $ticket,
CustomField => $cf,
);
}
# open ticket "Basics" page
$m->get_ok($EditUrl, "Fetched $EditUrl");
$m->content_contains($_->{name} . ':') for ( values %$cfs );
$m->submit_form_ok({
with_fields => {
$cfs->{area}{input} => $content,
$cfs->{area}{input} . '-Magic' => "1",
$cfs->{text}{input} => 'value a',
$cfs->{text}{input} . '-Magic' => "1",
},
}, 'submitted form to initially set CFs');
$m->content_contains('<li>TheControlField value a added</li>');
$m->content_contains("<li>TheTextarea $content added</li>", 'content found');
# http://issues.bestpractical.com/Ticket/Display.html?id=30378
# #30378: RT 4.2.6 - Very long text fields get updated even when they haven't changed
$m->submit_form_ok({
with_fields => {
$cfs->{text}{input} => 'value b',
$cfs->{text}{input} . '-Magic' => "1",
},
}, 'submitted form to initially set CFs');
$m->content_contains('<li>TheControlField value a changed to value b</li>');
$m->content_lacks("<li>TheTextarea $content changed to $content</li>", 'textarea wasnt updated');
undef $m;
done_testing;
|