fix bad import of help template variables. Loops are now handled correctly. Added a test with supporting collateral to make sure this does not happen again
This commit is contained in:
parent
9db0430032
commit
0c2f9f5ec7
4 changed files with 316 additions and 7 deletions
179
t/Help/isa.t
Normal file
179
t/Help/isa.t
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2007 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
use FindBin;
|
||||
use strict;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
|
||||
use WebGUI::Test;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Operation::Help;
|
||||
|
||||
use File::Copy;
|
||||
use File::Spec;
|
||||
|
||||
#The goal of this test is to verify Help inheritance, via the isa key field.
|
||||
#isa should bring in related items, form entries and template variables,
|
||||
#recursively.
|
||||
|
||||
use Test::More;
|
||||
use Test::Deep;
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
plan tests => 4;
|
||||
|
||||
installCollateral();
|
||||
|
||||
my $allHelp = WebGUI::Operation::Help::_load($session, 'HelpTest');
|
||||
|
||||
cmp_deeply(
|
||||
$allHelp->{'base one'},
|
||||
{
|
||||
title => 'base one title',
|
||||
body => 'base one body',
|
||||
variables => [
|
||||
{ name => 'base one var1', },
|
||||
{ name => 'base one var2', },
|
||||
{ name => 'base one var3', },
|
||||
],
|
||||
related => [],
|
||||
fields => [],
|
||||
isa => [],
|
||||
__PROCESSED => 1,
|
||||
},
|
||||
'fetching help with no isa relationships'
|
||||
);
|
||||
|
||||
cmp_deeply(
|
||||
$allHelp->{'isa one'},
|
||||
{
|
||||
title => 'isa one title',
|
||||
body => 'isa one body',
|
||||
variables => [
|
||||
{ name => 'isa one var1', },
|
||||
{ name => 'isa one var2', },
|
||||
{ name => 'isa one var3', },
|
||||
{ name => 'base one var1',
|
||||
description => undef,
|
||||
namespace => 'HelpTest'
|
||||
},
|
||||
{ name => 'base one var2',
|
||||
description => undef,
|
||||
namespace => 'HelpTest'
|
||||
},
|
||||
{ name => 'base one var3',
|
||||
description => undef,
|
||||
namespace => 'HelpTest'
|
||||
},
|
||||
],
|
||||
related => [],
|
||||
fields => [],
|
||||
isa => [
|
||||
{ namespace => "HelpTest",
|
||||
tag => "base one"
|
||||
},
|
||||
],
|
||||
__PROCESSED => 1,
|
||||
},
|
||||
'isa imports variables. Imported variables have explicit description and namespaces'
|
||||
);
|
||||
|
||||
cmp_deeply(
|
||||
$allHelp->{'isa loop one'},
|
||||
{
|
||||
title => 'isa loop one title',
|
||||
body => 'isa loop one body',
|
||||
variables => [
|
||||
{ name => 'isa loop one var1', },
|
||||
{ name => 'loop one var1',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
variables => [
|
||||
{ name => 'loop one loop1',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
},
|
||||
{ name => 'loop one loop2',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
},
|
||||
],
|
||||
},
|
||||
{ name => 'loop one var2',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
},
|
||||
],
|
||||
related => [],
|
||||
fields => [],
|
||||
isa => [
|
||||
{ namespace => "HelpTest",
|
||||
tag => "loop one"
|
||||
},
|
||||
],
|
||||
__PROCESSED => 1,
|
||||
},
|
||||
'isa imports variables with loops'
|
||||
);
|
||||
|
||||
cmp_deeply(
|
||||
$allHelp->{'isa deep loop'},
|
||||
{
|
||||
title => 'isa deep loop title',
|
||||
body => 'isa deep loop body',
|
||||
variables => [
|
||||
{ name => 'isa deep loop var1', },
|
||||
{ name => 'deep loop var1',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
variables => [
|
||||
{ name => 'deep loop loop2',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
variables => [
|
||||
{ name => 'deep loop loop3',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
variables => [
|
||||
{ name => 'deep loop loop4',
|
||||
description => undef,
|
||||
namespace => 'HelpTest',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
related => [],
|
||||
fields => [],
|
||||
isa => [
|
||||
{ namespace => "HelpTest",
|
||||
tag => "deep loop"
|
||||
},
|
||||
],
|
||||
__PROCESSED => 1,
|
||||
},
|
||||
'isa imports variables with nested loops'
|
||||
);
|
||||
|
||||
sub installCollateral {
|
||||
copy(
|
||||
File::Spec->catfile( WebGUI::Test->getTestCollateralPath, qw/Help HelpTest.pm/),
|
||||
File::Spec->catfile( WebGUI::Test->lib, qw/WebGUI Help/)
|
||||
);
|
||||
}
|
||||
|
||||
END: {
|
||||
unlink File::Spec->catfile(WebGUI::Test->lib, qw/WebGUI Help HelpTest.pm/);
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue