/[suikacvs]/messaging/manakai/t/DOM-Node.t
Suika

Diff of /messaging/manakai/t/DOM-Node.t

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

revision 1.17 by wakaba, Sat Jul 14 10:28:52 2007 UTC revision 1.20 by wakaba, Sat Aug 25 08:41:01 2007 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl  #!/usr/bin/perl
2  use strict;  use strict;
3  use Test;  use Test;
4  BEGIN { plan tests => 4918 }  BEGIN { plan tests => 5329 }
5    
6  require Message::DOM::DOMImplementation;  require Message::DOM::DOMImplementation;
7  use Message::Util::Error;  use Message::Util::Error;
8    
9  my $dom = Message::DOM::DOMImplementation->____new;  my $dom = Message::DOM::DOMImplementation->new;
10  my $doc = $dom->create_document;  my $doc = $dom->create_document;
11    
12    
# Line 1816  for my $node (create_nodes ()) { Line 1816  for my $node (create_nodes ()) {
1816         [Core => '', 1],         [Core => '', 1],
1817         [Core => undef, 1],         [Core => undef, 1],
1818         [Core => 3, 0],         [Core => 3, 0],
1819           [Traversal => '2.0', 1], [Traversal => '', 1], [Traversal => '1.0', 0],
1820         [XML => '1.0', 1],         [XML => '1.0', 1],
1821         [XML => '2.0', 1],         [XML => '2.0', 1],
1822         [XML => '3.0', 1],         [XML => '3.0', 1],
# Line 1833  for my $node (create_nodes ()) { Line 1834  for my $node (create_nodes ()) {
1834         ['+unknown' => undef, 0],         ['+unknown' => undef, 0],
1835         [q<http://suika.fam.cx/www/2006/feature/xdoctype> => '', 1],         [q<http://suika.fam.cx/www/2006/feature/xdoctype> => '', 1],
1836         [q<http://suika.fam.cx/www/2006/feature/xdoctype> => '3.0', 1],         [q<http://suika.fam.cx/www/2006/feature/xdoctype> => '3.0', 1],
1837           [q<http://suika.fam.cx/www/2006/feature/Atom> => '', 1],
1838           [q<http://suika.fam.cx/www/2006/feature/Atom> => '1.0', 1],
1839           [q<http://suika.fam.cx/www/2006/feature/AtomThreading> => '', 1],
1840           [q<http://suika.fam.cx/www/2006/feature/AtomThreading> => '1.0', 1],
1841        ) {        ) {
1842      my $label = $node->node_name . ' ' . $_->[0] . ', ' .      my $label = $node->node_name . ' ' . $_->[0] . ', ' .
1843          (defined $_->[1] ? $_->[1] : 'undef');          (defined $_->[1] ? $_->[1] : 'undef');
# Line 2035  for my $node (create_leaf_nodes) { Line 2040  for my $node (create_leaf_nodes) {
2040    ## NOTE: We cannot control exactly when it is called.    ## NOTE: We cannot control exactly when it is called.
2041  }  }
2042    
2043    ## |manakaiLanguage|
2044    {
2045      my $el = $doc->create_element_ns (undef, 'e');
2046      $doc->strict_error_checking (0);
2047    
2048      ok $el->manakai_language, '', 'mlanguage [0]';
2049    
2050      my $xml_ns = q<http://www.w3.org/XML/1998/namespace>;
2051      
2052      my $parent = $doc->create_element ('e');
2053      $parent->set_attribute_ns ($xml_ns, 'xml:lang', 'en');
2054      $parent->append_child ($el);
2055      ok $el->manakai_language, 'en', 'mlanguage [1]';
2056    
2057      my $parent2 = $doc->create_element_ns (undef, 'e');
2058      $parent2->set_attribute_ns (undef, [undef, 'xml:lang'], 'ja');
2059      $parent2->append_child ($el);
2060      ok $el->manakai_language, 'ja', 'mlanguage [2]';
2061    
2062      $el->set_attribute_ns ($xml_ns, 'xml:lang', 'en');
2063      ok $el->manakai_language, 'en', 'mlanguage [3]';
2064    
2065      $el->set_attribute_ns ($xml_ns, 'xml:lang', 'fr');
2066      $el->set_attribute_ns (undef, [undef, 'xml:lang'], 'es');
2067      ok $el->manakai_language, 'fr', 'mlanguage [4]';
2068    
2069      $el->remove_attribute_ns ($xml_ns, 'lang');
2070      ok $el->manakai_language, 'es', 'mlanguage [5]';
2071    }
2072    {
2073      my $el = $doc->create_element_ns (undef, 'e');
2074      my $xml_ns = q<http://www.w3.org/XML/1998/namespace>;
2075    
2076      $el->manakai_language ('ja');
2077      ok $el->manakai_language, 'ja', 'mlanguage [6]';
2078    
2079      my $attr = $el->get_attribute_node_ns ($xml_ns, 'lang');
2080      ok $attr->value, 'ja', 'mlanguage [7]';
2081      ok $attr->specified ? 1 : 0, 1, 'mlanguage [8]';
2082    
2083      $el->manakai_language ('en');
2084      ok $el->manakai_language, 'en', 'mlanguage [9]';
2085      ok $attr->value, 'en', 'mlanguage [a]';
2086    
2087      $el->manakai_language ('');
2088      ok $attr->value, '', 'mlanguage [b]';
2089      ok $attr->owner_element, $el, 'mlanguage [c]';
2090      ok $el->get_attribute_ns ($xml_ns, 'lang'), '', 'mlanguage [d]';
2091      ok $el->manakai_language, '', 'mlanguage [e]';
2092    
2093      $el->manakai_language (undef);
2094      ok $attr->value, '', 'mlanguage [f]';
2095      ok $attr->owner_element, undef, 'mlanguage [g]';
2096      ok $el->get_attribute_ns ($xml_ns, 'lang'), undef, 'mlanguage [h]';
2097      ok $el->manakai_language, '', 'mlanguage [i]';
2098    }
2099    
2100  =head1 LICENSE  =head1 LICENSE
2101    
2102  Copyright 2007 Wakaba <w@suika.fam.cx>  Copyright 2007 Wakaba <w@suika.fam.cx>

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.20

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24