summaryrefslogtreecommitdiff
path: root/rt/t/web/rest-non-ascii-subject.t
blob: 371b2ffc0ad96881871ca5ae98c68898974b015f (plain)
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
#!/usr/bin/env perl
# Test ticket creation with REST using non ascii subject
use strict;
use warnings;
use RT::Test tests => 7;

local $RT::Test::SKIP_REQUEST_WORK_AROUND = 1;

use Encode;
# \x{XX} where XX is less than 255 is not treated as unicode code point
my $subject = Encode::decode('latin1', "Sujet accentu\x{e9}");
my $text = Encode::decode('latin1', "Contenu accentu\x{e9}");

my ($baseurl, $m) = RT::Test->started_ok;

my $queue = RT::Test->load_or_create_queue(Name => 'General');
ok($queue->Id, "loaded the General queue");

my $content = "id: ticket/new
Queue: General
Requestor: root
Subject: $subject
Cc:
AdminCc:
Owner:
Status: new
Priority:
InitialPriority:
FinalPriority:
TimeEstimated:
Starts: 2009-03-10 16:14:55
Due: 2009-03-10 16:14:55
Text: $text";

$m->post("$baseurl/REST/1.0/ticket/new", [
    user    => 'root',
    pass    => 'password',
# error message from HTTP::Message: content must be bytes
    content => Encode::encode_utf8($content),
], Content_Type => 'form-data' );

my ($id) = $m->content =~ /Ticket (\d+) created/;
ok($id, "got ticket #$id");

my $ticket = RT::Ticket->new($RT::SystemUser);
$ticket->Load($id);
is($ticket->Id, $id, "loaded the REST-created ticket");
is($ticket->Subject, $subject, "ticket subject successfully set");

my $attach = $ticket->Transactions->First->Attachments->First;
is($attach->Subject, $subject, "attachement subject successfully set");
is($attach->GetHeader('Subject'), $subject, "attachement header subject successfully set");