Revert "One-line fix for Survey ExpressionEngine bug that took over a day to find."
This reverts commit bcd99945ca.
This commit is contained in:
parent
bcd99945ca
commit
5899fa4289
3 changed files with 4 additions and 34 deletions
|
|
@ -9,7 +9,6 @@
|
|||
- Set a minimum package weight of 0.1 oz for the USPS driver.
|
||||
- Handle per package errors in USPS response data.
|
||||
- fixed #11207: Shop Email receipts going out to everyone.
|
||||
- fixed tag-caching bug in Survey ExpressionEngine
|
||||
|
||||
7.8.3
|
||||
- Rewrote Spectre's workflow queues to prevent it from "forgetting" about some workflows.
|
||||
|
|
|
|||
|
|
@ -24,10 +24,8 @@ use WebGUI::Asset;
|
|||
use WebGUI::Asset::Wobject::Survey;
|
||||
Params::Validate::validation_options( on_fail => sub { WebGUI::Error::InvalidParam->throw( error => shift ) } );
|
||||
|
||||
# We need these as file-scoped lexicals so that our utility subs (which are shared with the safe compartment)
|
||||
# We need these as semi-globals so that utility subs (which are shared with the safe compartment)
|
||||
# can access them.
|
||||
# N.B. If you add any new ones, make sure you initialize them in L<run> otherwise they will be cached across
|
||||
# unrelated engine runs, which leads to bugs that are hairy to track down
|
||||
my $session;
|
||||
my $values;
|
||||
my $scores;
|
||||
|
|
@ -433,7 +431,7 @@ sub run {
|
|||
my ( $s, $expression, $opts )
|
||||
= validate_pos( @_, { isa => 'WebGUI::Session' }, { type => SCALAR }, { type => HASHREF, default => {} } );
|
||||
|
||||
# Initialize all file-scoped lexicals that our Safe utility subs have access to
|
||||
# Init package globals
|
||||
$session = $s;
|
||||
$values = $opts->{values} || {};
|
||||
$scores = $opts->{scores} || {};
|
||||
|
|
@ -441,7 +439,6 @@ sub run {
|
|||
$validate = $opts->{validate};
|
||||
$validTargets = $opts->{validTargets};
|
||||
$tags = $opts->{tags} || {};
|
||||
$otherInstances = {};
|
||||
|
||||
if ( !$session->config->get('enableSurveyExpressionEngine') ) {
|
||||
$session->log->debug('enableSurveyExpressionEngine config option disabled, skipping');
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ my $session = WebGUI::Test->session;
|
|||
|
||||
#----------------------------------------------------------------------------
|
||||
# Tests
|
||||
my $tests = 60;
|
||||
my $tests = 58;
|
||||
plan tests => $tests + 1;
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
|
@ -236,34 +236,8 @@ SKIP: {
|
|||
{ jump => 'target', tags => {} }, 'external score resolves ok too' );
|
||||
cmp_deeply( $e->run( $session, qq{jump {scoreX('$url', ext_s0) == 200} target}, {userId => $user->userId} ),
|
||||
{ jump => 'target', tags => {} }, 'external score section totals work too' );
|
||||
cmp_deeply( $e->run( $session, qq{jump {taggedX('$url', ext_tag) == 199} target}, {userId => $user->userId} ),
|
||||
cmp_deeply( $e->run( $session, qq{jump {taggedX('$url', ext_tag, 1) == 199} target}, {userId => $user->userId} ),
|
||||
{ jump => 'target', tags => {} }, 'external tag lookups work too' );
|
||||
|
||||
# Test for nasty bugs caused by file-scoped lexicals not being properly initialised in L<ExpressionEngine::run>
|
||||
{
|
||||
# Create a second test user
|
||||
my $survey2 = WebGUI::Asset::Wobject::Survey->new($session, $survey->getId);
|
||||
my $user2 = WebGUI::User->new( $session, 'new' );
|
||||
WebGUI::Test->usersToDelete($user2);
|
||||
$session->user({userId => $user2->userId});
|
||||
my $responseId2 = $survey2->responseId( { userId => $user2->userId } );
|
||||
my $rJSON2 = $survey2->responseJSON(undef, $responseId2);
|
||||
$rJSON2->recordResponses({
|
||||
'0-0-0' => 'My ext_s0q0a0 answer',
|
||||
'0-1-0' => 'My ext_s0q1a0 answer',
|
||||
});
|
||||
$rJSON2->processExpression(q{ tag(ext_tag, 299) });
|
||||
# Remember to persist our changes..
|
||||
$survey2->persistSurveyJSON();
|
||||
$survey2->persistResponseJSON();
|
||||
$survey2->surveyEnd;
|
||||
|
||||
cmp_deeply( $e->run( $session, qq{jump {taggedX('$url', ext_tag) == 299} target}, {userId => $user2->userId} ),
|
||||
{ jump => 'target', tags => {} }, 'external tag not cached' );
|
||||
|
||||
cmp_deeply( $e->run( $session, qq{jump {taggedX('$url', ext_tag) == 199} target}, {userId => $user->userId} ),
|
||||
{ jump => 'target', tags => {} }, 'first external tag lookups still works' );
|
||||
}
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue