The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use Test::More;
use Web::Query;

test('Web::Query');
test('Web::Query::LibXML') if eval "require Web::Query::LibXML; 1";

done_testing;

    
sub test {
    my $class = shift;    
    diag "testing $class";
    no warnings 'redefine';
    *wq = \&{$class . "::wq" };
    
    my $html = <<HTML;
    <div class="container">
      <div class="foo">Foo</div>
      <div class="bar">Bar</div>
    </div>
HTML
    
    
    # add($object)
    is join('|', wq($html)->find('.foo')->add(wq($html)->find('.bar'))->as_html)
        => '<div class="foo">Foo</div>|<div class="bar">Bar</div>', 'add($object)';
    
    
    # add($html)
    is join('|', wq($html)->find('.foo')->add('<div class="bar">Bar</div>')->as_html)
        => '<div class="foo">Foo</div>|<div class="bar">Bar</div>', 'add($html)';
    
    # add(@elements)
    is join('|', wq($html)->find('.foo')->add(@{ wq($html)->find('div')->{trees}})->as_html)
        => '<div class="foo">Foo</div>|<div class="foo">Foo</div>|<div class="bar">Bar</div>', 'add(@elements)';
    
    # add($selector, $xpath_context)
    is join('|', wq($html)->find('.foo')->add('.bar', wq($html)->{trees}->[0] )->as_html)
        => '<div class="foo">Foo</div>|<div class="bar">Bar</div>', 'add($selector, $xpath_context)';
}