enforce some restrictions for assets

This commit is contained in:
Graham Knop 2009-10-22 10:21:10 -05:00
parent 9b31593dae
commit d26c3c2ed3
2 changed files with 83 additions and 3 deletions

View file

@ -16,6 +16,7 @@ use FindBin;
use lib "$FindBin::Bin/../lib";
use Test::More 'no_plan'; #tests => 1;
use Test::Exception;
use WebGUI::Test;
{
@ -25,13 +26,16 @@ use WebGUI::Test;
tableName => 'mytable',
properties => [
showInForms => {
fieldType => 'Text',
label => ['show in forms'],
},
confirmChange => {
fieldType => 'Text',
label => ['confirm change', 'Asset'],
tableName => 'othertable',
},
noTrans => {
fieldType => 'Text',
label => 'this label will not be translated',
},
],
@ -56,3 +60,64 @@ is $object->getProperty('confirmChange')->{label}, 'Are you sure?',
is $object->getProperty('noTrans')->{label}, 'this label will not be translated',
q{getProperty doesn't internationalize plain scalars};
{
package WGT::Class2;
use Test::Exception;
throws_ok { WebGUI::Definition::Asset->import(
properties => [],
) } 'WebGUI::Error::InvalidParam', 'Exception thrown when no tableName specified';
throws_ok { WebGUI::Definition::Asset->import(
tableName => 'mytable',
properties => [
'property1' => {
label => 'label',
},
],
) } 'WebGUI::Error::InvalidParam', 'Exception thrown when no fieldType specified';
throws_ok { WebGUI::Definition::Asset->import(
tableName => 'mytable',
properties => [
'property1' => {
fieldType => sub { return 'Text' },
label => 'label',
},
],
) } 'WebGUI::Error::InvalidParam', 'Exception thrown when dynamic fieldType specified';
throws_ok { WebGUI::Definition::Asset->import(
tableName => 'mytable',
properties => [
'property1' => {
tableName => sub { return 'othertable' },
fieldType => 'Text',
label => 'label',
},
],
) } 'WebGUI::Error::InvalidParam', 'Exception thrown when dynamic tableName specified';
throws_ok { WebGUI::Definition::Asset->import(
tableName => 'mytable',
properties => [
'property1' => {
fieldType => 'Text',
},
],
) } 'WebGUI::Error::InvalidParam', 'Exception thrown when no label specified';
throws_ok { WebGUI::Definition::Asset->import(
tableName => 'mytable',
properties => [
'property1' => {
fieldType => 'Text',
noFormPost => sub { 1 },
},
],
) } 'WebGUI::Error::InvalidParam', 'Exception thrown when no label and noFormPost is dynamic';
lives_ok { WebGUI::Definition::Asset->import(
tableName => 'mytable',
properties => [
'property1' => {
fieldType => 'Text',
noFormPost => 1,
},
],
) } 'Allows no label when noFormPost specified';
}