aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authordakkar <dakkar@luxion>2006-02-05 12:06:03 +0000
committerdakkar <dakkar@luxion>2006-02-05 12:06:03 +0000
commitdb452b9c13b515ebbac72e30019bba6e46131544 (patch)
treeba5d140124823a118ed3f0a18650e40d5419fc09 /t
parentspostate le collection fuori da config:: (diff)
downloadWebCoso-db452b9c13b515ebbac72e30019bba6e46131544.tar.gz
WebCoso-db452b9c13b515ebbac72e30019bba6e46131544.tar.bz2
WebCoso-db452b9c13b515ebbac72e30019bba6e46131544.zip
step di split lingue per ReST
git-svn-id: svn://luxion/repos/WebCoso/trunk@153 fcb26f47-9200-0410-b104-b98ab5b095f3
Diffstat (limited to 't')
-rw-r--r--t/steps/rest-splitlang.t94
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');