The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Mason::t::Globals;
$Mason::t::Globals::VERSION = '2.24';
use Test::Class::Most parent => 'Mason::Test::Class';

sub test_globals : Tests {
    my $self = shift;
    $self->setup_interp( allow_globals => [qw(scalar $scalar2)] );
    my $interp = $self->interp;
    $interp->set_global( 'scalar',   5 );
    $interp->set_global( '$scalar2', 'vanilla' );
    throws_ok { $interp->set_global( '$bad', 8 ) } qr/\$bad is not in the allowed globals list/;
    $self->add_comp(
        path => '/values',
        src  => '
scalar = <% $scalar %>
$scalar2 = <% $scalar2 %>
',
    );
    $self->test_comp(
        src => '
<& /values &>
% $scalar++;
% $scalar2 .= "s";
<& /values &>
',
        expect => '
scalar = 5
$scalar2 = vanilla


scalar = 6
$scalar2 = vanillas
',
    );
}

1;