Skip to content

Commit

Permalink
Add more tests for Attributes.
Browse files Browse the repository at this point in the history
  • Loading branch information
dom committed Oct 21, 2005
1 parent 796455d commit 1420858
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lib/XML/Filter/Normalize.pm
Expand Up @@ -110,6 +110,12 @@ sub correct_element_data {
if ( !$v->{ Prefix } && $v->{ Name } && $v->{ Name } =~ m/:/ ) {
$v->{ Prefix } = ( split /:/, $v->{ Name }, 2 )[0];
}
elsif ( !$v->{ NamespaceURI } && $v->{ Prefix } ) {
$v->{ NamespaceURI } = $nsup->get_uri( $v->{ Prefix } );
}
elsif ( !$v->{ Name } && $v->{ Prefix } && $v->{ LocalName } ) {
$v->{ Name } = $v->{ Prefix } . ':' . $v->{ LocalName };
}
}

return $data;
Expand Down
68 changes: 68 additions & 0 deletions t/xml-filter-normalize.t
Expand Up @@ -207,6 +207,74 @@ my @test_data = (
Prefix => 'foo',
},
},
#----------------------------------------
{
desc => 'corrects missing NamespaceURI in Attribute',
ns => [ [ foo => $TEST_NS ] ],
in => {
Attributes => {
"{$TEST_NS}baz" => {
LocalName => 'baz',
Name => 'foo:baz',
Prefix => 'foo',
Value => 42,
},
},
Name => 'foo:bar',
LocalName => 'bar',
NamespaceURI => $TEST_NS,
Prefix => 'foo',
},
expected => {
Attributes => {
"{$TEST_NS}baz" => {
LocalName => 'baz',
Name => 'foo:baz',
NamespaceURI => $TEST_NS,
Prefix => 'foo',
Value => 42,
},
},
LocalName => 'bar',
Name => 'foo:bar',
NamespaceURI => $TEST_NS,
Prefix => 'foo',
},
},
#----------------------------------------
{
desc => 'corrects missing Name in Attribute',
ns => [ [ foo => $TEST_NS ] ],
in => {
Attributes => {
"{$TEST_NS}baz" => {
LocalName => 'baz',
NamespaceURI => $TEST_NS,
Prefix => 'foo',
Value => 42,
},
},
Name => 'foo:bar',
LocalName => 'bar',
NamespaceURI => $TEST_NS,
Prefix => 'foo',
},
expected => {
Attributes => {
"{$TEST_NS}baz" => {
LocalName => 'baz',
Name => 'foo:baz',
NamespaceURI => $TEST_NS,
Prefix => 'foo',
Value => 42,
},
},
LocalName => 'bar',
Name => 'foo:bar',
NamespaceURI => $TEST_NS,
Prefix => 'foo',
},
},
);
test_correct_element_data( $_ ) foreach @test_data;

Expand Down

0 comments on commit 1420858

Please sign in to comment.