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