/[webpac2]/trunk/t/2-input.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/t/2-input.t

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 799 by dpavlin, Sun Feb 4 15:09:01 2007 UTC revision 823 by dpavlin, Wed Apr 11 12:22:37 2007 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl -w  #!/usr/bin/perl -w
2    
3  use Test::More tests => 108;  use Test::More tests => 118;
4  use Test::Exception;  use Test::Exception;
5  use Cwd qw/abs_path/;  use Cwd qw/abs_path/;
6  use blib;  use blib;
# Line 134  $WebPAC::Input::Test::rec = { Line 134  $WebPAC::Input::Test::rec = {
134    
135  $WebPAC::Input::Test::size = 42;  $WebPAC::Input::Test::size = 42;
136    
137  ok($input->open( path => "$abs_path/modify_isis/LIBRI", ), "open modify_isis (plain)");  ok($input->open( path => "/fake/path", ), "open modify_isis (plain)");
138    
139  cmp_ok($input->size, '==', 42, 'size');  cmp_ok($input->size, '==', 42, 'size');
140    
# Line 143  ok(my $rec_p = $input->fetch, 'fetch'); Line 143  ok(my $rec_p = $input->fetch, 'fetch');
143  # modify_records  # modify_records
144    
145  ok($input->open(  ok($input->open(
146          path => "$abs_path/modify_isis/LIBRI",          path => "/another/fake/path",
147          modify_records => {          modify_records => {
148                  200 => {                  200 => {
149                          '*' => { '^c' => '. ' },                          '*' => { '^c' => '. ' },
# Line 156  ok($input->open( Line 156  ok($input->open(
156  throws_ok { $input->seek } qr/without/, 'seek without position';  throws_ok { $input->seek } qr/without/, 'seek without position';
157  cmp_ok($input->seek(0), '==', -1, 'seek');  cmp_ok($input->seek(0), '==', -1, 'seek');
158    
159  my $f = $WebPAC::Input::Test::filter_coderef;  sub test_filter {
160  ok(ref($f) eq 'CODE', 'filter_coderef');  
161            my $f = $WebPAC::Input::Test::filter_coderef;
162            ok(ref($f) eq 'CODE', 'filter_coderef');
163    
164            my ($field, $from, $to) = @_;
165            cmp_ok( $f->( $from, $field, 1 ), 'eq', $to, "filter $field |$from| -> |$to|" );
166    }
167    
168  cmp_ok(  test_filter(200,
169          $f->(   '^afoo^cbar^fbing : bong',      200),          '^afoo^cbar^fbing : bong',
170          'eq',   '^afoo. bar^fbing / bong',          '^afoo. bar^fbing / bong',
         'modify 200'  
171  );  );
172    
173  # modify_file  # modify_file
# Line 170  cmp_ok( Line 175  cmp_ok(
175  my $modify_file = "$abs_path/conf/modify/test.pl";  my $modify_file = "$abs_path/conf/modify/test.pl";
176    
177  ok($input->open(  ok($input->open(
178          path => "$abs_path/modify_isis/LIBRI",          path => "/and/another/fake/path",
179          modify_file => $modify_file,          modify_file => $modify_file,
180  ), "open (with modify_file $modify_file)");  ), "open (with modify_file $modify_file)");
181    
182  my $f = $WebPAC::Input::Test::filter_coderef;  diag "regexps = ", dump($input->modify_file_regexps( $modify_file )) if ($debug);
 ok(ref($f) eq 'CODE', 'filter_coderef');  
   
 diag "regexps = ", dump($input->modify_file_regexps( $modify_file ));  
   
 sub test_filter {  
         my ($field, $from, $to) = @_;  
         cmp_ok( $f->( $from, $field, 1 ), 'eq', $to, "filter $field |$from| -> |$to|" );  
 }  
183    
184  test_filter(200,  test_filter(200,
185          '^a foo ; bar = baz : zzz',          '^a foo ; bar = baz : zzz',
186          '^a foo^kbar^dbaz^ezzz',          '^a foo^kbar^dbaz : zzz',
187  );  );
188    
189    # empty subfield removal
190    
191    ok($input->open(
192            path => "/another/fake/path",
193            modify_records => {
194                    900 => {
195                            '^a' => { '^e' => ' : ^e' },
196                    },
197                    901 => {
198                            '^a' => { 'foo' => 'baz' },
199                    },
200            },
201    ), "open (with modify_records for empty subfields)");
202    
203    test_filter(900,
204            '^a^ebar',
205            '^a^ebar',
206    );
207    
208    test_filter(900,
209            '^afoo^ebar',
210            '^afoo : ^ebar',
211    );
212    
213    test_filter(901,
214            '^afoo^ebar',
215            '^abaz^ebar',
216    );

Legend:
Removed from v.799  
changed lines
  Added in v.823

  ViewVC Help
Powered by ViewVC 1.1.26