/home/.cpanm/work/1759492321.34808/XML-LibXML-2.0210/t
# -*- cperl -*- # $Id$ ## # this test checks the DOM Node interface of XML::LibXML # it relies on the success of t/01basic.t and t/02parse.t # it will ONLY test the DOM capabilities as specified in DOM Level3 # XPath tests should be done in another test file # since all tests are run on a preparsed # Should be 166. use Test::More tests => 195; use XML::LibXML; use XML::LibXML::Common qw(:libxml); use strict; use warnings; my $xmlstring = q{<foo>bar<foobar/><bar foo="foobar"/><!--foo--><![CDATA[&foo bar]]></foo>}; my $parser = XML::LibXML->new(); my $doc = $parser->parse_string( $xmlstring ); # 1 Standalone Without NameSpaces # 1.1 Node Attributes { my $node = $doc->documentElement; my $rnode; # TEST ok($node, ' TODO : Add test name'); # TEST is($node->nodeType, XML_ELEMENT_NODE, ' TODO : Add test name'); # TEST is($node->nodeName, "foo", ' TODO : Add test name'); # TEST ok(!defined( $node->nodeValue ), ' TODO : Add test name'); # TEST ok($node->hasChildNodes, ' TODO : Add test name'); # TEST is($node->textContent, "bar&foo bar", ' TODO : Add test name'); { my @children = $node->childNodes; # TEST is( scalar @children, 5, ' TODO : Add test name' ); # TEST is( $children[0]->nodeType, XML_TEXT_NODE, ' TODO : Add test name' ); # TEST is( $children[0]->nodeValue, "bar", ' TODO : Add test name' ); # TEST is( $children[4]->nodeType, XML_CDATA_SECTION_NODE, ' TODO : Add test name' ); # TEST is( $children[4]->nodeValue, "&foo bar", ' TODO : Add test name' ); my $fc = $node->firstChild; # TEST ok( $fc, ' TODO : Add test name' ); # TEST ok( $fc->isSameNode($children[0]), ' TODO : Add test name'); # TEST ok( $fc->baseURI =~ /unknown-/, ' TODO : Add test name' ); my $od = $fc->ownerDocument; # TEST ok( $od, ' TODO : Add test name' ); # TEST ok( $od->isSameNode($doc), ' TODO : Add test name'); my $xc = $fc->nextSibling; # TEST ok( $xc, ' TODO : Add test name' ); # TEST ok( $xc->isSameNode($children[1]), ' TODO : Add test name' ); $fc = $node->lastChild; # TEST ok( $fc, ' TODO : Add test name' ); # TEST ok( $fc->isSameNode($children[4]), ' TODO : Add test name'); $xc = $fc->previousSibling; # TEST ok( $xc, ' TODO : Add test name' ); # TEST ok( $xc->isSameNode($children[3]), ' TODO : Add test name' ); $rnode = $xc; $xc = $fc->parentNode; # TEST ok( $xc, ' TODO : Add test name' ); # TEST ok( $xc->isSameNode($node), ' TODO : Add test name' ); $xc = $children[2]; { # 1.2 Attribute Node # TEST ok( $xc->hasAttributes, ' TODO : Add test name' ); my $attributes = $xc->attributes; # TEST ok( $attributes, ' TODO : Add test name' ); # TEST is( ref($attributes), "XML::LibXML::NamedNodeMap", ' TODO : Add test name' ); # TEST is( $attributes->length, 1, ' TODO : Add test name' ); my $attr = $attributes->getNamedItem("foo"); # TEST ok( $attr, ' TODO : Add test name' ); # TEST is( $attr->nodeType, XML_ATTRIBUTE_NODE, ' TODO : Add test name' ); # TEST is( $attr->nodeName, "foo", ' TODO : Add test name' ); # TEST is( $attr->nodeValue, "foobar", ' TODO : Add test name' ); # TEST is( $attr->hasChildNodes, 0, ' TODO : Add test name'); } { my @attributes = $xc->attributes; # TEST is( scalar( @attributes ), 1, ' TODO : Add test name' ); } # 1.2 Node Cloning { my $cnode = $doc->createElement("foo"); $cnode->setAttribute('aaa','AAA'); $cnode->setAttributeNS('http://ns','x:bbb','BBB'); my $c1node = $doc->createElement("bar"); $cnode->appendChild( $c1node ); my $xnode = $cnode->cloneNode(0); # TEST ok( $xnode, ' TODO : Add test name' ); # TEST is( $xnode->nodeName, "foo", ' TODO : Add test name' ); # TEST ok( ! $xnode->hasChildNodes, ' TODO : Add test name' ); # TEST is( $xnode->getAttribute('aaa'),'AAA', ' TODO : Add test name' ); # TEST is( $xnode->getAttributeNS('http://ns','bbb'),'BBB', ' TODO : Add test name' ); $xnode = $cnode->cloneNode(1); # TEST ok( $xnode, ' TODO : Add test name' ); # TEST is( $xnode->nodeName, "foo", ' TODO : Add test name' ); # TEST ok( $xnode->hasChildNodes, ' TODO : Add test name' ); # TEST is( $xnode->getAttribute('aaa'),'AAA', ' TODO : Add test name' ); # TEST is( $xnode->getAttributeNS('http://ns','bbb'),'BBB', ' TODO : Add test name' ); my @cn = $xnode->childNodes; # TEST ok( @cn, ' TODO : Add test name' ); # TEST is( scalar(@cn), 1, ' TODO : Add test name'); # TEST is( $cn[0]->nodeName, "bar", ' TODO : Add test name' ); # TEST ok( !$cn[0]->isSameNode( $c1node ), ' TODO : Add test name' ); # clone namespaced elements my $nsnode = $doc->createElementNS( "fooNS", "foo:bar" ); my $cnsnode = $nsnode->cloneNode(0); # TEST is( $cnsnode->nodeName, "foo:bar", ' TODO : Add test name' ); # TEST ok( $cnsnode->localNS(), ' TODO : Add test name' ); # TEST is( $cnsnode->namespaceURI(), 'fooNS', ' TODO : Add test name' ); # clone namespaced elements (recursive) my $c2nsnode = $nsnode->cloneNode(1); # TEST is( $c2nsnode->toString(), $nsnode->toString(), ' TODO : Add test name' ); } # 1.3 Node Value my $string2 = "<foo>bar<tag>foo</tag></foo>"; { my $doc2 = $parser->parse_string( $string2 ); my $root = $doc2->documentElement; # TEST ok( ! defined($root->nodeValue), ' TODO : Add test name' ); # TEST is( $root->textContent, "barfoo", ' TODO : Add test name'); } } { my $children = $node->childNodes; # TEST ok( defined $children, ' TODO : Add test name' ); # TEST is( ref($children), "XML::LibXML::NodeList", ' TODO : Add test name' ); } # 2. (Child) Node Manipulation # 2.1 Valid Operations { # 2.1.1 Single Node my $inode = $doc->createElement("kungfoo"); # already tested my $jnode = $doc->createElement("kungfoo"); my $xn = $node->insertBefore($inode, $rnode); # TEST ok( $xn, ' TODO : Add test name' ); # TEST ok( $xn->isSameNode($inode), ' TODO : Add test name' ); $node->insertBefore( $jnode, undef ); my @ta = $node->childNodes(); $xn = pop @ta; # TEST ok( $xn->isSameNode( $jnode ), ' TODO : Add test name' ); $jnode->unbindNode; my @cn = $node->childNodes; # TEST is(scalar(@cn), 6, ' TODO : Add test name'); # TEST ok( $cn[3]->isSameNode($inode), ' TODO : Add test name' ); $xn = $node->removeChild($inode); # TEST ok($xn, ' TODO : Add test name'); # TEST ok($xn->isSameNode($inode), ' TODO : Add test name'); @cn = $node->childNodes; # TEST is(scalar(@cn), 5, ' TODO : Add test name'); # TEST ok( $cn[3]->isSameNode($rnode), ' TODO : Add test name' ); $xn = $node->appendChild($inode); # TEST ok($xn, ' TODO : Add test name'); # TEST ok($xn->isSameNode($inode), ' TODO : Add test name'); # TEST ok($xn->isSameNode($node->lastChild), ' TODO : Add test name'); $xn = $node->removeChild($inode); # TEST ok($xn, ' TODO : Add test name'); # TEST ok($xn->isSameNode($inode), ' TODO : Add test name'); # TEST ok($cn[-1]->isSameNode($node->lastChild), ' TODO : Add test name'); $xn = $node->replaceChild( $inode, $rnode ); # TEST ok($xn, ' TODO : Add test name'); # TEST ok($xn->isSameNode($rnode), ' TODO : Add test name'); my @cn2 = $node->childNodes; # TEST is(scalar(@cn), 5, ' TODO : Add test name'); # TEST ok( $cn2[3]->isSameNode($inode), ' TODO : Add test name' ); } { # insertAfter Tests my $anode = $doc->createElement("a"); my $bnode = $doc->createElement("b"); my $cnode = $doc->createElement("c"); my $dnode = $doc->createElement("d"); $anode->insertAfter( $bnode, undef ); # TEST is( $anode->toString(), '<a><b/></a>', ' TODO : Add test name' ); $anode->insertAfter( $dnode, undef ); # TEST is( $anode->toString(), '<a><b/><d/></a>', ' TODO : Add test name' ); $anode->insertAfter( $cnode, $bnode ); # TEST is( $anode->toString(), '<a><b/><c/><d/></a>', ' TODO : Add test name' ); } { my ($inode, $jnode ); $inode = $doc->createElement("kungfoo"); # already tested $jnode = $doc->createElement("foobar"); my $xn = $inode->insertBefore( $jnode, undef); # TEST ok( $xn, ' TODO : Add test name' ); # TEST ok( $xn->isSameNode( $jnode ), ' TODO : Add test name' ); } { # 2.1.2 Document Fragment my @cn = $doc->documentElement->childNodes; my $rnode= $doc->documentElement; my $frag = $doc->createDocumentFragment; my $node1= $doc->createElement("kung"); my $node2= $doc->createElement("foo"); $frag->appendChild($node1); $frag->appendChild($node2); my $xn = $node->appendChild( $frag ); # TEST ok($xn, ' TODO : Add test name'); my @cn2 = $node->childNodes; # TEST is(scalar(@cn2), 7, ' TODO : Add test name'); # TEST ok($cn2[-1]->isSameNode($node2), ' TODO : Add test name'); # TEST ok($cn2[-2]->isSameNode($node1), ' TODO : Add test name'); $frag->appendChild( $node1 ); $frag->appendChild( $node2 ); @cn2 = $node->childNodes; # TEST is(scalar(@cn2), 5, ' TODO : Add test name'); $xn = $node->replaceChild( $frag, $cn[3] ); # TEST ok($xn, ' TODO : Add test name'); # TEST ok($xn->isSameNode($cn[3]), ' TODO : Add test name'); @cn2 = $node->childNodes; # TEST is(scalar(@cn2), 6, ' TODO : Add test name'); $frag->appendChild( $node1 ); $frag->appendChild( $node2 ); $xn = $node->insertBefore( $frag, $cn[0] ); # TEST ok($xn, ' TODO : Add test name'); # TEST ok($node1->isSameNode($node->firstChild), ' TODO : Add test name'); @cn2 = $node->childNodes; # TEST is(scalar(@cn2), 6, ' TODO : Add test name'); } # 2.2 Invalid Operations # 2.3 DOM extensions { my $str = "<foo><bar/>com</foo>"; my $doc = XML::LibXML->new->parse_string( $str ); my $elem= $doc->documentElement; # TEST ok( $elem, ' TODO : Add test name' ); # TEST ok( $elem->hasChildNodes, ' TODO : Add test name' ); $elem->removeChildNodes; # TEST is( $elem->hasChildNodes,0, ' TODO : Add test name' ); $elem->toString; } } # 3 Standalone With NameSpaces { my $doc = XML::LibXML::Document->new(); my $URI ="http://kungfoo"; my $pre = "foo"; my $name= "bar"; my $elem = $doc->createElementNS($URI, $pre.":".$name); # TEST ok($elem, ' TODO : Add test name'); # TEST is($elem->nodeName, $pre.":".$name, ' TODO : Add test name'); # TEST is($elem->namespaceURI, $URI, ' TODO : Add test name'); # TEST is($elem->prefix, $pre, ' TODO : Add test name'); # TEST is($elem->localname, $name, ' TODO : Add test name' ); # TEST is( $elem->lookupNamespacePrefix( $URI ), $pre, ' TODO : Add test name'); # TEST is( $elem->lookupNamespaceURI( $pre ), $URI, ' TODO : Add test name'); my @ns = $elem->getNamespaces; # TEST is( scalar(@ns) ,1, ' TODO : Add test name' ); } # 4. Document swtiching { # 4.1 simple document my $docA = XML::LibXML::Document->new; { my $docB = XML::LibXML::Document->new; my $e1 = $docB->createElement( "A" ); my $e2 = $docB->createElement( "B" ); my $e3 = $docB->createElementNS( "http://kungfoo", "C:D" ); $e1->appendChild( $e2 ); $e1->appendChild( $e3 ); $docA->setDocumentElement( $e1 ); } my $elem = $docA->documentElement; my @c = $elem->childNodes; my $xroot = $c[0]->ownerDocument; # TEST ok( $xroot->isSameNode($docA), ' TODO : Add test name' ); } # 5. libxml2 specials { my $docA = XML::LibXML::Document->new; my $e1 = $docA->createElement( "A" ); my $e2 = $docA->createElement( "B" ); my $e3 = $docA->createElement( "C" ); $e1->appendChild( $e2 ); my $x = $e2->replaceNode( $e3 ); my @cn = $e1->childNodes; # TEST ok(@cn, ' TODO : Add test name'); # TEST is( scalar(@cn), 1, ' TODO : Add test name' ); # TEST ok($cn[0]->isSameNode($e3), ' TODO : Add test name'); # TEST ok($x->isSameNode($e2), ' TODO : Add test name'); $e3->addSibling( $e2 ); @cn = $e1->childNodes; # TEST is( scalar(@cn), 2, ' TODO : Add test name' ); # TEST ok($cn[0]->isSameNode($e3), ' TODO : Add test name'); # TEST ok($cn[1]->isSameNode($e2), ' TODO : Add test name'); } # 6. implicit attribute manipulation { my $parser = XML::LibXML->new(); my $doc = $parser->parse_string( '<foo bar="foo"/>' ); my $root = $doc->documentElement; my $attributes = $root->attributes; # TEST ok($attributes, ' TODO : Add test name'); my $newAttr = $doc->createAttribute( "kung", "foo" ); $attributes->setNamedItem( $newAttr ); my @att = $root->attributes; # TEST ok(@att, ' TODO : Add test name'); # TEST is(scalar(@att), 2, ' TODO : Add test name'); $newAttr = $doc->createAttributeNS( "http://kungfoo", "x:kung", "foo" ); $attributes->setNamedItem($newAttr); @att = $root->attributes; # TEST ok(@att, ' TODO : Add test name'); # TEST is(scalar(@att), 4, ' TODO : Add test name'); # because of the namespace ... $newAttr = $doc->createAttributeNS( "http://kungfoo", "x:kung", "bar" ); $attributes->setNamedItem($newAttr); @att = $root->attributes; # TEST ok(@att, ' TODO : Add test name'); # TEST is(scalar(@att), 4, ' TODO : Add test name'); # TEST ok($att[2]->isSameNode($newAttr), ' TODO : Add test name'); $attributes->removeNamedItem("x:kung"); @att = $root->attributes; # TEST ok(@att, ' TODO : Add test name'); # TEST is(scalar(@att), 3, ' TODO : Add test name'); # TEST is($attributes->length, 3, ' TODO : Add test name'); } # 7. importing and adopting { my $parser = XML::LibXML->new; my $doc1 = $parser->parse_string( "<foo>bar<foobar/></foo>" ); my $doc2 = XML::LibXML::Document->new; # TEST ok( $doc1 && $doc2, ' TODO : Add test name' ); my $rnode1 = $doc1->documentElement; # TEST ok( $rnode1, ' TODO : Add test name' ); my $rnode2 = $doc2->importNode( $rnode1 ); # TEST ok( ! $rnode2->isSameNode( $rnode1 ), ' TODO : Add test name' ) ; $doc2->setDocumentElement( $rnode2 ); my $node = $rnode2->cloneNode(0); # TEST ok( $node, ' TODO : Add test name' ); my $cndoc = $node->ownerDocument; # TEST ok( $cndoc, ' TODO : Add test name' ); # TEST ok( $cndoc->isSameNode( $doc2 ), ' TODO : Add test name' ); my $xnode = XML::LibXML::Element->new("test"); my $node2 = $doc2->importNode($xnode); # TEST ok( $node2, ' TODO : Add test name' ); my $cndoc2 = $node2->ownerDocument; # TEST ok( $cndoc2, ' TODO : Add test name' ); # TEST ok( $cndoc2->isSameNode( $doc2 ), ' TODO : Add test name' ); my $doc3 = XML::LibXML::Document->new; my $node3 = $doc3->adoptNode( $xnode ); # TEST ok( $node3, ' TODO : Add test name' ); # TEST ok( $xnode->isSameNode( $node3 ), ' TODO : Add test name' ); # TEST ok( $doc3->isSameNode( $node3->ownerDocument ), ' TODO : Add test name' ); my $xnode2 = XML::LibXML::Element->new("test"); $xnode2->setOwnerDocument( $doc3 ); # alternate version of adopt node # TEST ok( $xnode2->ownerDocument, ' TODO : Add test name' ); # TEST ok( $doc3->isSameNode( $xnode2->ownerDocument ), ' TODO : Add test name' ); } { # appending empty fragment my $doc = XML::LibXML::Document->new(); my $frag = $doc->createDocumentFragment(); my $root = $doc->createElement( 'foo' ); my $r = $root->appendChild( $frag ); # TEST ok( $r, ' TODO : Add test name' ); } { my $doc = XML::LibXML::Document->new('1.0', 'UTF-8'); my $schema = $doc->createElement('sphinx:schema'); eval { $schema->appendChild( $schema ) }; # TEST like ($@, qr/HIERARCHY_REQUEST_ERR/, ' Thrown HIERARCHY_REQUEST_ERR exception' ); } { my $doc = XML::LibXML::Document->new('1.0', 'UTF-8'); my $attr = $doc->createAttribute('test','bar'); my $ent = $doc->createEntityReference('foo'); my $text = $doc->createTextNode('baz'); $attr->appendChild($ent); $attr->appendChild($text); # TEST ok($attr->toString() eq ' test="bar&foo;baz"', ' TODO : Add test name'); } { my $string = <<'EOF'; <r> <a/> <b/> <![CDATA[ ]]> <!-- foo --> <![CDATA[ x ]]> <?foo bar?> <c/> text </r> EOF # TEST:$count=2; foreach my $arg_to_parse ($string, \$string) { my $doc = XML::LibXML->load_xml(string=>$arg_to_parse); my $r = $doc->getDocumentElement; # TEST*$count ok($r, ' TODO : Add test name'); my @nonblank = $r->nonBlankChildNodes; # TEST*$count is(join(',',map $_->nodeName,@nonblank), 'a,b,#comment,#cdata-section,foo,c,#text', ' TODO : Add test name' ); # TEST*$count is($r->firstChild->nodeName, '#text', ' TODO : Add test name'); my @all = $r->childNodes; # TEST*$count is(join(',',map $_->nodeName,@all), '#text,a,#text,b,#text,#cdata-section,#text,#comment,#text,#cdata-section,#text,foo,#text,c,#text', ' TODO : Add test name' ); my $f = $r->firstNonBlankChild; my $p; # TEST*$count is($f->nodeName, 'a', ' TODO : Add test name'); # TEST*$count is($f->nextSibling->nodeName, '#text', ' TODO : Add test name'); # TEST*$count is($f->previousSibling->nodeName, '#text', ' TODO : Add test name'); # TEST*$count ok( !$f->previousNonBlankSibling, ' TODO : Add test name' ); $p = $f; $f=$f->nextNonBlankSibling; # TEST*$count is($f->nodeName, 'b', ' TODO : Add test name'); # TEST*$count is($f->nextSibling->nodeName, '#text', ' TODO : Add test name'); # TEST*$count ok( $f->previousNonBlankSibling->isSameNode($p), ' TODO : Add test name' ); $p = $f; $f=$f->nextNonBlankSibling; # TEST*$count ok($f->isa('XML::LibXML::Comment'), ' TODO : Add test name'); # TEST*$count is($f->nextSibling->nodeName, '#text', ' TODO : Add test name'); # TEST*$count ok( $f->previousNonBlankSibling->isSameNode($p), ' TODO : Add test name' ); $p = $f; $f=$f->nextNonBlankSibling; # TEST*$count ok($f->isa('XML::LibXML::CDATASection'), ' TODO : Add test name'); # TEST*$count is($f->nextSibling->nodeName, '#text', ' TODO : Add test name'); # TEST*$count ok( $f->previousNonBlankSibling->isSameNode($p), ' TODO : Add test name' ); $p = $f; $f=$f->nextNonBlankSibling; # TEST*$count ok($f->isa('XML::LibXML::PI'), ' TODO : Add test name'); # TEST*$count is($f->nextSibling->nodeName, '#text', ' TODO : Add test name'); # TEST*$count ok( $f->previousNonBlankSibling->isSameNode($p), ' TODO : Add test name' ); $p = $f; $f=$f->nextNonBlankSibling; # TEST*$count is($f->nodeName, 'c', ' TODO : Add test name'); # TEST*$count is($f->nextSibling->nodeName, '#text', ' TODO : Add test name'); # TEST*$count ok( $f->previousNonBlankSibling->isSameNode($p), ' TODO : Add test name' ); $p = $f; $f=$f->nextNonBlankSibling; # TEST*$count is($f->nodeName, '#text', ' TODO : Add test name'); # TEST*$count is($f->nodeValue, "\n text\n", ' TODO : Add test name'); # TEST*$count ok(!$f->nextSibling, ' TODO : Add test name'); # TEST*$count ok( $f->previousNonBlankSibling->isSameNode($p), ' TODO : Add test name' ); $f=$f->nextNonBlankSibling; # TEST*$count ok(!defined $f, ' TODO : Add test name'); } } { # RT #94149 # https://rt.cpan.org/Ticket/Display.html?id=94149 my $orig = XML::LibXML::Text->new('Double '); my $ret = $orig->addSibling(XML::LibXML::Text->new('Free')); # TEST is( $ret->textContent, 'Double Free', 'merge text nodes with addSibling' ); }
.
Edit
..
Edit
00-report-prereqs.t
Edit
01basic.t
Edit
02parse.t
Edit
03doc.t
Edit
04node.t
Edit
05text.t
Edit
06elements.t
Edit
07dtd.t
Edit
08findnodes.t
Edit
09xpath.t
Edit
10ns.t
Edit
11memory.t
Edit
12html.t
Edit
13dtd.t
Edit
14sax.t
Edit
15nodelist.t
Edit
16docnodes.t
Edit
17callbacks.t
Edit
18docfree.t
Edit
19die_on_invalid_utf8_rt_58848.t
Edit
19encoding.t
Edit
20extras.t
Edit
21catalog.t
Edit
23rawfunctions.t
Edit
24c14n.t
Edit
25relaxng.t
Edit
26schema.t
Edit
27new_callbacks_simple.t
Edit
28new_callbacks_multiple.t
Edit
29id.t
Edit
30keep_blanks.t
Edit
30xpathcontext.t
Edit
31xpc_functions.t
Edit
32xpc_variables.t
Edit
35huge_mode.t
Edit
40reader.t
Edit
40reader_mem_error.t
Edit
41xinclude.t
Edit
42common.t
Edit
43options.t
Edit
44extent.t
Edit
45regex.t
Edit
46err_column.t
Edit
47load_xml_callbacks.t
Edit
48_RH5_double_free_rt83779.t
Edit
48_SAX_Builder_rt_91433.t
Edit
48_gh_pr63_detect_undef_values.t
Edit
48_memleak_rt_83744.t
Edit
48_reader_undef_warning_on_empty_str_rt106830.t
Edit
48_removeChild_crashes_rt_80395.t
Edit
48_replaceNode_DTD_nodes_rT_80521.t
Edit
48_rt123379_setNamespace.t
Edit
48_rt55000.t
Edit
48_rt93429_recover_2_in_html_parsing.t
Edit
48importing_nodes_IDs_rt_69520.t
Edit
49_load_html.t
Edit
49callbacks_returning_undef.t
Edit
49global_extent.t
Edit
50devel.t
Edit
51_parse_html_string_rt87089.t
Edit
60error_prev_chain.t
Edit
60struct_error.t
Edit
61error.t
Edit
62overload.t
Edit
71overloads.t
Edit
72destruction.t
Edit
80registryleak.t
Edit
90shared_clone_failed_rt_91800.t
Edit
90stack.t
Edit
90threads.t
Edit
91unique_key.t
Edit
cpan-changes.t
Edit
data
Edit
lib
Edit
namespace-magic-scalar-rt144415.t
Edit
pod-files-presence.t
Edit
pod.t
Edit
release-kwalitee.t
Edit
style-trailing-space.t
Edit