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;