1 |
#!/usr/bin/perl |
#!/usr/bin/perl |
2 |
use strict; |
use strict; |
3 |
use Test; |
use Test; |
4 |
BEGIN { plan tests => 5310 } |
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 |
|
|
1816 |
[Core => '', 1], |
[Core => '', 1], |
1817 |
[Core => undef, 1], |
[Core => undef, 1], |
1818 |
[Core => 3, 0], |
[Core => 3, 0], |
1819 |
|
[Events => '3.0', 1], ['+Events' => '3.0', 1], ['Events' => '', 1], |
1820 |
[Traversal => '2.0', 1], [Traversal => '', 1], [Traversal => '1.0', 0], |
[Traversal => '2.0', 1], [Traversal => '', 1], [Traversal => '1.0', 0], |
1821 |
[XML => '1.0', 1], |
[XML => '1.0', 1], |
1822 |
[XML => '2.0', 1], |
[XML => '2.0', 1], |
2041 |
## NOTE: We cannot control exactly when it is called. |
## NOTE: We cannot control exactly when it is called. |
2042 |
} |
} |
2043 |
|
|
2044 |
|
## |manakaiLanguage| |
2045 |
|
{ |
2046 |
|
my $el = $doc->create_element_ns (undef, 'e'); |
2047 |
|
$doc->strict_error_checking (0); |
2048 |
|
|
2049 |
|
ok $el->manakai_language, '', 'mlanguage [0]'; |
2050 |
|
|
2051 |
|
my $xml_ns = q<http://www.w3.org/XML/1998/namespace>; |
2052 |
|
|
2053 |
|
my $parent = $doc->create_element ('e'); |
2054 |
|
$parent->set_attribute_ns ($xml_ns, 'xml:lang', 'en'); |
2055 |
|
$parent->append_child ($el); |
2056 |
|
ok $el->manakai_language, 'en', 'mlanguage [1]'; |
2057 |
|
|
2058 |
|
my $parent2 = $doc->create_element_ns (undef, 'e'); |
2059 |
|
$parent2->set_attribute_ns (undef, [undef, 'xml:lang'], 'ja'); |
2060 |
|
$parent2->append_child ($el); |
2061 |
|
ok $el->manakai_language, 'ja', 'mlanguage [2]'; |
2062 |
|
|
2063 |
|
$el->set_attribute_ns ($xml_ns, 'xml:lang', 'en'); |
2064 |
|
ok $el->manakai_language, 'en', 'mlanguage [3]'; |
2065 |
|
|
2066 |
|
$el->set_attribute_ns ($xml_ns, 'xml:lang', 'fr'); |
2067 |
|
$el->set_attribute_ns (undef, [undef, 'xml:lang'], 'es'); |
2068 |
|
ok $el->manakai_language, 'fr', 'mlanguage [4]'; |
2069 |
|
|
2070 |
|
$el->remove_attribute_ns ($xml_ns, 'lang'); |
2071 |
|
ok $el->manakai_language, 'es', 'mlanguage [5]'; |
2072 |
|
} |
2073 |
|
{ |
2074 |
|
my $el = $doc->create_element_ns (undef, 'e'); |
2075 |
|
my $xml_ns = q<http://www.w3.org/XML/1998/namespace>; |
2076 |
|
|
2077 |
|
$el->manakai_language ('ja'); |
2078 |
|
ok $el->manakai_language, 'ja', 'mlanguage [6]'; |
2079 |
|
|
2080 |
|
my $attr = $el->get_attribute_node_ns ($xml_ns, 'lang'); |
2081 |
|
ok $attr->value, 'ja', 'mlanguage [7]'; |
2082 |
|
ok $attr->specified ? 1 : 0, 1, 'mlanguage [8]'; |
2083 |
|
|
2084 |
|
$el->manakai_language ('en'); |
2085 |
|
ok $el->manakai_language, 'en', 'mlanguage [9]'; |
2086 |
|
ok $attr->value, 'en', 'mlanguage [a]'; |
2087 |
|
|
2088 |
|
$el->manakai_language (''); |
2089 |
|
ok $attr->value, '', 'mlanguage [b]'; |
2090 |
|
ok $attr->owner_element, $el, 'mlanguage [c]'; |
2091 |
|
ok $el->get_attribute_ns ($xml_ns, 'lang'), '', 'mlanguage [d]'; |
2092 |
|
ok $el->manakai_language, '', 'mlanguage [e]'; |
2093 |
|
|
2094 |
|
$el->manakai_language (undef); |
2095 |
|
ok $attr->value, '', 'mlanguage [f]'; |
2096 |
|
ok $attr->owner_element, undef, 'mlanguage [g]'; |
2097 |
|
ok $el->get_attribute_ns ($xml_ns, 'lang'), undef, 'mlanguage [h]'; |
2098 |
|
ok $el->manakai_language, '', 'mlanguage [i]'; |
2099 |
|
} |
2100 |
|
|
2101 |
=head1 LICENSE |
=head1 LICENSE |
2102 |
|
|
2103 |
Copyright 2007 Wakaba <w@suika.fam.cx> |
Copyright 2007 Wakaba <w@suika.fam.cx> |