RT 4.0.22
[freeside.git] / rt / t / web / offline_utf8.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 9;
5
6 use RT::Ticket;
7 my $file = File::Spec->catfile( RT::Test->temp_directory, 'template' );
8 open my $fh, '>', $file or die $!;
9 my $template = Encode::decode("UTF-8",<<EOF);
10 ===Create-Ticket: ticket1
11 Queue: General
12 Subject: 标题
13 Status: new
14 Content: 
15 这是正文
16 ENDOFCONTENT
17 EOF
18
19 print $fh Encode::encode("UTF-8",$template);
20 close $fh;
21
22 my ( $url, $m ) = RT::Test->started_ok;
23 ok( $m->login, 'logged in' );
24
25 $m->get_ok( $url . '/Tools/Offline.html' );
26
27 $m->submit_form(
28     form_name => 'TicketUpdate',
29     fields    => { Template => $file, },
30     button    => 'Parse',
31 );
32
33 $m->content_contains( Encode::decode("UTF-8",'这是正文'), 'content is parsed right' );
34
35 $m->submit_form(
36     form_name => 'TicketUpdate',
37     button    => 'UpdateTickets',
38
39     # mimic what browsers do: they seems decoded $template
40     fields    => { string => $template },
41 );
42
43 $m->content_like( qr/Ticket \d+ created/, 'found ticket created message' );
44 my ( $ticket_id ) = $m->content =~ /Ticket (\d+) created/;
45
46 my $ticket = RT::Ticket->new( RT->SystemUser );
47 $ticket->Load( $ticket_id );
48 is( $ticket->Subject, Encode::decode("UTF-8",'标题'), 'subject in $ticket is right' );
49
50 $m->goto_ticket($ticket_id);
51 $m->content_contains( Encode::decode("UTF-8",'这是正文'),
52     'content is right in ticket display page' );
53