diff options
Diffstat (limited to 't')
-rw-r--r-- | t/steps/rest-splitlang.t | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/t/steps/rest-splitlang.t b/t/steps/rest-splitlang.t new file mode 100644 index 0000000..c964b1c --- /dev/null +++ b/t/steps/rest-splitlang.t @@ -0,0 +1,94 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Path::Class; +use Test::More 'no_plan'; +use Test::Differences; +use WebCoso::Resource; + +BEGIN {use_ok('WebCoso::Step::ReST::SplitLang')} +my $step=WebCoso::Step::ReST::SplitLang->new(); + +sub make_res { + my ($rst_doc)=@_; + + my $resource=WebCoso::Resource->new(); + open my $rst_fh,'<',\$rst_doc; + $resource->set_property({filename=>'mydoc.rest.txt'},datastream=>$rst_fh); + + return $resource; +} + +my $resource=make_res(<<'END_REST'); +riga comune +.. lang:: +ancora comune +.. lang:: it +italiano +.. lang:: en +inglese + .. lang:: + any nested +.. lang:: it +italiano ancora +.. lang:: +comune (con spazi) +END_REST + + +$step->process($resource,'gen'); +is_deeply([$resource->get_axes()], + ['filename'], + 'no action on second pass'); + +$step->process($resource,'meta'); + +is_deeply([sort $resource->get_axes()], + ['filename','language'], + 'action on first pass'); +is_deeply([sort $resource->get_axis_values('language')], + ['en','it'], + 'lingue giuste'); +eq_or_diff($resource->get_property({language=>'it'},'rstdoc'),<<'END_REST_IT','italiano'); +riga comune +ancora comune +italiano + any nested +italiano ancora +comune (con spazi) +END_REST_IT + +eq_or_diff($resource->get_property({language=>'en'},'rstdoc'),<<'END_REST_EN','inglese'); +riga comune +ancora comune +inglese + any nested +comune (con spazi) +END_REST_EN + +my $rst_doc=<<'END_REST'; +tutto a comune +monolingua +END_REST + +$resource=make_res($rst_doc); + +$step->process($resource,'meta'); +is_deeply([$resource->get_axes()], + ['filename'], + 'monolingua'); +eq_or_diff($resource->get_property('rstdoc'),$rst_doc,'monolingua cat'); + +$rst_doc=<<'END_REST'; +.. lang:: +tutto a comune +monolingua +END_REST + +$resource=make_res($rst_doc); + +$step->process($resource,'meta'); +is_deeply([$resource->get_axes()], + ['filename'], + 'monolingua 2'); +eq_or_diff($resource->get_property('rstdoc'),$rst_doc,'monolingua 2 cat'); |