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.
85 lines
2.2 KiB
85 lines
2.2 KiB
use strict; |
|
use warnings; |
|
|
|
use Test::More tests => 14; |
|
|
|
use Subtitle::Format::SMI; |
|
|
|
my $smi = Subtitle::Format::SMI->new(debug => 1); |
|
is(ref $smi, 'Subtitle::Format::SMI'); |
|
can_ok($smi, qw(new parse build)); |
|
|
|
my $sample = <<"EOF"; |
|
<SAMI> |
|
<HEAD> |
|
<TITLE>Title</TITLE> |
|
<SAMIPARAM><!-- Length: 63 --></SAMIPARAM> |
|
<STYLE Type="text/css"><!-- |
|
P {margin-left: 2pt; margin-right: 2pt; font-size: 12pt; } |
|
.SCC {Name: 'Some lang'; lang: ru; } |
|
--></STYLE> |
|
</HEAD> |
|
<BODY> |
|
<TABLE> |
|
<SYNC START=12> |
|
<P Class=SCC> |
|
First event<BR> |
|
Another line |
|
<SYNC START=20> |
|
<P Class=SCC> |
|
|
|
<SYNC START=30> |
|
<P Class=SCC>Second event |
|
<SYNC START=40> |
|
<P Class=SCC> |
|
<SYNC START=50> |
|
<P Class=SCC>No 'empty' event to hide this<br> |
|
show till end-of-file |
|
</TABLE> |
|
</BODY> |
|
</SAMI> |
|
EOF |
|
|
|
my $cnt = $smi->from_string($sample); |
|
is($cnt, 3); |
|
is($smi->{style}, "P {margin-left: 2pt; margin-right: 2pt; font-size: 12pt; }\n.SCC {Name: 'Some lang'; lang: ru; }"); |
|
|
|
my @events = $smi->events; |
|
is($events[0]->t_start, 12); |
|
is($events[0]->t_end, 20); |
|
is($events[0]->text, "First event\\nAnother line"); |
|
is($events[1]->t_start, 30); |
|
is($events[1]->t_end, 40); |
|
is($events[1]->text, "Second event"); |
|
is($events[2]->t_start, 50); |
|
is($events[2]->t_end, 63); # from samiparam/length |
|
is($events[2]->text, "No 'empty' event to hide this\\nshow till end-of-file"); |
|
|
|
$sample = <<"EOF"; |
|
<sami> |
|
<head> |
|
<title>Title</title> |
|
<samiparam><!-- Length: 63 --></samiparam> |
|
<style type="text/css"><!-- |
|
P {margin-left: 2pt; margin-right: 2pt; font-size: 12pt; } |
|
.SCC {Name: 'Some lang'; lang: ru; } |
|
--></style> |
|
</head> |
|
<body> |
|
<table> |
|
<sync start=12><p class=scc>First event<br>Another line</p></sync> |
|
<sync start=20><p> </p></sync> |
|
<sync start=30><p class=scc>Second event</p></sync> |
|
<sync start=40><p> </p></sync> |
|
<sync start=50><p class=scc>No 'empty' event to hide this<br>show till end-of-file</p></sync> |
|
<sync start=63><p> </p></sync> |
|
</table> |
|
</body> |
|
</sami> |
|
EOF |
|
is($smi->build, $sample); |
|
use File::Slurp; |
|
write_file('1.txt', $smi->build); |
|
write_file('2.txt', $sample); |
|
|
|
exit 0;
|
|
|