Update tests for new profile field handling.
Change how the profileField method works in User.pm Reindent some User.pm method according to WGBP.
This commit is contained in:
parent
a300ce8194
commit
ef56d94eaf
4 changed files with 40 additions and 26 deletions
|
|
@ -37,6 +37,8 @@
|
|||
- fixed: Hover Help outdated: automatically request commit
|
||||
- fixed: Thingy: Subtext disappears when editing a field
|
||||
- fixed: WebGUI Search errors - boolean search using filtering does not work
|
||||
- Updated User->profileField method to return all default values as a scalar,
|
||||
rather than just the first option in the list.
|
||||
- fixed: Layout can now uncheck all Assets that are hidden. This also resolves any CheckList issue so that all buttons can be left blank.
|
||||
|
||||
7.5.18
|
||||
|
|
|
|||
|
|
@ -13,6 +13,11 @@ save you many hours of grief.
|
|||
using an earlier version you will need to upgrade this perl
|
||||
module before you upgrade.
|
||||
|
||||
* If a user profile field allowed multiple selects, and it also had
|
||||
more than one default value, the User method profileField would
|
||||
return the first. It will now return all default values as a string,
|
||||
joined by commas.
|
||||
|
||||
7.5.17
|
||||
--------------------------------------------------------------------
|
||||
* If users are allowed to self register and emails are not required, this
|
||||
|
|
|
|||
|
|
@ -218,23 +218,24 @@ Friend's group.
|
|||
|
||||
sub delete {
|
||||
my $self = shift;
|
||||
my $userId = $self->userId;
|
||||
$self->uncache;
|
||||
my $db = $self->session->db;
|
||||
foreach my $groupId (@{$self->getGroups($self->userId)}) {
|
||||
WebGUI::Group->new($self->session,$groupId)->deleteUsers([$self->userId]);
|
||||
foreach my $groupId (@{$self->getGroups($userId)}) {
|
||||
WebGUI::Group->new($self->session,$groupId)->deleteUsers([$userId]);
|
||||
}
|
||||
$self->friends->delete if ($self->{_user}{"friendsGroup"} ne "");
|
||||
$db->write("delete from inbox where userId=? and (groupId is null or groupId='')",[$self->{_userId}]);
|
||||
$db->write("delete from inbox where userId=? and (groupId is null or groupId='')",[$userId]);
|
||||
require WebGUI::Operation::Auth;
|
||||
my $authMethod = WebGUI::Operation::Auth::getInstance($self->session,$self->authMethod,$self->{_userId});
|
||||
$authMethod->deleteParams($self->{_userId});
|
||||
my $rs = $db->read("select sessionId from userSession where userId=?",[$self->{_userId}]);
|
||||
my $authMethod = WebGUI::Operation::Auth::getInstance($self->session,$self->authMethod,$userId);
|
||||
$authMethod->deleteParams($userId);
|
||||
my $rs = $db->read("select sessionId from userSession where userId=?",[$userId]);
|
||||
while (my ($id) = $rs->array) {
|
||||
$db->write("delete from userSessionScratch where sessionId=?",[$id]);
|
||||
}
|
||||
$db->write("delete from userSession where userId=?",[$self->{_userId}]);
|
||||
$db->write("delete from userProfileData where userId=?",[$self->{_userId}]);
|
||||
$db->write("delete from users where userId=?",[$self->{_userId}]);
|
||||
$db->write("delete from userSession where userId=?",[$userId]);
|
||||
$db->write("delete from userProfileData where userId=?",[$userId]);
|
||||
$db->write("delete from users where userId=?",[$userId]);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -575,7 +576,9 @@ sub new {
|
|||
}
|
||||
}
|
||||
|
||||
$profile{alias} = $user{username} if ($profile{alias} =~ /^\W+$/ || $profile{alias} eq "");
|
||||
if (($profile{alias} =~ /^\W+$/ || $profile{alias} eq "") and $user{username}) {
|
||||
$profile{alias} = $user{username};
|
||||
}
|
||||
$self->{_userId} = $userId;
|
||||
$self->{_user} = \%user,
|
||||
$self->{_profile} = \%profile,
|
||||
|
|
@ -683,6 +686,10 @@ sub profileField {
|
|||
my $default = $self->session->db->quickScalar("SELECT dataDefault FROM userProfileField WHERE fieldName=?", [$fieldName]);
|
||||
$self->{_profile}{$fieldName} = WebGUI::Operation::Shared::secureEval($self->session, $default);
|
||||
$self->cache;
|
||||
}
|
||||
if (ref $self->{_profile}{$fieldName} eq 'ARRAY') {
|
||||
##Return a scalar, that is a string with all the defaults
|
||||
return join ',', @{ $self->{_profile}{$fieldName} };
|
||||
}
|
||||
return $self->{_profile}{$fieldName};
|
||||
}
|
||||
|
|
@ -788,16 +795,16 @@ If specified, the username is set to this value.
|
|||
=cut
|
||||
|
||||
sub username {
|
||||
my $self = shift;
|
||||
my $value = shift;
|
||||
if (defined $value) {
|
||||
$self->uncache;
|
||||
$self->{_user}{"username"} = $value;
|
||||
$self->{_user}{"lastUpdated"} = $self->session->datetime->time();
|
||||
$self->session->db->write("update users set username=?, lastUpdated=? where userId=?",
|
||||
[$value, $self->session->datetime->time(), $self->userId]);
|
||||
}
|
||||
return $self->{_user}{"username"};
|
||||
my $self = shift;
|
||||
my $value = shift;
|
||||
if (defined $value) {
|
||||
$self->uncache;
|
||||
$self->{_user}{"username"} = $value;
|
||||
$self->{_user}{"lastUpdated"} = $self->session->datetime->time();
|
||||
$self->session->db->write("update users set username=?, lastUpdated=? where userId=?",
|
||||
[$value, $self->session->datetime->time(), $self->userId]);
|
||||
}
|
||||
return $self->{_user}{"username"};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
12
t/User.t
12
t/User.t
|
|
@ -20,7 +20,7 @@ use WebGUI::Cache;
|
|||
use WebGUI::User;
|
||||
use WebGUI::ProfileField;
|
||||
|
||||
use Test::More tests => 132; # increment this value for each test you create
|
||||
use Test::More tests => 133; # increment this value for each test you create
|
||||
use Test::Deep;
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
|
@ -39,7 +39,7 @@ my $userCreationTime = time();
|
|||
ok(defined ($user = WebGUI::User->new($session,"new")), 'new("new") -- object reference is defined');
|
||||
|
||||
#New does not return undef if something breaks, so we'll see if the _profile hash was set.
|
||||
ok(scalar %{$user->{_profile}} > 0, 'new("new") -- profile property contains at least one key');
|
||||
ok(exists $user->{_profile}, 'new("new") -- profile subhash exists');
|
||||
|
||||
#Let's assign a username
|
||||
$user->username("bill_lumberg");
|
||||
|
|
@ -84,7 +84,7 @@ is($user->profileField('notAProfileField'), undef, 'getting non-existant profile
|
|||
|
||||
##Check for valid profileField access, even if it is not cached in the user object.
|
||||
my $newProfileField = WebGUI::ProfileField->create($session, 'testField', {dataDefault => 'this is a test'});
|
||||
is($user->profileField('testField'), undef, 'getting profile fields not cached in the user object returns undef');
|
||||
is($user->profileField('testField'), 'this is a test', 'getting profile fields not cached in the user object returns the profile field default');
|
||||
|
||||
################################################################
|
||||
#
|
||||
|
|
@ -401,8 +401,6 @@ is( $busterCopy->profileField('timeZone'), 'America/Hillsboro', 'busterCopy rece
|
|||
|
||||
$profileField->set(\%originalFieldData);
|
||||
|
||||
$buster->username('mythBuster');
|
||||
|
||||
my $aliasProfile = WebGUI::ProfileField->new($session, 'alias');
|
||||
my %originalAliasProfile = %{ $aliasProfile->get() };
|
||||
my %copiedAliasProfile = %originalAliasProfile;
|
||||
|
|
@ -416,6 +414,8 @@ $copiedAliasProfile{'dataDefault'} = "'....^^^^....'"; ##Non word characters;
|
|||
$aliasProfile->set(\%copiedAliasProfile);
|
||||
$buster->uncache();
|
||||
|
||||
$buster->username('mythBuster');
|
||||
|
||||
$buster3 = WebGUI::User->new($session, $buster->userId);
|
||||
is($buster3->profileField('alias'), 'mythBuster', 'alias set to username since the default alias has only non-word characters');
|
||||
|
||||
|
|
@ -428,7 +428,7 @@ my $listProfileField = WebGUI::ProfileField->create($session, 'listProfile', \%l
|
|||
|
||||
$buster->uncache;
|
||||
$buster3 = WebGUI::User->new($session, $buster->userId);
|
||||
is($buster3->profileField('listProfile'), 'alpha', 'profile field with default data value that is a list gives the user the first value');
|
||||
is($buster3->profileField('listProfile'), 'alpha,delta,tango', 'profile field with default data value that is a list returns a string with all values as CSV');
|
||||
|
||||
################################################################
|
||||
#
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue