You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.3 KiB
66 lines
1.3 KiB
use strict; |
|
use warnings; |
|
|
|
use Test::More tests => 43; |
|
|
|
use Subtitle::Format::SSA::Header; |
|
|
|
my $sample = <<"EOF"; |
|
[Script Info] |
|
; Script generated by Aegisub 2.1.9 |
|
; http://www.aegisub.org/ |
|
Title: Some title |
|
ScriptType: v4.00+ |
|
WrapStyle: 0 |
|
PlayResX: 1280 |
|
PlayResY: 720 |
|
ScaledBorderAndShadow: yes |
|
Video Aspect Ratio: 0 |
|
Video Zoom: 4 |
|
Video Position: 11787 |
|
Original Translation: Some author |
|
Original Editing: Some corrector |
|
Collisions: Normal |
|
Last Style Storage: Some style |
|
Audio File: ?video |
|
EOF |
|
|
|
my @headers; |
|
my @lines = split /\n/, $sample; |
|
splice @lines, 0, 3; # skip section header and comments |
|
foreach my $line (@lines) { |
|
my $header = Subtitle::Format::SSA::Header->new; |
|
ok($header->parse($line), "line parsing"); |
|
my ($name, $value) = split(": ", $line, 2); |
|
is($header->{name} => $name); |
|
is($header->{value} => $value); |
|
my $key = $header->hash_key(); |
|
push @headers, $header; |
|
} |
|
|
|
$sample = <<"EOF"; |
|
Title: Some title |
|
ScriptType: v4.00+ |
|
WrapStyle: 0 |
|
PlayResX: 1280 |
|
PlayResY: 720 |
|
ScaledBorderAndShadow: yes |
|
Video Aspect Ratio: 0 |
|
Video Zoom: 4 |
|
Video Position: 11787 |
|
Original Translation: Some author |
|
Original Editing: Some corrector |
|
Collisions: Normal |
|
Last Style Storage: Some style |
|
Audio File: ?video |
|
EOF |
|
|
|
@lines = (); |
|
foreach my $h (@headers) { |
|
push @lines, $h->to_string(); |
|
} |
|
my $out = join("\n" => @lines) . "\n"; |
|
|
|
is($sample => $out); |
|
|
|
exit 0;
|
|
|