Do not log empty statuses in the InOutBoard.

This commit is contained in:
Colin Kuskie 2009-09-23 16:33:57 -07:00
parent 1ccb468914
commit 564378bba8
3 changed files with 32 additions and 5 deletions

View file

@ -4,6 +4,7 @@
- fixed #11025: Yo dudely in Wiki Keyword Search Template
- fixed #11027: trash warning but no trash-limbo warning
- fixed #11031: AssetProxy refering to trash-limbo asset
- fixed #11028: IOB: Not choosing status causes Problem With Request
7.8.0
- upgraded YUI to 2.8.0r4

View file

@ -407,10 +407,11 @@ sub www_setStatus {
my $delegate = $session->form->process('delegate');
if ($delegate eq $self->session->scratch->get("userId")) {
my $sessionUserId = $session->scratch->get("userId") || $session->user->userId;
$session->scratch->delete("userId");
$db->write("delete from InOutBoard_status where userId=? and assetId=?", [ $sessionUserId, $self->getId ]);
my $message = $session->form->process('message');
my $status = $session->form->process('status');
return $self->www_view if $status eq '';
$session->scratch->delete("userId");
my $message = $session->form->process('message');
$db->write("delete from InOutBoard_status where userId=? and assetId=?", [ $sessionUserId, $self->getId ]);
$db->write(
"insert into InOutBoard_status (assetId,userId,status,dateStamp,message) values (?,?,?,?,?)",
[$self->getId, $sessionUserId, $status, $session->datetime->time(), $message ],

View file

@ -18,7 +18,7 @@ use Test::MockObject::Extends;
use WebGUI::Test;
use WebGUI::Session;
use Test::More tests => 6; # increment this value for each test you create
use Test::More tests => 8; # increment this value for each test you create
use Test::Deep;
use Data::Dumper;
@ -27,6 +27,7 @@ my $templateMock = Test::MockObject->new({});
$templateMock->set_isa('WebGUI::Asset::Template');
$templateMock->set_always('getId', $templateId);
my $templateVars;
$templateMock->mock('prepare', sub { } );
$templateMock->mock('process', sub { $templateVars = $_[1]; } );
$templateMock->set_true('prepare');
@ -102,6 +103,29 @@ cmp_deeply(
},
'... set statusLog for a user'
);
$session->scratch->set('userId', $users[1]->userId);
$session->request->setup_body({
delegate => $users[1]->userId,
status => undef,
message => 'work time',
});
$board->www_setStatus;
$status = $session->db->quickHashRef('select * from InOutBoard_status where assetId=? and userId=?',[$board->getId, $users[1]->userId]);
cmp_deeply(
$status,
{ },
"... no status table entry made when the users's status is blank"
);
my $statusLog;
$statusLog = $session->db->quickHashRef('select * from InOutBoard_statusLog where assetId=? and userId=?',[$board->getId, $users[1]->userId]);
cmp_deeply(
$statusLog,
{ },
'... no statusLog set when status is blank'
);
$session->request->setup_body({ });
$session->scratch->delete('userId');
@ -123,7 +147,8 @@ cmp_bag(
username => 'red',
},
ignore(), ignore(), ignore(), ignore(),
]
],
'view: returns one entry for each user, entry is correct for user with status'
);
WebGUI::Test->unmockAssetId($templateId);