Alex 'AdUser' Z
6 years ago
1 changed files with 85 additions and 0 deletions
@ -0,0 +1,85 @@
|
||||
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; |
Loading…
Reference in new issue