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.
86 lines
2.2 KiB
86 lines
2.2 KiB
6 years ago
|
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;
|