/[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.5 by wakaba, Fri Dec 26 07:10:26 2003 UTC
# Line 6  use Message::Markup::XML::QName qw/UNDEF Line 6  use Message::Markup::XML::QName qw/UNDEF
6  sub ok ($;$);  sub ok ($;$);
7  my $e = new Message::Markup::XML (type => '#element', local_name => 'test',  my $e = new Message::Markup::XML (type => '#element', local_name => 'test',
8                                    namespace_uri => 'http://something.test/');                                    namespace_uri => 'http://something.test/');
9    use Carp q(verbose);
10  my @reg_p2n = (  my @reg_p2n = (
11                 {                 {
12                  prefix => q(test1),                  prefix => q(test1),
# Line 196  my @qname = ( Line 196  my @qname = (
196               },               },
197               {               {
198                qname  => q":bar",                qname  => q":bar",
199                prefix => q"",                join_qname => q"bar",
200                  prefix => DEFAULT_PFX,
201                lname  => q"bar",                lname  => q"bar",
202                result => 0,                result => 0,
203                  join_result => 1,
204                opt    => {check_qname => 1, check_prefix => 1,                opt    => {check_qname => 1, check_prefix => 1,
205                           check_local_name => 1},                           check_local_name => 1},
206               },               },
# Line 293  my @gen_pfx = ( Line 295  my @gen_pfx = (
295                  n2p    => q:h:,                  n2p    => q:h:,
296                 },                 },
297                 {                 {
298                    name   => q<http://uri.example/b>,
299                    prefix => q:b:,
300                   },
301                   {
302                    name   => q<http://uri.example/bc>,
303                    prefix => q:bc:,
304                   },
305                   {
306                    name   => q<http://uri.example/01w>,
307                    prefix => q:w:,
308                   },
309                   {
310                  name   => q<test/0name/xmlns>,                  name   => q<test/0name/xmlns>,
311                  prefix => q:name:,                  prefix => q:name:,
312                 },                 },
# Line 351  Test::Simple->import (tests => scalar (@ Line 365  Test::Simple->import (tests => scalar (@
365                               + scalar (@qname) * 2                               + scalar (@qname) * 2
366                               + scalar (@gen_pfx) * 2                               + scalar (@gen_pfx) * 2
367                               + scalar (@expand) * 2);                               + scalar (@expand) * 2);
368    eval q{
369    sub ok ($;$) {
370      my ($cond, $desc) = @_;
371      if ($cond) {
372        Test::Simple::ok (1);
373      } else {
374        Test::Simple::ok (0, $desc);
375      }
376    }};
377    
378  for (@reg_p2n) {  for (@reg_p2n) {
379    my $chk = Message::Markup::XML::QName::register_prefix_to_name    my $chk = Message::Markup::XML::QName::register_prefix_to_name
380      ($e, $_->{prefix} => $_->{name}, %{$_->{opt}||{}});      ($e, $_->{prefix} => $_->{name}, %{$_->{opt}||{}});
381    ok ($chk->{success} == $_->{result}, $chk->{reason});    ok ($chk->{success} == $_->{result}, 'Register pfx->URI: '.$chk->{reason});
382  }  }
383                                
384  for (@get_p2n) {  for (@get_p2n) {
# Line 382  for (@qname) { Line 405  for (@qname) {
405    if ($_->{result}) {    if ($_->{result}) {
406      ok $chk->{prefix}.':'.($chk->{local_name_star} ? '*' : $chk->{local_name})      ok $chk->{prefix}.':'.($chk->{local_name_star} ? '*' : $chk->{local_name})
407      eq $_->{prefix} . ':' . $_->{lname},      eq $_->{prefix} . ':' . $_->{lname},
408        "$chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";        "Split 1: $_->{qname} => $chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";
409    } else {    } else {
410      ok $chk->{success} == $_->{result},      ok $chk->{success} == $_->{result},
411        "$chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";        "Split 0: $_->{qname} => $chk->{prefix}:$chk->{local_name}($chk->{local_name_star})";
412    }    }
413        
414    $chk = Message::Markup::XML::QName::join_qname    $chk = Message::Markup::XML::QName::join_qname
415      ($_->{prefix}, $_->{lname}, %{$_->{opt}||{}});      ($_->{prefix}, $_->{lname}, %{$_->{opt}||{}});
416    if ($_->{result}) {    if (defined $_->{join_result} ? $_->{join_result} : $_->{result}) {
417      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));
418    } else {    } else {
419      ok $chk->{success} == $_->{result}, $chk->{qname};      ok $chk->{success} == ((defined $_->{join_result} and $_->{join_result}) or $_->{result}),
420           "Join 0: $chk->{success}; $_->{prefix}, $_->{lname} => $chk->{qname}";
421    }    }
422  }  }
423    
# Line 404  for (@gen_pfx) { Line 428  for (@gen_pfx) {
428    if ($pfx eq $_->{prefix}) {    if ($pfx eq $_->{prefix}) {
429      my $chk = Message::Markup::XML::QName::register_prefix_to_name      my $chk = Message::Markup::XML::QName::register_prefix_to_name
430                  ($e, $pfx => $_->{name});                  ($e, $pfx => $_->{name});
431      ok $chk->{success}, $chk->{reason};      ok $chk->{success}, 'Generate pfx: '.$chk->{reason};
432    } else {    } else {
433      ok $pfx eq $_->{prefix}, ":$pfx: (expected :$_->{prefix}:";      ok $pfx eq $_->{prefix}, "Generate pfx: :$pfx: (expected :$_->{prefix}:";
434    }    }
435  }  }
436    
# Line 416  for (@gen_pfx) { Line 440  for (@gen_pfx) {
440                                                           %{$_->{opt}||{}},                                                           %{$_->{opt}||{}},
441                                                           make_new_prefix => 1);                                                           make_new_prefix => 1);
442    ok $chk->{success} && ($chk->{prefix} eq ($_->{n2p} || $_->{prefix})),    ok $chk->{success} && ($chk->{prefix} eq ($_->{n2p} || $_->{prefix})),
443       "$chk->{prefix} (@{[$_->{n2p} || $_->{prefix}]} is expected; $chk->{reason})";       "URI->Pfx: $chk->{prefix} (@{[$_->{n2p} || $_->{prefix}]} is expected; $chk->{reason})";
444  }  }
445    
446  for (@expand) {  for (@expand) {
# Line 429  for (@expand) { Line 453  for (@expand) {
453                ($e, $_->{qname}, %{$_->{opt}||{}});                ($e, $_->{qname}, %{$_->{opt}||{}});
454    ok $chk->{success} && ($_->{xname}->[0] eq $chk->{name}    ok $chk->{success} && ($_->{xname}->[0] eq $chk->{name}
455                       && $_->{xname}->[1] eq $chk->{local_name}),                       && $_->{xname}->[1] eq $chk->{local_name}),
456       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}));
457  }  }
458    
459  for (@expand) {  for (@expand) {
# Line 440  for (@expand) { Line 464  for (@expand) {
464    }    }
465    my $chk = Message::Markup::XML::QName::expanded_name_to_qname    my $chk = Message::Markup::XML::QName::expanded_name_to_qname
466                ($e, $_->{xname}->[0], $_->{xname}->[1], %{$_->{opt}||{}});                ($e, $_->{xname}->[0], $_->{xname}->[1], %{$_->{opt}||{}});
467    ok $chk->{success} && ($_->{qname} eq $chk->{qname}), $chk->{reason};    ok $chk->{success} && ($_->{qname} eq $chk->{qname}), 'Expand->QName: '.$chk->{reason};
468  }  }
469    
470  print $e;  print $e;

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24