Revert "One-line fix for Survey ExpressionEngine bug that took over a day to find."

This reverts commit bcd99945ca.
This commit is contained in:
Patrick Donelan 2009-11-05 22:37:50 -05:00
parent bcd99945ca
commit 5899fa4289
3 changed files with 4 additions and 34 deletions

View file

@ -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.

View file

@ -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');

View file

@ -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' );
}
}
#----------------------------------------------------------------------------