/XML-TreePP/t/52_require_xml_decl.t

http://xml-treepp.googlecode.com/ · Raku · 54 lines · 52 code · 0 blank · 2 comment · 0 complexity · ea0425b342ece8a4a6ea7e3b6d39bb7c MD5 · raw file

  1. # ----------------------------------------------------------------
  2. use strict;
  3. use Test::More;
  4. # ----------------------------------------------------------------
  5. my $xml1 = <<"EOT";
  6. <root>
  7. <elem>value</elem>
  8. </root>
  9. EOT
  10. my $xml2 = <<"EOT";
  11. <?xml version="1.0" encoding="UTF-8"?>
  12. <root>
  13. <elem>value</elem>
  14. </root>
  15. EOT
  16. # ----------------------------------------------------------------
  17. {
  18. plan tests => 5;
  19. use_ok('XML::TreePP');
  20. my $tpp1 = XML::TreePP->new();
  21. my $tpp2 = XML::TreePP->new( require_xml_decl => 1 );
  22. my $res;
  23. my $die;
  24. ($res, $die) = &test($tpp1, $xml1);
  25. is($res->{root}->{elem}, 'value', 'no decl and default');
  26. ($res, $die) = &test($tpp1, $xml2);
  27. is($res->{root}->{elem}, 'value', 'has decl and default');
  28. ($res, $die) = &test($tpp2, $xml1);
  29. like($die, qr/^XML DECLARATION NOT FOUND/i, 'require_xml_decl works');
  30. ($res, $die) = &test($tpp2, $xml2);
  31. is($res->{root}->{elem}, 'value', 'has decl and require_xml_decl');
  32. }
  33. # ----------------------------------------------------------------
  34. sub test {
  35. my $tpp = shift;
  36. my $xml = shift;
  37. my $exp = shift;
  38. local $@;
  39. my $tree;
  40. eval {
  41. $tree = $tpp->parse($xml);
  42. };
  43. return ($tree, $@);
  44. }
  45. # ----------------------------------------------------------------
  46. ;1;
  47. # ----------------------------------------------------------------