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