X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=t%2F3-normalize.t;h=5dc5a63b6bb26e78c6a986b48e7f843743567399;hb=33156dfb36756fcafdf27a56b3254344aab06d09;hp=5c59052782489190555545adb16906da022b6ea0;hpb=5573c556fe4b76576fa7a1bd33ed320d2fc9b437;p=webpac2 diff --git a/t/3-normalize.t b/t/3-normalize.t index 5c59052..5dc5a63 100755 --- a/t/3-normalize.t +++ b/t/3-normalize.t @@ -1,9 +1,11 @@ #!/usr/bin/perl -w use strict; -use blib; +use lib 'lib'; -use Test::More tests => 344; +use Test::More tests => 357; + +use utf8; BEGIN { use_ok( 'WebPAC::Test' ); @@ -55,7 +57,7 @@ my $rec2 = { } ], '700' => [ { 'a' => 'Haynal', - 'b' => 'André' + 'b' => 'André' } ], '801' => [ 'FFZG' ], '991' => [ '8302' ], @@ -78,7 +80,7 @@ my $rec2 = { 'e' => 'from Freud and Ferenczi to Michael balint', 'a' => 'Controversies in psychoanalytic method', 'g' => 'translated by Elizabeth Holder on the basisi of a first draft by Archie Hooton ; with a preface by Daniel N. Stern', - 'f' => 'by André E. Haynal' + 'f' => 'by André E. Haynal' } ], '610' => [ 'povijest psihoanalize' ], '994' => [ { @@ -866,7 +868,7 @@ sub test_s { # frec - my $rec = { + $rec = { '200' => [ { a => [ 'a1', 'a2' ], b => [ 'b1', 'b2' ], c => [ 'c1', 'c2' ], subfields => [ qw/a 0 b 0 a 1 b 1 c 0 c 1/ ], @@ -896,5 +898,31 @@ sub test_s { test_rule( 'rec(200,i1)', $rec, qq{ rec(200,'i1') }, [ '0' ] ); test_rule( 'rec(200,i2)', $rec, qq{ rec(200,'i2') }, [ '1' ] ); + my $hash = { a => '[a]', 'b' => '[b]', subfields => [ 'a', 0, 'b', 0 ] }; + is_deeply([ _pack_subfields_hash( $hash ) ], [ '[a]', '[b]' ], '_pack_subfields_hash' ); + ok( $hash->{subfields}, 'subfields exist' ); + cmp_ok( _pack_subfields_hash( $hash, 1 ), 'eq', '^a[a]^b[b]', '_pack_subfields_hash' ); + ok( $hash->{subfields}, 'subfields exist' ); + + $rec = { 'arr' => [ 1, 2, 3 ] }; + test_rule( 'rec_array', $rec, qq{ rec_array('arr') }, $rec->{arr} ); + + _clean_ds(); + _set_ds( $rec ); + test_s(q{ + row( 'table', e => $_ ) foreach ( rec_array('arr') ); + }); + ok( my $rows = _get_ds->{_rows}->{table}, 'ds have _rows' ); + + foreach my $i ( 1 .. 3 ) { + cmp_ok( $rows->[ $i - 1 ]->{e}, '==', $i, "e $i" ); + } + + test_rule( 'utf-8' + , { '900' => [{ a => 'Čev', b => 'ić' }] } + , qq{ join_with('', rec(900,'a'), 'apč', rec(900,'b') ) } + , [ "\x{10C}evap\x{10D}i\x{107}" ] + ); + }