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
|
use strict;
use warnings;
use RT::Test tests => undef;
my ($base, $m) = RT::Test->started_ok;
ok $m->login, 'logged in';
my @tickets;
diag "create a ticket via the API";
{
my $ticket = RT::Ticket->new( RT->SystemUser );
my ($id, $txn, $msg) = $ticket->Create(
Queue => 'General',
Subject => Encode::decode("UTF-8",'bad subject‽'),
);
ok $id, 'created a ticket #'. $id or diag "error: $msg";
is $ticket->Subject, Encode::decode("UTF-8",'bad subject‽'), 'correct subject';
push @tickets, $id;
}
diag "create a ticket via the web";
{
$m->submit_form_ok({
form_name => "CreateTicketInQueue",
fields => { Queue => 1 },
}, 'create ticket in Queue');
$m->submit_form_ok({
with_fields => {
Subject => Encode::decode("UTF-8",'bad subject #2‽'),
},
}, 'create ticket');
$m->content_contains(Encode::decode("UTF-8",'bad subject #2‽'), 'correct subject');
push @tickets, 2;
}
diag "create a ticket via the web without a unicode subject";
{
$m->submit_form_ok({
with_fields => { Queue => 1 },
}, 'create ticket in Queue');
$m->submit_form_ok({
with_fields => {
Subject => 'a fine subject #3',
},
}, 'create ticket');
$m->content_contains('a fine subject #3', 'correct subject');
push @tickets, 3;
}
for my $tid (@tickets) {
diag "ticket #$tid";
diag "add a reply which adds to the subject, but without an attachment";
{
$m->goto_ticket($tid);
$m->follow_link_ok({ id => 'page-actions-reply' }, "Actions -> Reply");
$m->submit_form_ok({
with_fields => {
UpdateSubject => Encode::decode("UTF-8",'bad subject‽ without attachment'),
UpdateContent => 'testing unicode txn subjects',
},
button => 'SubmitTicket',
}, 'submit reply');
$m->content_contains(Encode::decode("UTF-8",'bad subject‽ without attachment'), "found txn subject");
}
diag "add a reply which adds to the subject with an attachment";
{
$m->goto_ticket($tid);
$m->follow_link_ok({ id => 'page-actions-reply' }, "Actions -> Reply");
$m->submit_form_ok({
with_fields => {
UpdateSubject => Encode::decode("UTF-8",'bad subject‽ with attachment'),
UpdateContent => 'testing unicode txn subjects',
Attach => RT::Test::get_relocatable_file('bpslogo.png', '..', 'data'),
},
button => 'SubmitTicket',
}, 'submit reply');
$m->content_contains(Encode::decode("UTF-8",'bad subject‽ with attachment'), "found txn subject");
}
}
undef $m;
done_testing;
|