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