From fce73c4f1cb1c3ebed4551e43108f3506bb66f51 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 17 Dec 2006 12:08:23 +0000 Subject: pulizia: si ricomincia (di nuovo...) git-svn-id: svn://luxion/repos/WebCoso/trunk@234 fcb26f47-9200-0410-b104-b98ab5b095f3 --- t/01-config.t | 300 ----------------------------------------- t/02-driver.t | 36 ----- t/03-pipeline.t | 53 -------- t/04-resource.t | 84 ------------ t/05-naming.t | 43 ------ t/lib/WebCoso/Pipeline/Test.pm | 29 ---- t/lib/WebCoso/Step/Step1.pm | 26 ---- t/lib/WebCoso/Step/Step2.pm | 26 ---- t/src/file1.rest.txt | 4 - t/steps/rest-splitlang.t | 103 -------------- t/steps/rest-xml.t | 156 --------------------- 11 files changed, 860 deletions(-) delete mode 100644 t/01-config.t delete mode 100644 t/02-driver.t delete mode 100644 t/03-pipeline.t delete mode 100644 t/04-resource.t delete mode 100644 t/05-naming.t delete mode 100644 t/lib/WebCoso/Pipeline/Test.pm delete mode 100644 t/lib/WebCoso/Step/Step1.pm delete mode 100644 t/lib/WebCoso/Step/Step2.pm delete mode 100644 t/src/file1.rest.txt delete mode 100644 t/steps/rest-splitlang.t delete mode 100644 t/steps/rest-xml.t (limited to 't') diff --git a/t/01-config.t b/t/01-config.t deleted file mode 100644 index 3e82cd2..0000000 --- a/t/01-config.t +++ /dev/null @@ -1,300 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; -use Path::Class; -use Test::More 'no_plan'; -use Test::Exception; - -my $thisdir=file($0)->parent->absolute; - -BEGIN { use_ok('WebCoso::Config'); } - -{ -my $conf_file=<<'EOF'; -res('src/file1.rest.txt','Id','dst/file.html'); -EOF - -ok(WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"), - 'eseguita la configurazione'); - -my @resources=WebCoso::Config->get_all_resources(); -is(scalar @resources,1,'una risorsa definta'); - -isa_ok($resources[0],'WebCoso::Resource'); -is_deeply( - [$resources[0]->get_axes()], - ['filename'], - 'un solo asse'); -is_deeply( - [$resources[0]->get_axis_values('filename')], - ["$thisdir/src/file1.rest.txt"], - 'filename'); -my $content=$resources[0]->get_property_string({filename=>"$thisdir/src/file1.rest.txt"},'datastream'); -is($content, - <<'EOF',''); -Titolo -====== - -testo -EOF -is_deeply( - [$resources[0]->get_collections()], - [], - 'no collections'); - -is(WebCoso::Config->get_pipeline_for($resources[0]), - 'WebCoso::Pipeline::Id', - 'si segna le pipeline'); - -throws_ok { - WebCoso::Config->get_pipeline_for('not-a-resource') - } - 'WebCoso::X::NoSuchResource', - 'muore se gli si chiede una risorsa ignota'; -} - -WebCoso::Config->clear(); - -{ -my $conf_file=<<'EOF'; -coll('coll1'); -EOF - -ok(WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"), - 'eseguita la configurazione'); - -is(scalar WebCoso::Config->get_all_resources(),0,'nessuna risorsa'); - -my $collections=WebCoso::Config->get_collections(); -isa_ok($collections,'WebCoso::Collections'); -my @collections=$collections->get_all_collections(); -is(scalar @collections,1,'una collezione'); - -is_deeply( - [$collections[0]->get_axes()], - ['language'], - 'multilingua'); -is_deeply( - [$collections[0]->get_axis_values('language')], - [], - 'ma nessuna definita'); -is_deeply( - [$collections->get_axes()], - ['language'], - 'multilingua, insieme'); -is_deeply( - [$collections->get_axis_values('language')], - [], - 'ma nessuna definita, insieme'); -my $props=$collections[0]->get_properties(language=>''); -isa_ok($props,'HASH'); -is_deeply( - $props, - {name=>'coll1'}, - 'solo il nome'); - -is_deeply( - [$collections[0]->get_parents()], - [], - 'no parents'); -is_deeply( - [$collections[0]->get_children()], - [], - 'no children'); -is_deeply( - [$collections[0]->get_resources()], - [], - 'no resources'); -is_deeply( - [$collections->get_root_collections()], - [@collections], - 'una radice'); -is_deeply( - [$collections->get_leaf_collections()], - [@collections], - 'una foglia'); -} - -WebCoso::Config->clear(); - -{ -my $conf_file=<<'EOF'; -my $c1=coll({it=>'coll1',en=>'coll1-en'}); -coll('coll2',[],[$c1]); -EOF - -ok(WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"), - 'eseguita la configurazione'); - -my $collections=WebCoso::Config->get_collections(); -my @collections=$collections->get_all_collections(); -is(scalar @collections,2,'due collezioni'); - -# qui sto assumendo che le collezioni vengano registrate in ordine di -# definizione. Forse non sarà sempre vero - -is_deeply( - [sort $collections[0]->get_axis_values('language')], - ['en', 'it'], - 'due lingue'); -is_deeply( - [sort $collections->get_axis_values('language')], - ['en', 'it'], - 'due lingue'); -is( - $collections[0]->get_properties(language=>'en')->{name}, - 'coll1-en', - 'nome en'); -is( - $collections[0]->get_properties(language=>'it')->{name}, - 'coll1', - 'nome it'); -is( - $collections[1]->get_properties(language=>'it')->{name}, - 'coll2', - 'nome default'); - -is_deeply( - [$collections[0]->get_parents()], - [$collections[1]], - 'c2 padre di c1'); -is_deeply( - [$collections[0]->get_children()], - [], - 'c1 no children'); -is_deeply( - [$collections[1]->get_parents()], - [], - 'c2 no parents'); -is_deeply( - [$collections[1]->get_children()], - [$collections[0]], - 'c1 figlio di c2'); -is_deeply( - [$collections->get_root_collections()], - [$collections[1]], - 'una radice'); -is_deeply( - [$collections->get_leaf_collections()], - [$collections[0]], - 'una foglia'); -} - -WebCoso::Config->clear(); - -{ -my $conf_file=<<'EOF'; -$c1=coll({it=>'coll1',en=>'coll1-en'}); -$c2=coll('coll2',[],[$c1]); -$c1->add_child($c2); -EOF - -ok(WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"), - 'eseguita la configurazione (no strict)'); - -my $collections=WebCoso::Config->get_collections(); -my @collections=$collections->get_all_collections(); -is(scalar @collections,2,'due collezioni'); - -is_deeply( - [$collections[1]->get_children()], - [$collections[0]], - 'c1 figlio di c2'); -is_deeply( - [$collections[0]->get_parents()], - [$collections[1]], - 'c2 padre di c1'); - is_deeply( - [$collections[0]->get_children()], - [$collections[1]], - 'c2 figlio di c1'); -is_deeply( - [$collections[1]->get_parents()], - [$collections[0]], - 'c1 padre di c2'); -is_deeply( - [$collections->get_root_collections()], - [], - 'nessuna radice'); -is_deeply( - [$collections->get_leaf_collections()], - [], - 'nessuna foglia'); -} - -WebCoso::Config->clear(); - -{ -my $conf_file=<<'EOF'; -$r1=res('src/file1.rest.txt','Id','dst/file.html'); -$c1=coll('coll1'); -$c1->add_res($r1); -EOF - -ok(WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"), - 'eseguita la configurazione (no strict)'); - -my @resources=WebCoso::Config->get_all_resources(); -my $collections=WebCoso::Config->get_collections(); -my @collections=$collections->get_all_collections(); - -is(scalar @resources,1,'una risorsa'); -is(scalar @collections,1,'una collezione'); -is_deeply( - [$resources[0]->get_collections()], - [$collections[0]], - 'aggancio r->c'); -is_deeply( - [$collections[0]->get_resources()], - [$resources[0]], - 'aggancio c->r'); -} - -WebCoso::Config->clear(); - -{ -my $conf_file=<<'EOF'; -$r1=res('src/file1.rest.txt','Id','dst/file.html'); -$c1=coll('coll1'); -$c2=coll('coll2'); -$c1->add_res($r1); -$r1->add_coll($c1); -$c2->add_res($r1); -EOF - -ok(WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"), - 'eseguita la configurazione (no strict)'); - -my @resources=WebCoso::Config->get_all_resources(); -my $collections=WebCoso::Config->get_collections(); -my @collections=$collections->get_all_collections(); - -is(scalar @resources,1,'una risorsa'); -is(scalar @collections,2,'due collezioni'); -is_deeply( - [sort $resources[0]->get_collections()], - [sort $collections[0],$collections[1]], - 'aggancio r->c'); -is_deeply( - [$collections[0]->get_resources()], - [$resources[0]], - 'aggancio c->r'); -is_deeply( - [$collections[1]->get_resources()], - [$resources[0]], - 'aggancio c->r'); -} - -WebCoso::Config->clear(); - -{ -my $conf_file=<<'EOF'; -res('src/file1.rest.txt','NoSuchPipeline','dst/file.html'); -EOF - -throws_ok { - WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test") - } - 'WebCoso::X::ConfigError', - 'muore se la pipeline è ignota'; -} diff --git a/t/02-driver.t b/t/02-driver.t deleted file mode 100644 index bdcf78b..0000000 --- a/t/02-driver.t +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; -use Path::Class; -use Test::More 'no_plan'; -use Test::Exception; -use lib 't/lib'; -use WebCoso::Config; - -my $thisdir=file($0)->parent->absolute; - -BEGIN { use_ok('WebCoso::Driver'); } - -my $conf_file=<<'EOF'; -res('src/file1.rest.txt','Test','dst/file.html'); -EOF - -WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"); - -ok(WebCoso::Driver->run(), 'il driver va'); - -my @calls=WebCoso::Pipeline::Test->get_calls(); -my @resources=WebCoso::Config->get_all_resources(); -is(scalar @calls,2,'due chiamate'); -is($calls[0]->{resource}, - $resources[0], - 'alla risorsa giusta (1)'); -is($calls[1]->{resource}, - $resources[0], - 'alla risorsa giusta (2)'); -is($calls[0]->{stage}, - 'meta', - 'stage1==meta'); -is($calls[1]->{stage}, - 'gen', - 'stage1==gen'); diff --git a/t/03-pipeline.t b/t/03-pipeline.t deleted file mode 100644 index a1b364b..0000000 --- a/t/03-pipeline.t +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; -use Path::Class; -use Test::More 'no_plan'; -use Test::Exception; -use lib 't/lib'; -use WebCoso::Config; -use WebCoso::Driver; -use WebCoso::Pipeline::Test; - -my $thisdir=file($0)->parent->absolute; - -my $conf_file=<<'EOF'; -res('src/file1.rest.txt','Test','dst/file.html'); -EOF - -WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"); - -WebCoso::Driver->run(); - -my @resources=WebCoso::Config->get_all_resources(); - -my @calls1=@{WebCoso::Pipeline::Test->_steps()->[0]->get_calls()}; -is(scalar @calls1,2,"2 chiamata a Step1"); -is($calls1[0]->{resource}, - $resources[0], - 'risorsa giusta passata a Step1(1)'); -is($calls1[1]->{resource}, - $resources[0], - 'risorsa giusta passata a Step1(2)'); -is($calls1[0]->{stage}, - 'meta', - 'stage1==meta (step1)'); -is($calls1[1]->{stage}, - 'gen', - 'stage2==gen (step1)'); - -my @calls2=@{WebCoso::Pipeline::Test->_steps()->[1]->get_calls()}; -is(scalar @calls2,2,"2 chiamata a Step2"); -is($calls2[0]->{resource}, - $resources[0], - 'risorsa giusta passata a Step2(1)'); -is($calls2[1]->{resource}, - $resources[0], - 'risorsa giusta passata a Step2(2)'); -is($calls2[0]->{stage}, - 'meta', - 'stage1==meta (step2)'); -is($calls2[1]->{stage}, - 'gen', - 'stage2==gen (step2)'); - diff --git a/t/04-resource.t b/t/04-resource.t deleted file mode 100644 index 808629f..0000000 --- a/t/04-resource.t +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; -use Test::More 'no_plan'; -use Test::Exception; - -BEGIN { use_ok('WebCoso::Resource'); } - -my $r=WebCoso::Resource->new(); - -isa_ok($r,'WebCoso::Resource'); - -is_deeply([$r->get_axes()],[],'no axes'); - -$r->set_property(prop1=>'value1'); -is($r->get_property('prop1'),'value1','simple global'); -is($r->get_property({},'prop1'),'value1','explicit global'); -is($r->get_property({a1=>1,a2=>3},'prop1'),'value1','over global'); -is_deeply([$r->get_axes()],[],'no axes'); - -$r->set_property(prop1=>'value2'); -is($r->get_property('prop1'),'value2','simple global redef'); -is($r->get_property({},'prop1'),'value2','explicit global redef'); -is($r->get_property({a1=>1,a2=>3},'prop1'),'value2','over global redef'); -is_deeply([$r->get_axes()],[],'no axes'); - -$r->set_property({},prop1=>'value3'); -is($r->get_property('prop1'),'value3','simple global redef'); -is($r->get_property({},'prop1'),'value3','explicit global redef'); -is($r->get_property({a1=>1,a2=>3},'prop1'),'value3','over global redef'); -is_deeply([$r->get_axes()],[],'no axes'); - -$r->set_property({a1=>3},prop2=>'v1'); -ok(! defined $r->get_property('prop2'),'undef on generalization'); -is($r->get_property({a1=>3},'prop2'),'v1','specific'); -is($r->get_property({a1=>3,a2=>3},'prop2'),'v1','over specific'); -is_deeply([$r->get_axes()],['a1'],'1 axis'); -is_deeply([$r->get_axis_values('a1')],[3],'1 axis, 1 value'); - -$r->set_property({a1=>2},prop2=>'v2'); -ok(! defined $r->get_property('prop2'),'undef on generalization'); -is($r->get_property({a1=>3},'prop2'),'v1','specific, oldval'); -is($r->get_property({a1=>3,a2=>3},'prop2'),'v1','over specific, oldval'); -is($r->get_property({a1=>2},'prop2'),'v2','specific, newval'); -is($r->get_property({a1=>2,a2=>3},'prop2'),'v2','over specific, newval'); -is_deeply([$r->get_axes()],['a1'],'1 axis'); -is_deeply([sort $r->get_axis_values('a1')],[2,3],'1 axis, 2 values'); - -$r->set_property({a1=>1,a2=>2},prop3=>'vx'); -ok(! defined $r->get_property({a1=>1},'prop3'),'undef on generalization, 2'); -is_deeply([sort $r->get_axes()],['a1','a2'],'2 axes'); -is_deeply([sort $r->get_axis_values('a1')],[1,2,3],'1st axis, 3 values'); -is_deeply([sort $r->get_axis_values('a2')],[2],'2nd axis, 1 value'); - -# test sui vari get_property_* - -$r=WebCoso::Resource->new(); - -{ -open my $fh,'<',__FILE__; -$r->set_property(fh=>$fh); -} -{ -my $fh=$r->get_property_fh('fh'); -is((scalar <$fh>),"#!/usr/bin/perl\n",'legge fh'); -} -{ -my $content=$r->get_property_string('fh'); -like($content,qr{^#!/usr/bin/perl\n},'legge string'); -} - -$r->set_property(fh=> - sub { - open my $fh,'<',__FILE__; - return $fh; - }); -{ -my $fh=$r->get_property_fh('fh'); -is((scalar <$fh>),"#!/usr/bin/perl\n",'legge fh lazy'); -} -{ -my $content=$r->get_property_string('fh'); -like($content,qr{^#!/usr/bin/perl\n},'legge string lazy'); -} diff --git a/t/05-naming.t b/t/05-naming.t deleted file mode 100644 index 5c645e0..0000000 --- a/t/05-naming.t +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; -use Path::Class; -use Test::More 'no_plan'; -use Test::Exception; -use WebCoso::Config; - -my $thisdir=file($0)->parent->absolute; - -{ -my $conf_file=<<'EOF'; -$res1=res('src/file1','Id','dst/file1'); -$res2=res('src/file2','Id','dst/file2'); -$coll1=coll('collezione'); -EOF - -ok(WebCoso::Config->read_scalar($conf_file,"$thisdir/config-in-test"), - 'eseguita la configurazione'); -is((WebCoso::Config->get_res_by_name('res1') - ->get_axis_values('filename'))[0], - "$thisdir/src/file1", - 'ok primo nome'); -is((WebCoso::Config->get_res_by_name('res2') - ->get_axis_values('filename'))[0], - "$thisdir/src/file2", - 'ok secondo nome'); -is(WebCoso::Config->get_coll_by_name('coll1') - ->get_properties(language=>'')->{name}, - 'collezione', - 'ok nome collezione'); - -throws_ok { - WebCoso::Config->get_res_by_name('coll1') - } - 'WebCoso::X::NoSuchResource', - 'muore se si chiede il tipo errato (r-c)'; -throws_ok { - WebCoso::Config->get_coll_by_name('res1') - } - 'WebCoso::X::NoSuchCollection', - 'muore se si chiede il tipo errato (c-r)'; -} diff --git a/t/lib/WebCoso/Pipeline/Test.pm b/t/lib/WebCoso/Pipeline/Test.pm deleted file mode 100644 index 8c339ff..0000000 --- a/t/lib/WebCoso/Pipeline/Test.pm +++ /dev/null @@ -1,29 +0,0 @@ -package WebCoso::Pipeline::Test; -use strict; -use warnings; -use base 'WebCoso::Pipeline::Base'; - -__PACKAGE__->set_steps( - Step1 => {p1 => 1}, - Step2 => {p2 => 2} -); - -my @calls; - -sub process { - my ($class,$resource,$stage)=@_; - - my $call={ resource => $resource, stage => $stage }; - - my $ret=$class->SUPER::process($resource,$stage); - - push @calls, $call; - - return $ret; -} - -sub get_calls { - return @calls; -} - -1; diff --git a/t/lib/WebCoso/Step/Step1.pm b/t/lib/WebCoso/Step/Step1.pm deleted file mode 100644 index c9f2c96..0000000 --- a/t/lib/WebCoso/Step/Step1.pm +++ /dev/null @@ -1,26 +0,0 @@ -package WebCoso::Step::Step1; -use base 'WebCoso::Step::Base'; -use Class::Std; -use strict; -use warnings; - -{ -my %calls_of :ATTR(:default<[]> :get); -my %p1_of :ATTR(:init_arg); - -sub process { - my ($self,$resource,$stage)=@_; - - my $out='stuff'; - - push @{$calls_of{ident $self}},{ - resource => $resource, - out_res => $out, - stage => $stage, - }; - - return $out; -} - -} -1; diff --git a/t/lib/WebCoso/Step/Step2.pm b/t/lib/WebCoso/Step/Step2.pm deleted file mode 100644 index 08a32c2..0000000 --- a/t/lib/WebCoso/Step/Step2.pm +++ /dev/null @@ -1,26 +0,0 @@ -package WebCoso::Step::Step2; -use base 'WebCoso::Step::Base'; -use Class::Std; -use strict; -use warnings; - -{ -my %calls_of :ATTR(:default<[]> :get); -my %p2_of :ATTR(:init_arg); - -sub process { - my ($self,$resource,$stage)=@_; - - my $out='stuff'; - - push @{$calls_of{ident $self}},{ - resource => $resource, - out_res => $out, - stage => $stage, - }; - - return $out; -} - -} -1; diff --git a/t/src/file1.rest.txt b/t/src/file1.rest.txt deleted file mode 100644 index 3af7f03..0000000 --- a/t/src/file1.rest.txt +++ /dev/null @@ -1,4 +0,0 @@ -Titolo -====== - -testo diff --git a/t/steps/rest-splitlang.t b/t/steps/rest-splitlang.t deleted file mode 100644 index 10283b4..0000000 --- a/t/steps/rest-splitlang.t +++ /dev/null @@ -1,103 +0,0 @@ -#!/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,$key)=@_; - $key||='datastream'; - my $resource=WebCoso::Resource->new(); - open my $rst_fh,'<',\$rst_doc; - $resource->set_property({filename=>'mydoc.rest.txt'},$key=>$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_string({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_string({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_string('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_string('rstdoc'),$rst_doc,'monolingua 2 cat'); - -# test per le chiavi arbitrarie -$step=WebCoso::Step::ReST::SplitLang->new({from=>'source',to=>'dest'}); -$rst_doc=<<'END_REST'; -dati vari -END_REST -$resource=make_res($rst_doc,'source'); -$step->process($resource,'meta'); -eq_or_diff($resource->get_property_string('dest'),$rst_doc,'chiavi arbitrarie'); diff --git a/t/steps/rest-xml.t b/t/steps/rest-xml.t deleted file mode 100644 index 1d9f956..0000000 --- a/t/steps/rest-xml.t +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/perl -use utf8; -use strict; -use warnings; -use Path::Class; -use Test::More 'no_plan'; -use Test::Differences; -use Encode; -use WebCoso::Resource; - -BEGIN {use_ok('WebCoso::Step::ReST::ToXml')} -my $step=WebCoso::Step::ReST::ToXml->new(); - -my $srckey='rstdoc'; -sub make_res { - my $resource=WebCoso::Resource->new(); - # serve solo per il path - $resource->set_property({filename=>'/tmp/mydoc.rest.txt'},datastream=>undef); - if (@_==1) { # monolingua - $resource->set_property($srckey=>$_[0]); - } - else { # multilingua - my %rst_doc=@_; - while (my ($lang,$str)=each %rst_doc) { - $resource->set_property( - {language=>$lang}, - $srckey=>$str - ); - } - } - - return $resource; -} - -my $resource=make_res(<<'END_REST'); -Documento -========= - -paragrafo àè -END_REST - -$step->process($resource,'gen'); -ok(!defined $resource->get_property('xmldom'),'no action on second pass'); - -$step->process($resource,'meta'); -my $dom=$resource->get_property('xmldom'); -isa_ok($dom,'XML::LibXML::Document','parsed ok on first pass'); - -is($dom->findvalue('/document/@source'), - '/tmp/mydoc.rest.txt', - 'source path'); -is($dom->findvalue('/document/title'), - 'Documento', - 'title'); -is($dom->findvalue('count(/document/paragraph)'), - 1, - '1 paragraph'); -is($dom->findvalue('/document/paragraph'), - 'paragrafo àè', - 'paragraph content (unicode)'); - -$resource=make_res(it=><<'END_REST_IT',en=><<'END_REST_EN'); -Documento -========= - -paragrafo -END_REST_IT -Document -======== - -paragraph -END_REST_EN - -$step->process($resource,'meta'); -$dom=$resource->get_property({language=>'it'},'xmldom'); -isa_ok($dom,'XML::LibXML::Document','parsed it'); - -is($dom->findvalue('/document/@source'), - '/tmp/mydoc.rest.txt', - 'source path'); -is($dom->findvalue('/document/title'), - 'Documento', - 'title'); -is($dom->findvalue('/document/paragraph'), - 'paragrafo', - 'paragraph content'); - -$dom=$resource->get_property({language=>'en'},'xmldom'); -isa_ok($dom,'XML::LibXML::Document','parsed en'); - -is($dom->findvalue('/document/@source'), - '/tmp/mydoc.rest.txt', - 'source path'); -is($dom->findvalue('/document/title'), - 'Document', - 'title'); -is($dom->findvalue('/document/paragraph'), - 'paragraph', - 'paragraph content'); - -# test per chiavi arbitrarie -$step=WebCoso::Step::ReST::ToXml->new({from=>'rest',to=>'xml'}); -$srckey='rest'; -$resource=make_res(<<'END_REST'); -testo -END_REST -$step->process($resource,'meta'); -$dom=$resource->get_property('xml'); -isa_ok($dom,'XML::LibXML::Document','chiavi arbitrarie'); - -# test dei metadati -$step=WebCoso::Step::ReST::ToXml->new(); -$srckey='rstdoc'; -$resource=make_res(<<'END_REST'); -======== - Titolo -======== - -sottotitolo -=========== - -:Authors: - dakkar - - doraemon -:Version: 12 -:Status: draft -:Date: 2006-02-07 -:CreationDate: 2006-01-30 -:Collections: - uno - - due - - tre - -testo - -END_REST -$step->process($resource,'meta'); -my %meta_fields=( - author => ['dakkar','doraemon'], - title => 'Titolo', - subtitle => 'sottotitolo', - version => 12, - status => 'draft', - date => '2006-02-07', - creation_date => '2006-01-30', -); -while (my ($f,$v)=each %meta_fields) { - if (ref $v) { - is_deeply([sort @{$resource->get_property($f)}], - $v, - "meta: $f"); - } - else { - is($resource->get_property($f), - $v, - "meta: $f"); - } -} -- cgit v1.2.3