diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index b7b7cbd67..29058dca4 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -22,6 +22,7 @@ use HTML::Packer; use Moose; use WebGUI::Types; use Data::Dumper; +use WebGUI::FormBuilder; use WebGUI::Definition::Asset; define assetName => ['asset', 'Asset']; diff --git a/lib/WebGUI/FormBuilder/Role/HasFields.pm b/lib/WebGUI/FormBuilder/Role/HasFields.pm index f8cacc9a9..47509487a 100644 --- a/lib/WebGUI/FormBuilder/Role/HasFields.pm +++ b/lib/WebGUI/FormBuilder/Role/HasFields.pm @@ -9,7 +9,7 @@ requires 'session', 'pack', 'unpack'; has 'fields' => ( is => 'rw', - isa => 'ArrayRef[WebGUI::Form::Control]', + isa => 'ArrayRef', default => sub { [] }, ); diff --git a/lib/WebGUI/FormBuilder/Role/HasFieldsets.pm b/lib/WebGUI/FormBuilder/Role/HasFieldsets.pm index 06b606135..50507dc22 100644 --- a/lib/WebGUI/FormBuilder/Role/HasFieldsets.pm +++ b/lib/WebGUI/FormBuilder/Role/HasFieldsets.pm @@ -5,7 +5,7 @@ use Moose::Role; has 'fieldsets' => ( is => 'rw', - isa => 'ArrayRef[WebGUI::FormBuilder::Fieldset]', + isa => 'ArrayRef', default => sub { [] }, ); diff --git a/lib/WebGUI/FormBuilder/Role/HasObjects.pm b/lib/WebGUI/FormBuilder/Role/HasObjects.pm index 19d1e4ed3..45a69ade3 100644 --- a/lib/WebGUI/FormBuilder/Role/HasObjects.pm +++ b/lib/WebGUI/FormBuilder/Role/HasObjects.pm @@ -4,7 +4,7 @@ use Moose::Role; has 'objects' => ( is => 'rw', - isa => 'ArrayRef[Object]', + isa => 'ArrayRef', default => sub { [] }, ); diff --git a/lib/WebGUI/FormBuilder/Role/HasTabs.pm b/lib/WebGUI/FormBuilder/Role/HasTabs.pm index edf39d339..027b10919 100644 --- a/lib/WebGUI/FormBuilder/Role/HasTabs.pm +++ b/lib/WebGUI/FormBuilder/Role/HasTabs.pm @@ -9,7 +9,7 @@ requires 'session', 'pack', 'unpack'; has 'tabsets' => ( is => 'rw', - isa => 'ArrayRef[WebGUI::FormBuilder::Tabset]', + isa => 'ArrayRef', default => sub { [] }, ); @@ -137,6 +137,7 @@ Get a tabset object by name sub getTabset { my ( $self, $name ) = @_; + $name ||= "default"; return $self->{_tabsetsByName}{$name}; } diff --git a/lib/WebGUI/FormBuilder/Tabset.pm b/lib/WebGUI/FormBuilder/Tabset.pm index 9881bd227..ff9034dc6 100644 --- a/lib/WebGUI/FormBuilder/Tabset.pm +++ b/lib/WebGUI/FormBuilder/Tabset.pm @@ -12,7 +12,7 @@ has 'name' => ( has 'tabs' => ( is => 'rw', - isa => 'ArrayRef[WebGUI::FormBuilder::Tab]', + isa => 'ArrayRef', default => sub { [] }, ); diff --git a/t/tests/Test/WebGUI/Asset.pm b/t/tests/Test/WebGUI/Asset.pm index 9c23647cc..25aed9271 100644 --- a/t/tests/Test/WebGUI/Asset.pm +++ b/t/tests/Test/WebGUI/Asset.pm @@ -346,6 +346,23 @@ sub getEditForm : Tests { my $session = $test->session; my ( $tag, $asset, @parents ) = $test->getAnchoredAsset(); + my $f = $asset->getEditForm; + + isa_ok( $f, 'WebGUI::FormBuilder' ); + + # assetId, className, keywords + isa_ok( $f->getField('assetId'), 'WebGUI::Form::Guid' ); + isa_ok( $f->getField('className'), 'WebGUI::Form::ClassName' ); + isa_ok( $f->getField('keywords'), 'WebGUI::Form::Keywords' ); + + # Properties + + # Metadata + + # Property overrides + + not_ok( $f->getField('func'), 'form must not contain "func"' ); + } sub www_editSave : Tests { @@ -353,6 +370,8 @@ sub www_editSave : Tests { my ( $test ) = @_; my $session = $test->session; my ( $tag, $asset, @parents ) = $test->getAnchoredAsset(); + + # Alter permissions so www_editSave works my $oldGroupId = $asset->groupIdEdit; $asset->groupIdEdit( 7 ); # Everybody! Everybody! @@ -367,6 +386,11 @@ sub www_editSave : Tests { ok( $newRevision->tagId, 'new revision has a tag' ); is( $newRevision->tagId, $tag->getId, 'new revision tagId is current working tag' ); + + # Alter permissions so it does not work + + # Set locked so it does not work + $asset->groupIdEdit( $oldGroupId ); }