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