X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Factions.t;h=c2df1df2aaf263f0f10a35744b942091965deb50;hb=bf07288fe4550dffb8aa7f9a887fa7b00701e104;hp=c89a5b8c44d7457654c50e93c11e932f891a0f41;hpb=1cf035405cb81b780825c083cf7f5c0767b19243;p=catagits%2FHTML-Zoom.git diff --git a/t/actions.t b/t/actions.t index c89a5b8..c2df1df 100644 --- a/t/actions.t +++ b/t/actions.t @@ -55,6 +55,14 @@ is( 'set attribute on existing attribute' ); +($expect = $tmpl) =~ s/class="main"/class="foo"/; + +is( + run_for { $_->set_attr({ name => 'class', value => 'foo' }) }, + $expect, + 'set attribute on existing attribute (shorthand)' +); + ($expect = $tmpl) =~ s/class="main"/class="main" foo="bar"/; is( @@ -71,6 +79,22 @@ is( 'add attribute on existing attribute' ); +($expect = $tmpl) =~ s/class="main"/class="main foo"/; + +is( + run_for { $_->add_class('foo') }, + $expect, + 'add attribute on existing attribute (shorthand)' +); + +($expect = $tmpl) =~ s/class="main"/class="main" id="foo"/; + +is( + run_for { $_->set_id('foo') }, + $expect, + 'set_id (shorthand)' +); + ($expect = $tmpl) =~ s/class="main"/class="main" foo="bar"/; is( @@ -93,6 +117,64 @@ is( 'remove attribute on non existing attribute' ); +($expect = $tmpl) =~ s/ class="main"//; + +is( + run_for { + $_->transform_attribute({ + name => 'class', + code => sub { + my $a = shift; + return if $a eq 'main'; + return $a; + }, + }) + }, + $expect, + 'transform_attribute deletes the attr if code returns undef', + ); + +($expect = $tmpl) =~ s/ class="main"/ class="moan"/; + +is( + run_for { + $_->transform_attribute({ + name => 'class', + code => sub { + ( my $b = shift ) =~ s/main/moan/; + $b + }, + }) + }, + $expect, + 'transform_attribute transforms something', + ); + +($expect = $tmpl) =~ s/ class="main"/ class="main" noggin="zonk"/; + +is( + run_for { + $_->transform_attribute({ + name => 'noggin', + code => sub { 'zonk' }, + }) + }, + $expect, + 'transform_attribute adds attribute if not there before', + ); + +is( + run_for { + $_->transform_attribute({ + name => 'noggin', + code => sub { }, + }) + }, + $tmpl, + 'transform_attribute on nonexistent att does not add it if code returns undef', + ); + + ($expect = $tmpl) =~ s/(?= 'TEXT', raw => 'O HAI' } ];