/[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.10 by wakaba, Sat Jul 7 12:26:23 2007 UTC revision 1.19 by wakaba, Sun Jul 15 12:54:07 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 => 2808 }  BEGIN { plan tests => 5310 }
5    
6  require Message::DOM::DOMImplementation;  require Message::DOM::DOMImplementation;
7  use Message::Util::Error;  use Message::Util::Error;
# Line 42  sub create_parent_nodes () { Line 42  sub create_parent_nodes () {
42    );    );
43  } # create_parent_nodes  } # create_parent_nodes
44    
45    sub create_leaf_nodes () {
46      (
47       $doc->create_cdata_section ('cdata1'),
48       $doc->create_comment ('comment1'),
49       $doc->create_notation ('notation1'),
50       $doc->create_processing_instruction ('pi1', 'pi1data'),
51       $doc->create_text_node ('text1'),
52      );
53    } # create_leaf_nodes
54    
55  ## Constants  ## Constants
56  my $constants = [  my $constants = [
57    [ELEMENT_NODE => 1],    [ELEMENT_NODE => 1],
# Line 65  my $constants = [ Line 75  my $constants = [
75    [DOCUMENT_POSITION_CONTAINS => 0x08],    [DOCUMENT_POSITION_CONTAINS => 0x08],
76    [DOCUMENT_POSITION_CONTAINED_BY => 0x10],    [DOCUMENT_POSITION_CONTAINED_BY => 0x10],
77    [DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC => 0x20],    [DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC => 0x20],
78    
79      [NODE_CLONED => 1],
80      [NODE_IMPORTED => 2],
81      [NODE_DELETED => 3],
82      [NODE_RENAMED => 4],
83      [NODE_ADOPTED => 5],
84  ];  ];
85    
86  my $tests = {  my $tests = {
# Line 94  my $tests = { Line 110  my $tests = {
110      attr_get_bool => {      attr_get_bool => {
111        has_attributes => 0,        has_attributes => 0,
112        has_child_nodes => 0,        has_child_nodes => 0,
113          is_id => 0,
114        manakai_read_only => 0,        manakai_read_only => 0,
115        specified => 1,        specified => 1,
116      },      },
# Line 126  my $tests = { Line 143  my $tests = {
143      attr_get_bool => {      attr_get_bool => {
144        has_attributes => 0,        has_attributes => 0,
145        has_child_nodes => 1,        has_child_nodes => 1,
146          is_id => 0,
147        manakai_read_only => 0,        manakai_read_only => 0,
148        specified => 1,        specified => 1,
149      },      },
# Line 153  my $tests = { Line 171  my $tests = {
171      attr_get_bool => {      attr_get_bool => {
172        has_attributes => 0,        has_attributes => 0,
173        has_child_nodes => 0,        has_child_nodes => 0,
174          is_id => 0,
175        manakai_read_only => 0,        manakai_read_only => 0,
176        specified => 1,        specified => 1,
177      },      },
# Line 180  my $tests = { Line 199  my $tests = {
199      attr_get_bool => {      attr_get_bool => {
200        has_attributes => 0,        has_attributes => 0,
201        has_child_nodes => 0,        has_child_nodes => 0,
202          is_id => 0,
203        manakai_read_only => 0,        manakai_read_only => 0,
204        specified => 1,        specified => 1,
205      },      },
# Line 207  my $tests = { Line 227  my $tests = {
227      attr_get_bool => {      attr_get_bool => {
228        has_attributes => 0,        has_attributes => 0,
229        has_child_nodes => 0,        has_child_nodes => 0,
230          is_id => 0,
231        manakai_read_only => 0,        manakai_read_only => 0,
232        specified => 1,        specified => 1,
233      },      },
# Line 410  my $tests = { Line 431  my $tests = {
431      },      },
432    },    },
433    document_type => {    document_type => {
434      node => sub { return $doc->implementation->create_document_type ('n') },      node => sub {
435          return $doc->implementation->create_document_type ('n', '', '');
436        },
437      attr_get => {      attr_get => {
438        attributes => undef,        attributes => undef,
439        base_uri => undef,        base_uri => undef,
# Line 419  my $tests = { Line 442  my $tests = {
442        manakai_expanded_uri => undef,        manakai_expanded_uri => undef,
443        first_child => undef,        first_child => undef,
444        implementation => $dom,        implementation => $dom,
445          internal_subset => '',
446        last_child => undef,        last_child => undef,
447        local_name => undef,        local_name => undef,
448        manakai_local_name => undef,        manakai_local_name => undef,
# Line 431  my $tests = { Line 455  my $tests = {
455        parent_node => undef,        parent_node => undef,
456        prefix => undef,        prefix => undef,
457        previous_sibling => undef,        previous_sibling => undef,
458        public_id => undef,        public_id => '',
459        system_id => undef,        system_id => '',
460      },      },
461      attr_get_bool => {      attr_get_bool => {
462        has_attributes => 0,        has_attributes => 0,
# Line 450  my $tests = { Line 474  my $tests = {
474        manakai_expanded_uri => undef,        manakai_expanded_uri => undef,
475        first_child => undef,        first_child => undef,
476        implementation => $dom,        implementation => $dom,
477          internal_subset => '',
478        last_child => undef,        last_child => undef,
479        local_name => undef,        local_name => undef,
480        manakai_local_name => undef,        manakai_local_name => undef,
# Line 462  my $tests = { Line 487  my $tests = {
487        parent_node => undef,        parent_node => undef,
488        prefix => undef,        prefix => undef,
489        previous_sibling => undef,        previous_sibling => undef,
490        public_id => undef,        public_id => '',
491        system_id => undef,        system_id => '',
492      },      },
493      attr_get_bool => {      attr_get_bool => {
494        has_attributes => 0,        has_attributes => 0,
# Line 474  my $tests = { Line 499  my $tests = {
499    element => {    element => {
500      node => sub { return $doc->create_element ('e') },      node => sub { return $doc->create_element ('e') },
501      attr_get => {      attr_get => {
       ## TODO: attributes =>  
502        base_uri => undef,        base_uri => undef,
503        manakai_base_uri => undef,        manakai_base_uri => undef,
504        manakai_expanded_uri => 'e',        manakai_expanded_uri => 'e',
# Line 491  my $tests = { Line 515  my $tests = {
515        parent_node => undef,        parent_node => undef,
516        prefix => undef,        prefix => undef,
517        previous_sibling => undef,        previous_sibling => undef,
518          tag_name => 'e',
519      },      },
520      attr_get_bool => {      attr_get_bool => {
521        has_attributes => 0,        has_attributes => 0,
# Line 501  my $tests = { Line 526  my $tests = {
526    element_ns_default => {    element_ns_default => {
527      node => sub { return $doc->create_element_ns ('http://test/', 'f') },      node => sub { return $doc->create_element_ns ('http://test/', 'f') },
528      attr_get => {      attr_get => {
       ## TODO: attributes =>  
529        base_uri => undef,        base_uri => undef,
530        manakai_base_uri => undef,        manakai_base_uri => undef,
531        manakai_expanded_uri => 'http://test/f',        manakai_expanded_uri => 'http://test/f',
# Line 518  my $tests = { Line 542  my $tests = {
542        parent_node => undef,        parent_node => undef,
543        prefix => undef,        prefix => undef,
544        previous_sibling => undef,        previous_sibling => undef,
545          tag_name => 'f',
546      },      },
547      attr_get_bool => {      attr_get_bool => {
548        has_attributes => 0,        has_attributes => 0,
# Line 528  my $tests = { Line 553  my $tests = {
553    element_ns_prefiexed => {    element_ns_prefiexed => {
554      node => sub { return $doc->create_element_ns ('http://test/', 'e:f') },      node => sub { return $doc->create_element_ns ('http://test/', 'e:f') },
555      attr_get => {      attr_get => {
       ## TODO: attributes =>  
556        base_uri => undef,        base_uri => undef,
557        manakai_base_uri => undef,        manakai_base_uri => undef,
558        manakai_expanded_uri => 'http://test/f',        manakai_expanded_uri => 'http://test/f',
# Line 545  my $tests = { Line 569  my $tests = {
569        parent_node => undef,        parent_node => undef,
570        prefix => 'e',        prefix => 'e',
571        previous_sibling => undef,        previous_sibling => undef,
572          tag_name => 'e:f',
573      },      },
574      attr_get_bool => {      attr_get_bool => {
575        has_attributes => 0,        has_attributes => 0,
# Line 569  my $tests = { Line 594  my $tests = {
594        node_value => undef,        node_value => undef,
595        notation_name => undef,        notation_name => undef,
596        owner_document => $doc,        owner_document => $doc,
597          owner_document_type_definition => undef,
598        parent_node => undef,        parent_node => undef,
599        previous_sibling => undef,        previous_sibling => undef,
600        public_id => undef,        public_id => undef,
# Line 626  my $tests = { Line 652  my $tests = {
652        node_type => 12,        node_type => 12,
653        node_value => undef,        node_value => undef,
654        owner_document => $doc,        owner_document => $doc,
655          owner_document_type_definition => undef,
656        parent_node => undef,        parent_node => undef,
657        prefix => undef,        prefix => undef,
658        previous_sibling => undef,        previous_sibling => undef,
# Line 708  my $tests = { Line 735  my $tests = {
735        node_type => 81001,        node_type => 81001,
736        node_value => undef,        node_value => undef,
737        owner_document => $doc,        owner_document => $doc,
738          owner_document_type_definition => undef,
739        parent_node => undef,        parent_node => undef,
740        prefix => undef,        prefix => undef,
741        previous_sibling => undef,        previous_sibling => undef,
# Line 734  my $tests = { Line 762  my $tests = {
762        next_sibling => undef,        next_sibling => undef,
763        node_name => 'e',        node_name => 'e',
764        node_type => 81002,        node_type => 81002,
765        node_value => undef,        node_value => '',
766        owner_document => $doc,        owner_document => $doc,
767          owner_element_type_definition => undef,
768        parent_node => undef,        parent_node => undef,
769        prefix => undef,        prefix => undef,
770        previous_sibling => undef,        previous_sibling => undef,
771          text_content => '',
772      },      },
773      attr_get_bool => {      attr_get_bool => {
774        has_attributes => 0,        has_attributes => 0,
# Line 775  for my $test_id (sort {$a cmp $b} keys % Line 805  for my $test_id (sort {$a cmp $b} keys %
805    
806  ## Child node accessors' tests  ## Child node accessors' tests
807  for my $parent (create_parent_nodes ()) {  for my $parent (create_parent_nodes ()) {
808      my $doc = $parent->owner_document || $parent;
809    my $node1;    my $node1;
810    my $node2;    my $node2;
811    my $node3;    my $node3;
# Line 792  for my $parent (create_parent_nodes ()) Line 823  for my $parent (create_parent_nodes ())
823      $node3 = $doc->create_text_node ('text3');      $node3 = $doc->create_text_node ('text3');
824    }    }
825    
826      $parent->manakai_set_read_only (0, 1);
827    $parent->append_child ($node1);    $parent->append_child ($node1);
828    ok $parent->first_child, $node1, $parent->node_name."->first_child [1]";    ok $parent->first_child, $node1, $parent->node_name."->first_child [1]";
829    ok $parent->last_child, $node1, $parent->node_name."->last_child [1]";    ok $parent->last_child, $node1, $parent->node_name."->last_child [1]";
# Line 1119  for my $node (create_nodes ()) { Line 1151  for my $node (create_nodes ()) {
1151      ok $node->text_content, 'stringSTRING', $node->node_name . ' [2]';      ok $node->text_content, 'stringSTRING', $node->node_name . ' [2]';
1152      ok 0+@{$node->child_nodes}, 1, $node->node_name . ' childNodes @{} 0+ [2]';      ok 0+@{$node->child_nodes}, 1, $node->node_name . ' childNodes @{} 0+ [2]';
1153    
1154      my $er = $doc->create_entity_reference ('er');      my $er = ($node->owner_document || $node)->create_entity_reference ('er');
1155      $node->append_child ($er);      $node->append_child ($er);
1156    
1157      $node->manakai_append_text ('text');      $node->manakai_append_text ('text');
# Line 1238  for my $i (0..1) { Line 1270  for my $i (0..1) {
1270             ]->[$i];             ]->[$i];
1271    
1272    my $doc2 = $doc->implementation->create_document;    my $doc2 = $doc->implementation->create_document;
1273      $doc2->strict_error_checking (0);
1274        
1275    my $el = $doc2->create_element_ns (undef, 'el');    my $el = $doc2->create_element_ns (undef, 'el');
1276    
# Line 1772  for (qw/create_text_node create_cdata_se Line 1805  for (qw/create_text_node create_cdata_se
1805    ok 0+@{$el->child_nodes}, 1, 'normalize [21]';    ok 0+@{$el->child_nodes}, 1, 'normalize [21]';
1806  }  }
1807    
1808    ## |getFeature| and |isSupported|
1809    for my $node (create_nodes ()) {
1810      for (
1811           [Core => '1.0', 1],
1812           [Core => '2.0', 1],
1813           [Core => '3.0', 1],
1814           ['+Core' => '3.0', 1],
1815           ['++Core' => '3.0', 0],
1816           [Core => '', 1],
1817           [Core => undef, 1],
1818           [Core => 3, 0],
1819           [Traversal => '2.0', 1], [Traversal => '', 1], [Traversal => '1.0', 0],
1820           [XML => '1.0', 1],
1821           [XML => '2.0', 1],
1822           [XML => '3.0', 1],
1823           [XML => '', 1],
1824           [XML => undef, 1],
1825           ['+XML' => undef, 1],
1826           [XMLVersion => '1.0', 1],
1827           [XMLVersion => '1.1', 1],
1828           [XMLVersion => '', 1],
1829           [XMLVersion => undef, 1],
1830           ['+XMLVersion' => undef, 1],
1831           [unknown => 3, 0],
1832           [unknown => '', 0],
1833           [unknown => undef, 0],
1834           ['+unknown' => undef, 0],
1835           [q<http://suika.fam.cx/www/2006/feature/xdoctype> => '', 1],
1836           [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] . ', ' .
1843            (defined $_->[1] ? $_->[1] : 'undef');
1844        ok $node->can ('get_feature') ? 1 : 0, 1, 'can get_feature ' . $label;
1845        ok $node->get_feature ($_->[0], $_->[1]), $_->[2] ? $node : undef,
1846            'get_feature ' . $label;
1847        ok $node->can ('is_supported') ? 1 : 0, 1, 'can is_supported ' . $label;
1848        ok $node->is_supported ($_->[0], $_->[1]) ? 1 : 0, $_->[2],
1849            'is_supported ' . $label;
1850      }
1851    }
1852    
1853    ## |isEqualNode|
1854    for my $node (create_nodes ()) {
1855      ok $node->can ('is_equal_node') ? 1 : 0, 1, $node->node_name . '->is_eq_n can';
1856    
1857      ok $node->is_equal_node ($node) ? 1 : 0, 1, $node->node_name . '->iseq self';
1858      ok $node == $node ? 1 : 0, 1, $node->node_name . ' == self';
1859      ok $node != $node ? 1 : 0, 0, $node->node_name . ' != self';
1860      ok $node == 'node' ? 1 : 0, 0, $node->node_name . ' == string';
1861      ok $node != 'node' ? 1 : 0, 1, $node->node_name . ' != string';
1862      ok $node == 0 ? 1 : 0, 0, $node->node_name . ' == num';
1863      ok $node != 0 ? 1 : 0, 1, $node->node_name . ' != num';
1864      ok $node == '' ? 1 : 0, 0, $node->node_name . ' == empty';
1865      ok $node != '' ? 1 : 0, 1, $node->node_name . ' != empty';
1866      ok $node == undef () ? 1 : 0, 0, $node->node_name . ' == undef';
1867      ok $node != undef () ? 1 : 0, 1, $node->node_name . ' != undef';
1868    }
1869    
1870    {
1871      my $el1 = $doc->create_element_ns (undef, 'type');
1872      my $el2 = $doc->create_element_ns (undef, 'type');
1873      my $el3 = $doc->create_element_ns (undef, 'TYPE');
1874    
1875      ok $el1 == $el2 ? 1 : 0, 1, 'Element == [1]';
1876      ok $el1 != $el2 ? 1 : 0, 0, 'Element != [1]';
1877      ok $el1 == $el3 ? 1 : 0, 0, 'Element == [2]';
1878      ok $el1 != $el3 ? 1 : 0, 1, 'Element != [2]';
1879    
1880      my $el4 = $doc->create_element_ns ('about:', 'type');
1881      my $el5 = $doc->create_element_ns ('about:', 'type');
1882      my $el6 = $doc->create_element_ns ('about:', 'TYPE');
1883      my $el7 = $doc->create_element_ns ('DAV:', 'type');
1884    
1885      ok $el1 == $el4 ? 1 : 0, 0, 'Element == [3]';
1886      ok $el1 != $el4 ? 1 : 0, 1, 'Element != [3]';
1887      ok $el4 == $el5 ? 1 : 0, 1, 'Element == [4]';
1888      ok $el4 != $el5 ? 1 : 0, 0, 'Element != [4]';
1889      ok $el4 == $el6 ? 1 : 0, 0, 'Element == [5]';
1890      ok $el4 != $el6 ? 1 : 0, 1, 'Element != [5]';
1891      ok $el4 == $el7 ? 1 : 0, 0, 'Element == [6]';
1892      ok $el4 != $el7 ? 1 : 0, 1, 'Element != [6]';
1893    
1894      $el5->prefix ('prefix');
1895      ok $el4 == $el5 ? 1 : 0, 0, 'Element == [7]';
1896      ok $el4 != $el5 ? 1 : 0, 1, 'Element != [7]';
1897    }
1898    
1899    ## |getUserData|, |setUserData|
1900    {
1901      my $node = $dom->create_document;
1902    
1903      my $data = ['2'];
1904      my $handler = sub { 1 };
1905    
1906      ok $node->set_user_data ('key1', $data, $handler), undef,
1907          'set_user_data [1]';
1908      
1909      my $key1_data = $node->get_user_data ('key1');
1910      ok $key1_data, $data, 'set_user_data [2]';
1911      ok $key1_data->[0], $data->[0], 'set_user_data [3]';
1912    
1913      my $data2 = ['4'];
1914      ok $node->set_user_data ('key1', $data2, undef), $data, 'set_user_data [4]';
1915      ok $node->get_user_data ('key1'), $data2, 'set_user_data [5]';
1916    
1917      $node->set_user_data (key1 => undef, $handler);
1918      ok $node->get_user_data ('key1'), undef, 'set_user_data [6]';
1919    
1920      $node->set_user_data (key1 => undef, undef);
1921      ok $node->get_user_data ('key1'), undef, 'set_user_data [7]';
1922    }
1923    
1924    ## |removeChild|
1925    {
1926      my $el = $doc->create_element ('p');
1927      my $c1 = $doc->create_element ('e');
1928      $el->append_child ($c1);
1929      my $c2 = $doc->create_element ('f');
1930      $el->append_child ($c2);
1931      my $c3 = $doc->create_element ('g');
1932      $el->append_child ($c3);
1933      ok $el->can ('remove_child') ? 1 : 0, 1, 'Node->remove_child can [0]';
1934    
1935      my $return = $el->remove_child ($c1);
1936      ok $return, $c1, 'Node->remove_child return [1]';
1937      ok $c1->parent_node, undef, 'Node->remove_child parent_node [1]';
1938      ok $el->first_child, $c2, 'Node->remove_child first_child [1]';
1939      ok $el->last_child, $c3, 'Node->remove_child last_child [1]';
1940      ok 0+@{$el->child_nodes}, 2, 'Node->remove_child child_nodes [1]';
1941    }
1942    {
1943      my $el = $doc->create_element ('p');
1944      my $c1 = $doc->create_element ('e');
1945      $el->append_child ($c1);
1946      my $c2 = $doc->create_element ('f');
1947      $el->append_child ($c2);
1948      my $c3 = $doc->create_element ('g');
1949      $el->append_child ($c3);
1950    
1951      my $return = $el->remove_child ($c2);
1952      ok $return, $c2, 'Node->remove_child return [2]';
1953      ok $c2->parent_node, undef, 'Node->remove_child parent_node [2]';
1954      ok $el->first_child, $c1, 'Node->remove_child first_child [2]';
1955      ok $el->last_child, $c3, 'Node->remove_child last_child [2]';
1956      ok 0+@{$el->child_nodes}, 2, 'Node->remove_child child_nodes [2]';
1957    }
1958    {
1959      my $el = $doc->create_element ('p');
1960      my $c1 = $doc->create_element ('e');
1961      $el->append_child ($c1);
1962      my $c2 = $doc->create_element ('f');
1963      $el->append_child ($c2);
1964      my $c3 = $doc->create_element ('g');
1965      $el->append_child ($c3);
1966    
1967      my $return = $el->remove_child ($c3);
1968      ok $return, $c3, 'Node->remove_child return [3]';
1969      ok $c3->parent_node, undef, 'Node->remove_child parent_node [3]';
1970      ok $el->first_child, $c1, 'Node->remove_child first_child [3]';
1971      ok $el->last_child, $c2, 'Node->remove_child last_child [3]';
1972      ok 0+@{$el->child_nodes}, 2, 'Node->remove_child child_nodes [3]';
1973    }
1974    {
1975      my $el = $doc->create_element ('p');
1976      my $c1 = $doc->create_element ('e');
1977      $el->append_child ($c1);
1978    
1979      my $return = $el->remove_child ($c1);
1980      ok $return, $c1, 'Node->remove_child return [4]';
1981      ok $c1->parent_node, undef, 'Node->remove_child parent_node [4]';
1982      ok $el->first_child, undef, 'Node->remove_child first_child [4]';
1983      ok $el->last_child, undef, 'Node->remove_child last_child [4]';
1984      ok 0+@{$el->child_nodes}, 0, 'Node->remove_child child_nodes [4]';
1985    }
1986    
1987    ## |appendChild|, |insertBefore|, |replaceChild|
1988    for my $node (create_leaf_nodes) {
1989      for my $method_name (qw/append_child insert_before replace_child/) {
1990        ok $node->can ($method_name) ? 1 : 0, 1,
1991            $node->node_name . '->can ' . $method_name;
1992    
1993        for my $node2 (create_nodes) {
1994          try {
1995            if ($method_name eq 'replace_child') {
1996              $node->replace_child ($node2, $node2);
1997            } else {
1998              $node->$method_name ($node2);
1999            }
2000            ok 1, 0,
2001                $node->node_name . '->' . $method_name . ' ' . $node2->node_name;
2002          } catch Message::IF::DOMException with {
2003            if ($_[0]->type eq 'HIERARCHY_REQUEST_ERR' or
2004                ($_[0]->type eq 'WRONG_DOCUMENT_ERR' and
2005                 ($node2->owner_document or $node2) ne $doc) or
2006                ($_[0]->type eq 'NOT_FOUND_ERR' and
2007                 $method_name eq 'replace_child')) {
2008              ok 1, 1,
2009                $node->node_name . '->' . $method_name . ' ' . $node2->node_name;
2010            }
2011          };
2012        }
2013      }
2014    }
2015    
2016  ## TODO: parent_node tests, as with append_child tests  ## TODO: parent_node tests, as with append_child tests
2017    
2018  ## TODO: text_content tests for CharacterData and PI  ## TODO: text_content tests for CharacterData and PI
2019    
2020    ## |UserDataHandler|, |setData|, and |NODE_DELETED|
2021    ## NOTE: This should be the last test, since it does define
2022    ## Node.DESTORY.
2023    {
2024      my $doc = $dom->create_document ('http://test/', 'ex');
2025      my $node = $doc->document_element;
2026      
2027      $node->set_user_data (key => {}, sub {
2028        my ($op, $key, $data, $src, $dest) = @_;
2029    
2030        ok $op, 3, 'set_user_data operation [8]'; # NODE_DELETED
2031        ok $key, 'key', 'set_user_data key [8]';
2032        ok ref $data, 'HASH', 'set_user_data data [8]';
2033        ok $src, undef, 'set_user_data src [8]';
2034        ok $dest, undef, 'set_user_data dest [8]';
2035      });
2036    
2037      undef $node;
2038      undef $doc;
2039    
2040      ## NOTE: We cannot control exactly when it is called.
2041    }
2042    
2043  =head1 LICENSE  =head1 LICENSE
2044    
2045  Copyright 2007 Wakaba <w@suika.fam.cx>  Copyright 2007 Wakaba <w@suika.fam.cx>

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.19

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24