webgui/t/Asset/editFormOverride.t

43 lines
1.1 KiB
Perl

use warnings;
use strict;
use FindBin;
use lib "$FindBin::Bin/../lib";
use lib "$FindBin::Bin/../t/lib";
use WebGUI::Test;
use WebGUI::Asset;
use Test::More tests => 2;
use Monkey::Patch qw(patch_class);
my $session = WebGUI::Test->session;
WebGUI::Test->originalConfig('assets/WebGUI::Asset::Wobject::Layout');
my $asset = WebGUI::Asset->getTempspace($session)->addChild(
{
className => 'WebGUI::Asset::Wobject::Layout',
}
);
WebGUI::Test->addToCleanup($asset);
sub capture {
my $save;
my $patch = patch_class 'WebGUI::Form::Control' => new => sub {
my $orig = shift;
my $self = $orig->(@_);
my $name = $self->get('name');
$save = $self if $name && $name eq 'assetsToHide';
return $self;
};
$asset->getEditForm;
#use Data::Dumper::Concise;
#print STDERR '# ' . Dumper $save->{_params};
return $save;
}
my $config = $session->config;
my $pfx = 'assets/WebGUI::Asset::Wobject::Layout/fields/assetsToHide';
$config->set("$pfx/uiLevel", 1);
is capture->get('uiLevel'), 1, 'uiLevel override to 1';
$config->set("$pfx/uiLevel", "2");
is capture->get('uiLevel'), 2, 'uiLEvel override to 2';