language: perl
perl:
+ - "5.22"
- "5.20"
- "5.18"
- "5.16"
{{$NEXT}}
- Merge several CSS bugfixes and improvements from Mojolicious 6.31 and 6.32.
+ - Merge wrap and wrap_content bugfixes from Mojolicious 6.34.
0.002 2015-11-09 19:28:42 EST
- Support perl 5.8 (mst)
$dom = $dom->append('<p>I ♥ DOM::Tiny!</p>');
-Append HTML/XML fragment to this node.
+Append HTML/XML fragment to this node (for all node types other than C<root>).
# "<div><h1>Test</h1><h2>123</h2></div>"
$dom->parse('<div><h1>Test</h1></div>')
$dom = $dom->prepend('<p>I ♥ DOM::Tiny!</p>');
-Prepend HTML/XML fragment to this node.
+Prepend HTML/XML fragment to this node (for all node types other than C<root>).
# "<div><h1>Test</h1><h2>123</h2></div>"
$dom->parse('<div><h2>123</h2></div>')
$dom = $dom->wrap('<div></div>');
-Wrap HTML/XML fragment around this node, placing it as the last child of the
-first innermost element.
+Wrap HTML/XML fragment around this node (for all node types other than C<root>),
+placing it as the last child of the first innermost element.
# "<p>123<b>Test</b></p>"
$dom->parse('<b>Test</b>')->at('b')->wrap('<p>123</p>')->root;
$dom = $dom->wrap_content('<div></div>');
-Wrap HTML/XML fragment around this node's content, placing it as the last
-children of the first innermost element.
+Wrap HTML/XML fragment around this node's content (for C<root> and C<tag>
+nodes), placing it as the last children of the first innermost element.
# "<p><b>123Test</b></p>"
$dom->parse('<p>Test<p>')->at('p')->wrap_content('<b>123</b>')->root;
sub _wrap {
my ($self, $content, $new) = @_;
- $content = 1 if (my $tree = $self->tree)->[0] eq 'root';
- $content = 0 if $tree->[0] ne 'root' && $tree->[0] ne 'tag';
+ return $self if (my $tree = $self->tree)->[0] eq 'root' && !$content;
+ return $self if $tree->[0] ne 'root' && $tree->[0] ne 'tag' && $content;
# Find innermost tag
my $current;
$dom = $dom->append('<p>I ♥ DOM::Tiny!</p>');
-Append HTML/XML fragment to this node.
+Append HTML/XML fragment to this node (for all node types other than C<root>).
# "<div><h1>Test</h1><h2>123</h2></div>"
$dom->parse('<div><h1>Test</h1></div>')
$dom = $dom->prepend('<p>I ♥ DOM::Tiny!</p>');
-Prepend HTML/XML fragment to this node.
+Prepend HTML/XML fragment to this node (for all node types other than C<root>).
# "<div><h1>Test</h1><h2>123</h2></div>"
$dom->parse('<div><h2>123</h2></div>')
$dom = $dom->wrap('<div></div>');
-Wrap HTML/XML fragment around this node, placing it as the last child of the
-first innermost element.
+Wrap HTML/XML fragment around this node (for all node types other than C<root>),
+placing it as the last child of the first innermost element.
# "<p>123<b>Test</b></p>"
$dom->parse('<b>Test</b>')->at('b')->wrap('<p>123</p>')->root;
$dom = $dom->wrap_content('<div></div>');
-Wrap HTML/XML fragment around this node's content, placing it as the last
-children of the first innermost element.
+Wrap HTML/XML fragment around this node's content (for C<root> and C<tag>
+nodes), placing it as the last children of the first innermost element.
# "<p><b>123Test</b></p>"
$dom->parse('<p>Test<p>')->at('p')->wrap_content('<b>123</b>')->root;
is $dom->at('script')->child_nodes->first->wrap('<i>:)</i>')->root,
'<script><i>:)a</i><b>fce</b>1<b>d</b></script>', 'right result';
is $dom->at('i')->child_nodes->first->wrap_content('<b></b>')->root,
+ '<script><i>:)a</i><b>fce</b>1<b>d</b></script>', 'no changes';
+is $dom->at('i')->child_nodes->first->wrap('<b></b>')->root,
'<script><i><b>:)</b>a</i><b>fce</b>1<b>d</b></script>', 'right result';
is $dom->at('b')->child_nodes->first->ancestors->map('tag')->join(','),
'b,i,script', 'right result';
EOF
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", <<EOF, 'no change';
+is $dom->prepend('l')->prepend('alal')->prepend('a')->type, 'root',
+ 'right type';
+is "$dom", <<EOF, 'no changes';
<ul>
24<div>A-1</div>25<li>A</li><p>A1</p>23
<p>B</p>
</ul>
<div>D</div>
EOF
-$dom->append('lalala');
-is "$dom", <<EOF, 'no change';
+is $dom->append('lalala')->type, 'root', 'right type';
+is "$dom", <<EOF, 'no changes';
<ul>
24<div>A-1</div>25<li>A</li><p>A1</p>23
<p>B</p>
# Wrap elements
$dom = DOM::Tiny->new('<a>Test</a>');
+is "$dom", '<a>Test</a>', 'right result';
is $dom->wrap('<b></b>')->type, 'root', 'right type';
+is "$dom", '<a>Test</a>', 'no changes';
+is $dom->at('a')->wrap('<b></b>')->type, 'tag', 'right type';
is "$dom", '<b><a>Test</a></b>', 'right result';
is $dom->at('b')->strip->at('a')->wrap('A')->tag, 'a', 'right tag';
is "$dom", '<a>Test</a>', 'right result';