X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fdom.t;h=e7ad2ecb93368889a4bbd1e2baeaa1e788fc1ee0;hb=4b5e2513f7ea1ac132c1bb5c6732516d6cb1b917;hp=d80a3c33aa2c0d063a292e0ab329961401c0c240;hpb=927f135111d601e084c5a50e2d806bddd5c9cefb;p=catagits%2FDOM-Tiny.git diff --git a/t/dom.t b/t/dom.t index d80a3c3..e7ad2ec 100644 --- a/t/dom.t +++ b/t/dom.t @@ -3,6 +3,7 @@ use warnings; use utf8; use Test::More; use DOM::Tiny; +use JSON::PP (); # Empty is(DOM::Tiny->new, '', 'right result'); @@ -242,6 +243,8 @@ is $dom->at('b')->child_nodes->[1]->next, undef, 'no siblings'; is $dom->at('script')->child_nodes->first->wrap(':)')->root, '', 'right result'; is $dom->at('i')->child_nodes->first->wrap_content('')->root, + '', 'no changes'; +is $dom->at('i')->child_nodes->first->wrap('')->root, '', 'right result'; is $dom->at('b')->child_nodes->first->ancestors->map('tag')->join(','), 'b,i,script', 'right result'; @@ -978,28 +981,28 @@ $dom->find('li:nth-last-child(4n+1)')->each(sub { push @li, shift->text }); is_deeply \@li, [qw(D H)], 'found the right li elements'; @li = (); $dom->find('li:nth-child(4n+4)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(D H)], 'found the right li element'; +is_deeply \@li, [qw(D H)], 'found the right li elements'; @li = (); $dom->find('li:nth-last-child(4n+4)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A E)], 'found the right li element'; +is_deeply \@li, [qw(A E)], 'found the right li elements'; @li = (); $dom->find('li:nth-child(4n)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(D H)], 'found the right li element'; +is_deeply \@li, [qw(D H)], 'found the right li elements'; @li = (); $dom->find('li:nth-child( 4n )')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(D H)], 'found the right li element'; +is_deeply \@li, [qw(D H)], 'found the right li elements'; @li = (); $dom->find('li:nth-last-child(4n)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A E)], 'found the right li element'; +is_deeply \@li, [qw(A E)], 'found the right li elements'; @li = (); $dom->find('li:nth-child(5n-2)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(C H)], 'found the right li element'; +is_deeply \@li, [qw(C H)], 'found the right li elements'; @li = (); $dom->find('li:nth-child( 5n - 2 )')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(C H)], 'found the right li element'; +is_deeply \@li, [qw(C H)], 'found the right li elements'; @li = (); $dom->find('li:nth-last-child(5n-2)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A F)], 'found the right li element'; +is_deeply \@li, [qw(A F)], 'found the right li elements'; @li = (); $dom->find('li:nth-child(-n+3)')->each(sub { push @li, shift->text }); is_deeply \@li, [qw(A B C)], 'found first three li elements'; @@ -1028,26 +1031,43 @@ is_deeply \@li, [qw(C F)], 'found every third li elements'; $dom->find('li:Nth-Last-Child(3N)')->each(sub { push @li, shift->text }); is_deeply \@li, [qw(C F)], 'found every third li elements'; @li = (); -$dom->find('li:nth-child(3)')->each(sub { push @li, shift->text }); +$dom->find('li:nth-child( 3 )')->each(sub { push @li, shift->text }); is_deeply \@li, ['C'], 'found third li element'; @li = (); -$dom->find('li:nth-last-child(3)')->each(sub { push @li, shift->text }); +$dom->find('li:nth-last-child( +3 )')->each(sub { push @li, shift->text }); is_deeply \@li, ['F'], 'found third last li element'; @li = (); $dom->find('li:nth-child(1n+0)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A B C D E F G)], 'found first three li elements'; +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; +@li = (); +$dom->find('li:nth-child(1n-0)')->each(sub { push @li, shift->text }); +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; +@li = (); +$dom->find('li:nth-child(n+0)')->each(sub { push @li, shift->text }); +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; +@li = (); +$dom->find('li:nth-child(n)')->each(sub { push @li, shift->text }); +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; @li = (); $dom->find('li:nth-child(n+0)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A B C D E F G)], 'found first three li elements'; +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; @li = (); $dom->find('li:NTH-CHILD(N+0)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A B C D E F G)], 'found first three li elements'; +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; @li = (); $dom->find('li:Nth-Child(N+0)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A B C D E F G)], 'found first three li elements'; +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; @li = (); $dom->find('li:nth-child(n)')->each(sub { push @li, shift->text }); -is_deeply \@li, [qw(A B C D E F G)], 'found first three li elements'; +is_deeply \@li, [qw(A B C D E F G)], 'found all li elements'; +@li = (); +$dom->find('li:nth-child(0n+1)')->each(sub { push @li, shift->text }); +is_deeply \@li, [qw(A)], 'found first li element'; +is $dom->find('li:nth-child(0n+0)')->size, 0, 'no results'; +is $dom->find('li:nth-child(0)')->size, 0, 'no results'; +is $dom->find('li:nth-child()')->size, 0, 'no results'; +is $dom->find('li:nth-child(whatever)')->size, 0, 'no results'; +is $dom->find('li:whatever(whatever)')->size, 0, 'no results'; # Even more pseudo-classes $dom = DOM::Tiny->new(<find('ul :nth-child(-n+3):not(li)')->each(sub { push @e, shift->text }); is_deeply \@e, ['B'], 'found first p element'; @e = (); +$dom->find('ul :nth-child(-n+3):NOT(li)')->each(sub { push @e, shift->text }); +is_deeply \@e, ['B'], 'found first p element'; +@e = (); $dom->find('ul :nth-child(-n+3):not(:first-child)') ->each(sub { push @e, shift->text }); is_deeply \@e, [qw(B C)], 'found second and third element'; @@ -1249,8 +1272,9 @@ is "$dom", <at('div')->text, 'A-1', 'right text'; is $dom->at('iv'), undef, 'no result'; -$dom->prepend('l')->prepend('alal')->prepend('a'); -is "$dom", <prepend('l')->prepend('alal')->prepend('a')->type, 'root', + 'right type'; +is "$dom", < 24
A-1
25
  • A
  • A1

    23

    B

    @@ -1258,8 +1282,8 @@ is "$dom", <
    D
    EOF -$dom->append('lalala'); -is "$dom", <append('lalala')->type, 'root', 'right type'; +is "$dom", < 24
    A-1
    25
  • A
  • A1

    23

    B

    @@ -2104,7 +2128,10 @@ is $dom->all_text, 'DOM Test', 'right text'; # Wrap elements $dom = DOM::Tiny->new('Test'); +is "$dom", 'Test', 'right result'; is $dom->wrap('')->type, 'root', 'right type'; +is "$dom", 'Test', 'no changes'; +is $dom->at('a')->wrap('')->type, 'tag', 'right type'; is "$dom", 'Test', 'right result'; is $dom->at('b')->strip->at('a')->wrap('A')->tag, 'a', 'right tag'; is "$dom", 'Test', 'right result'; @@ -2187,8 +2214,13 @@ $dom = DOM::Tiny->new(<

    Test

    + + + + +