Convert Survey::Test over to Moose.
This commit is contained in:
parent
91460a93d1
commit
c57649585a
2 changed files with 46 additions and 76 deletions
|
|
@ -2797,7 +2797,7 @@ sub www_editTest {
|
||||||
else {
|
else {
|
||||||
##We need a temporary test so that we can call dynamicForm, below
|
##We need a temporary test so that we can call dynamicForm, below
|
||||||
$testId = 'new';
|
$testId = 'new';
|
||||||
$test = WebGUI::Asset::Wobject::Survey::Test->create($session, { assetId => $self->getId });
|
$test = WebGUI::Asset::Wobject::Survey::Test->new($session, { assetId => $self->getId });
|
||||||
}
|
}
|
||||||
|
|
||||||
##Build the form
|
##Build the form
|
||||||
|
|
@ -2805,7 +2805,7 @@ sub www_editTest {
|
||||||
$form->hidden( name=>"func", value=>"editTestSave");
|
$form->hidden( name=>"func", value=>"editTestSave");
|
||||||
$form->hidden( name=>"testId", value=>$testId);
|
$form->hidden( name=>"testId", value=>$testId);
|
||||||
$form->hidden( name=>"assetId", value=>$self->getId);
|
$form->hidden( name=>"assetId", value=>$self->getId);
|
||||||
$form->dynamicForm([WebGUI::Asset::Wobject::Survey::Test->crud_definition($session)], 'properties', $test);
|
$test->crud_form($form, $test);
|
||||||
$form->submit;
|
$form->submit;
|
||||||
|
|
||||||
if ($testId eq 'new') {
|
if ($testId eq 'new') {
|
||||||
|
|
@ -2849,7 +2849,7 @@ sub www_editTestSave {
|
||||||
my $testId = $form->get('testId');
|
my $testId = $form->get('testId');
|
||||||
my $test;
|
my $test;
|
||||||
if ($testId eq 'new') {
|
if ($testId eq 'new') {
|
||||||
$test = WebGUI::Asset::Wobject::Survey::Test->create($session, { assetId => $self->getId });
|
$test = WebGUI::Asset::Wobject::Survey::Test->new($session, { assetId => $self->getId });
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$test = WebGUI::Asset::Wobject::Survey::Test->new($session, $testId);
|
$test = WebGUI::Asset::Wobject::Survey::Test->new($session, $testId);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,47 @@
|
||||||
package WebGUI::Asset::Wobject::Survey::Test;
|
package WebGUI::Asset::Wobject::Survey::Test;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use base qw/WebGUI::Crud/;
|
use Moose;
|
||||||
|
use WebGUI::Definition::Crud;
|
||||||
|
extends qw/WebGUI::Crud/;
|
||||||
|
define tableName => 'Survey_test';
|
||||||
|
define tableKey => 'testId';
|
||||||
|
define sequenceKey => 'assetId';
|
||||||
|
has testId => (
|
||||||
|
required => 1,
|
||||||
|
is => 'ro',
|
||||||
|
);
|
||||||
|
property assetId => (
|
||||||
|
label => 'assetId',
|
||||||
|
fieldType => 'hidden',
|
||||||
|
default => undef,
|
||||||
|
);
|
||||||
|
property name => (
|
||||||
|
fieldType => 'text',
|
||||||
|
label => [ 'test name', 'Asset_Survey' , ''],
|
||||||
|
hoverHelp => [ 'test name help', 'Asset_Survey' , ''],
|
||||||
|
default => '',
|
||||||
|
);
|
||||||
|
property test => (
|
||||||
|
fieldType => 'codearea',
|
||||||
|
label => [ 'test spec', 'Asset_Survey' , ''],
|
||||||
|
hoverHelp => [ 'test spec help', 'Asset_Survey' , ''],
|
||||||
|
syntax => 'js',
|
||||||
|
default => <<END_SPEC,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "My Test",
|
||||||
|
"test": {
|
||||||
|
"variable1": "yes",
|
||||||
|
"next": "section2",
|
||||||
|
);
|
||||||
|
},
|
||||||
|
]
|
||||||
|
END_SPEC
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use WebGUI::International;
|
use WebGUI::International;
|
||||||
use Test::Deep::NoTest;
|
use Test::Deep::NoTest;
|
||||||
use JSON::PP;
|
use JSON::PP;
|
||||||
|
|
@ -25,76 +65,6 @@ These methods are available from this class:
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 crud_definition ( )
|
|
||||||
|
|
||||||
WebGUI::Crud definition for this class.
|
|
||||||
|
|
||||||
=head3 tableName
|
|
||||||
|
|
||||||
Survey_test
|
|
||||||
|
|
||||||
=head3 tableKey
|
|
||||||
|
|
||||||
testId
|
|
||||||
|
|
||||||
=head3 sequenceKey
|
|
||||||
|
|
||||||
assetId, e.g. each Survey instance has its own sequence of tests.
|
|
||||||
|
|
||||||
=head3 properties
|
|
||||||
|
|
||||||
=head4 assetId
|
|
||||||
|
|
||||||
Identifies the Survey instance.
|
|
||||||
|
|
||||||
=head4 name
|
|
||||||
|
|
||||||
A name for the test
|
|
||||||
|
|
||||||
=head4 test
|
|
||||||
|
|
||||||
The test spec
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
sub crud_definition {
|
|
||||||
my ( $class, $session ) = @_;
|
|
||||||
my $definition = $class->SUPER::crud_definition($session);
|
|
||||||
$definition->{tableName} = 'Survey_test';
|
|
||||||
$definition->{tableKey} = 'testId';
|
|
||||||
$definition->{sequenceKey} = 'assetId';
|
|
||||||
my $properties = $definition->{properties};
|
|
||||||
my $i18n = WebGUI::International->new($session);
|
|
||||||
$properties->{assetId} = {
|
|
||||||
fieldType => 'hidden',
|
|
||||||
defaultValue => undef,
|
|
||||||
};
|
|
||||||
$properties->{name} = {
|
|
||||||
fieldType => 'text',
|
|
||||||
label => $i18n->get( 'test name', 'Asset_Survey' ),
|
|
||||||
hoverHelp => $i18n->get( 'test name help', 'Asset_Survey' ),
|
|
||||||
defaultValue => '',
|
|
||||||
};
|
|
||||||
$properties->{test} = {
|
|
||||||
fieldType => 'codearea',
|
|
||||||
label => $i18n->get( 'test spec', 'Asset_Survey' ),
|
|
||||||
hoverHelp => $i18n->get( 'test spec help', 'Asset_Survey' ),
|
|
||||||
syntax => 'js',
|
|
||||||
defaultValue => <<END_SPEC,
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"name": "My Test",
|
|
||||||
"test": {
|
|
||||||
"variable1": "yes",
|
|
||||||
"next": "section2",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
||||||
END_SPEC
|
|
||||||
};
|
|
||||||
return $definition;
|
|
||||||
}
|
|
||||||
|
|
||||||
=head2 run
|
=head2 run
|
||||||
|
|
||||||
Run this test. Returns TAP in a hashref.
|
Run this test. Returns TAP in a hashref.
|
||||||
|
|
@ -110,7 +80,7 @@ sub run {
|
||||||
return { tap => 'Bail Out! enableSurveyExpressionEngine config option disabled' };
|
return { tap => 'Bail Out! enableSurveyExpressionEngine config option disabled' };
|
||||||
}
|
}
|
||||||
|
|
||||||
my $spec = $self->get('test')
|
my $spec = $self->test
|
||||||
or return { tap => "Bail Out! Test spec undefined" };
|
or return { tap => "Bail Out! Test spec undefined" };
|
||||||
|
|
||||||
# Use JSON::PP rather than JSON::XS so that we can use things like allow_barekey
|
# Use JSON::PP rather than JSON::XS so that we can use things like allow_barekey
|
||||||
|
|
@ -126,7 +96,7 @@ sub run {
|
||||||
return { tap => "Bail Out! Invalid test spec: $error" };
|
return { tap => "Bail Out! Invalid test spec: $error" };
|
||||||
}
|
}
|
||||||
|
|
||||||
my $assetId = $self->get('assetId');
|
my $assetId = $self->assetId;
|
||||||
my $survey = WebGUI::Asset::Wobject::Survey->newById($session, $assetId);
|
my $survey = WebGUI::Asset::Wobject::Survey->newById($session, $assetId);
|
||||||
if (!$survey || !$survey->isa('WebGUI::Asset::Wobject::Survey') ) {
|
if (!$survey || !$survey->isa('WebGUI::Asset::Wobject::Survey') ) {
|
||||||
return { tap => "Bail Out! Unable to instantiate Survey using assetId: $assetId" };
|
return { tap => "Bail Out! Unable to instantiate Survey using assetId: $assetId" };
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue