/[suikacvs]/messaging/manakai/t/markup-xml-qname.t
Suika

Diff of /messaging/manakai/t/markup-xml-qname.t

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

revision 1.2 by wakaba, Sun Sep 28 01:05:04 2003 UTC revision 1.6 by wakaba, Sun Feb 22 01:44:57 2004 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl  #!/usr/bin/perl
2  use strict;  use strict;
3  require Test::Simple;  require Test::Simple;
4  require Message::Markup::XML;  require Message::Markup::XML::Node;
5  use Message::Markup::XML::QName qw/UNDEF_URI NULL_URI DEFAULT_PFX/;  use Message::Markup::XML::QName qw/UNDEF_URI NULL_URI DEFAULT_PFX EMPTY_PFX
6                                       EMPTY_URI ZERO_PFX ZERO_URI/;
7  sub ok ($;$);  sub ok ($;$);
8  my $e = new Message::Markup::XML (type => '#element', local_name => 'test',  my $e = new Message::Markup::XML::Node
9                                    namespace_uri => 'http://something.test/');                (type => '#element', local_name => 'test',
10                   namespace_uri => 'http://something.test/');
11    use Carp q(verbose);
12  my @reg_p2n = (  my @reg_p2n = (
13                 {                 {
14                  prefix => q(test1),                  prefix => q(test1),
# Line 95  my @reg_p2n = ( Line 97  my @reg_p2n = (
97                  opt    => {check_name => 1, resolve_name_uri_relative => 1},                  opt    => {check_name => 1, resolve_name_uri_relative => 1},
98                  result => 1,                  result => 1,
99                 },                 },
100                   {
101                    prefix => EMPTY_PFX,
102                    name   => q<about:name>,
103                    opt    => {check_prefix => 1, use_prefix_empty => 0},
104                    result => 0,
105                   },
106                   {
107                    prefix => EMPTY_PFX,
108                    name   => q<about:name>,
109                    opt    => {check_prefix => 1, use_prefix_empty => 1},
110                    result => 1,
111                   },
112                   {
113                    prefix => ZERO_PFX,
114                    name   => q<about:name>,
115                    opt    => {check_prefix => 1},
116                    result => 0,
117                   },
118  );  );
119    
120  my @get_p2n = (  my @get_p2n = (
# Line 151  my @get_p2n = ( Line 171  my @get_p2n = (
171                             ___dont_register => 1},                             ___dont_register => 1},
172                  result => 1,                  result => 1,
173                 },                 },
174                   {
175                    prefix => EMPTY_PFX,
176                    name   => q<http://test.test/2>,
177                    opt    => {use_prefix_empty => 1},
178                    result => 1,
179                   },
180  );  );
181    
182  my @qname = (  my @qname = (
# Line 196  my @qname = ( Line 222  my @qname = (
222               },               },
223               {               {
224                qname  => q":bar",                qname  => q":bar",
225                prefix => q"",                join_qname => q"bar",
226                  prefix => DEFAULT_PFX,
227                lname  => q"bar",                lname  => q"bar",
228                result => 0,                result => 0,
229                  join_result => 1,
230                opt    => {check_qname => 1, check_prefix => 1,                opt    => {check_qname => 1, check_prefix => 1,
231                           check_local_name => 1},                           check_local_name => 1},
232               },               },
# Line 235  my @qname = ( Line 263  my @qname = (
263                           check_local_name => 1, qname_separator => '|',                           check_local_name => 1, qname_separator => '|',
264                           use_local_name_star => 1},                           use_local_name_star => 1},
265               },               },
266                 {
267                  qname  => q":b",
268                  prefix => EMPTY_PFX,
269                  lname  => q:b:,
270                  result => 0,
271                  opt    => {check_qname => 1, check_prefix => 1,
272                             check_local_name => 1,
273                             use_prefix_empty => 0},
274                 },
275                 {
276                  qname  => q":b",
277                  prefix => EMPTY_PFX,
278                  lname  => q:b:,
279                  result => 1,
280                  opt    => {check_qname => 1, check_prefix => 1,
281                             check_local_name => 1,
282                             use_prefix_empty => 1},
283                 },
284                 {
285                  qname  => q"b",
286                  prefix => DEFAULT_PFX,
287                  lname  => q:b:,
288                  result => 1,
289                  opt    => {check_qname => 1, check_prefix => 1,
290                             check_local_name => 1,
291                             use_prefix_empty => 1},
292                 },
293  );  );
294    
295  my @gen_pfx = (  my @gen_pfx = (
# Line 293  my @gen_pfx = ( Line 348  my @gen_pfx = (
348                  n2p    => q:h:,                  n2p    => q:h:,
349                 },                 },
350                 {                 {
351                    name   => q<http://uri.example/b>,
352                    prefix => q:b:,
353                   },
354                   {
355                    name   => q<http://uri.example/bc>,
356                    prefix => q:bc:,
357                   },
358                   {
359                    name   => q<http://uri.example/01w>,
360                    prefix => q:w:,
361                   },
362                   {
363                  name   => q<test/0name/xmlns>,                  name   => q<test/0name/xmlns>,
364                  prefix => q:name:,                  prefix => q:name:,
365                 },                 },
# Line 344  my @expand = ( Line 411  my @expand = (
411                 xname   => [NULL_URI, q:bar:],                 xname   => [NULL_URI, q:bar:],
412                 opt     => {use_prefix_default => 1, use_name_null => 1},                 opt     => {use_prefix_default => 1, use_name_null => 1},
413                },                },
414                  {
415                   reset   => 0,
416                   ns      => {(EMPTY_PFX) => q<about:>},
417                   qname   => q":bar",
418                   xname   => [q<about:>, q:bar:],
419                   opt     => {use_prefix_empty => 1},
420                  },
421                  {
422                   reset   => 0,
423                   ns      => {(EMPTY_PFX) => q<about:>,
424                               (DEFAULT_PFX) => q<data:,>},
425                   qname   => q"bar",
426                   xname   => [q<data:,>, q:bar:],
427                   opt     => {use_prefix_empty => 1, use_prefix_default => 1},
428                  },
429  );  );
430    
431  Test::Simple->import (tests => scalar (@reg_p2n)  Test::Simple->import (tests => scalar (@reg_p2n)
# Line 351  Test::Simple->import (tests => scalar (@ Line 433  Test::Simple->import (tests => scalar (@
433                               + scalar (@qname) * 2                               + scalar (@qname) * 2
434                               + scalar (@gen_pfx) * 2                               + scalar (@gen_pfx) * 2
435                               + scalar (@expand) * 2);                               + scalar (@expand) * 2);
436    eval q{
437    sub ok ($;$) {
438      my ($cond, $desc) = @_;
439      if ($cond) {
440        Test::Simple::ok (1);
441      } else {
442        Test::Simple::ok (0, $desc);
443      }
444    }};
445    
446  for (@reg_p2n) {  for (@reg_p2n) {
447    my $chk = Message::Markup::XML::QName::register_prefix_to_name    my $chk = Message::Markup::XML::QName::register_prefix_to_name
448      ($e, $_->{prefix} => $_->{name}, %{$_->{opt}||{}});      ($e, $_->{prefix} => $_->{name}, %{$_->{opt}||{}});
449    ok ($chk->{success} == $_->{result}, $chk->{reason});    ok ($chk->{success} == $_->{result}, 'Register pfx->URI: '.$chk->{reason});
450  }  }
451                                
452  for (@get_p2n) {  for (@get_p2n) {
# Line 382  for (@qname) { Line 473  for (@qname) {
473    if ($_->{result}) {    if ($_->{result}) {
474      ok $chk->{prefix}.':'.($chk->{local_name_star} ? '*' : $chk->{local_name})      ok $chk->{prefix}.':'.($chk->{local_name_star} ? '*' : $chk->{local_name})
475      eq $_->{prefix} . ':' . $_->{lname},      eq $_->{prefix} . ':' . $_->{lname},
476        "$chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";        "Split 1: $_->{qname} => $chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";
477    } else {    } else {
478      ok $chk->{success} == $_->{result},      ok $chk->{success} == $_->{result},
479        "$chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";        "Split 0: $_->{qname} => $chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";
480    }    }
481        
482    $chk = Message::Markup::XML::QName::join_qname    $chk = Message::Markup::XML::QName::join_qname
483      ($_->{prefix}, $_->{lname}, %{$_->{opt}||{}});      ($_->{prefix}, $_->{lname}, %{$_->{opt}||{}});
484    if ($_->{result}) {    if (defined $_->{join_result} ? $_->{join_result} : $_->{result}) {
485      ok $chk->{qname} eq $_->{qname}, $chk->{qname};      ok $chk->{qname} eq ($_->{join_qname} || $_->{qname}), qq(Join 1: "$_->{prefix}":"$_->{lname}" => "$chk->{qname}" ("@{[$_->{join_qname} || $_->{qname}]}" expected));
486    } else {    } else {
487      ok $chk->{success} == $_->{result}, $chk->{qname};      ok $chk->{success} == ((defined $_->{join_result} and $_->{join_result}) or $_->{result}),
488           "Join 0: $chk->{success}; $_->{prefix}, $_->{lname} => $chk->{qname}";
489    }    }
490  }  }
491    
# Line 404  for (@gen_pfx) { Line 496  for (@gen_pfx) {
496    if ($pfx eq $_->{prefix}) {    if ($pfx eq $_->{prefix}) {
497      my $chk = Message::Markup::XML::QName::register_prefix_to_name      my $chk = Message::Markup::XML::QName::register_prefix_to_name
498                  ($e, $pfx => $_->{name});                  ($e, $pfx => $_->{name});
499      ok $chk->{success}, $chk->{reason};      ok $chk->{success}, 'Generate pfx: '.$chk->{reason};
500    } else {    } else {
501      ok $pfx eq $_->{prefix}, ":$pfx: (expected :$_->{prefix}:";      ok $pfx eq $_->{prefix}, "Generate pfx: :$pfx: (expected :$_->{prefix}:";
502    }    }
503  }  }
504    
# Line 416  for (@gen_pfx) { Line 508  for (@gen_pfx) {
508                                                           %{$_->{opt}||{}},                                                           %{$_->{opt}||{}},
509                                                           make_new_prefix => 1);                                                           make_new_prefix => 1);
510    ok $chk->{success} && ($chk->{prefix} eq ($_->{n2p} || $_->{prefix})),    ok $chk->{success} && ($chk->{prefix} eq ($_->{n2p} || $_->{prefix})),
511       "$chk->{prefix} (@{[$_->{n2p} || $_->{prefix}]} is expected; $chk->{reason})";       "URI->Pfx: $chk->{prefix} (@{[$_->{n2p} || $_->{prefix}]} is expected; $chk->{reason})";
512  }  }
513    
514  for (@expand) {  for (@expand) {
# Line 429  for (@expand) { Line 521  for (@expand) {
521                ($e, $_->{qname}, %{$_->{opt}||{}});                ($e, $_->{qname}, %{$_->{opt}||{}});
522    ok $chk->{success} && ($_->{xname}->[0] eq $chk->{name}    ok $chk->{success} && ($_->{xname}->[0] eq $chk->{name}
523                       && $_->{xname}->[1] eq $chk->{local_name}),                       && $_->{xname}->[1] eq $chk->{local_name}),
524       qq(<$chk->{name}> (should be <$_->{xname}->[0]>), "$chk->{local_name}" (should be "$_->{xname}->[1]") (prefix "$chk->{prefix}"; $chk->{reason}));       qq(QName->expand: <$chk->{name}> (should be <$_->{xname}->[0]>), "$chk->{local_name}" (should be "$_->{xname}->[1]") (prefix "$chk->{prefix}"; $chk->{reason}));
525  }  }
526    
527  for (@expand) {  for (@expand) {
# Line 440  for (@expand) { Line 532  for (@expand) {
532    }    }
533    my $chk = Message::Markup::XML::QName::expanded_name_to_qname    my $chk = Message::Markup::XML::QName::expanded_name_to_qname
534                ($e, $_->{xname}->[0], $_->{xname}->[1], %{$_->{opt}||{}});                ($e, $_->{xname}->[0], $_->{xname}->[1], %{$_->{opt}||{}});
535    ok $chk->{success} && ($_->{qname} eq $chk->{qname}), $chk->{reason};    ok $chk->{success} && ($_->{qname} eq $chk->{qname}), 'Expand->QName: '.$chk->{reason};
536  }  }
537    
538  print $e;  #print $e;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24