The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

use strict;
local $^W = 1;
use Test::More 'no_plan';
my $tree = HTML::Element::Tiny->new(
[ html =>
[ head =>
[ title => "test" ],
],
[ body =>
[ p => { id => "intro" }, "Welcome to stuff" ],
[ p => "here's some more stuff" ],
[ p => "stuff sure is great" ],
[ p => "it's make of win" ],
[ p => { id => "conclusion" }, "so use stuff" ],
],
],
);
sub elems_ok {
my ($iter, $count, $label, $spec) = @_;
my @elems;
while (my $elem = $iter->next) { push @elems, $elem }
my $elems = HTML::Element::Tiny::Collection->new(@elems);
is($elems->size, $count, "$label: $count items");
if ($spec and %$spec) {
is($elems->filter($spec)->size, $count, "$label: all match");
}
}
elems_ok($tree->iter, 15, "all elems");
elems_ok($tree->find_iter({ -tag => '-text' }), 6, "text elems",
{ -tag => '-text' });