aboutsummaryrefslogtreecommitdiff
path: root/t/steps/rest-splitlang.t
blob: c964b1cfddb85af33b65283906094289a30cfcda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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');