Merge commit 'v7.10.15' into 8
Conflicts: docs/gotcha.txt docs/previousVersion.sql docs/templates.txt lib/WebGUI.pm lib/WebGUI/Asset.pm lib/WebGUI/Asset/Event.pm lib/WebGUI/Asset/File.pm lib/WebGUI/Asset/MapPoint.pm lib/WebGUI/Asset/RichEdit.pm lib/WebGUI/Asset/Sku/Product.pm lib/WebGUI/Asset/Snippet.pm lib/WebGUI/Asset/Story.pm lib/WebGUI/Asset/Template.pm lib/WebGUI/Asset/Template/TemplateToolkit.pm lib/WebGUI/Asset/Wobject/Calendar.pm lib/WebGUI/Asset/Wobject/Carousel.pm lib/WebGUI/Asset/Wobject/Collaboration.pm lib/WebGUI/Asset/Wobject/Dashboard.pm lib/WebGUI/Asset/Wobject/DataForm.pm lib/WebGUI/Asset/Wobject/Folder.pm lib/WebGUI/Asset/Wobject/Map.pm lib/WebGUI/Asset/Wobject/Search.pm lib/WebGUI/Asset/Wobject/Shelf.pm lib/WebGUI/Asset/Wobject/StockData.pm lib/WebGUI/Asset/Wobject/StoryTopic.pm lib/WebGUI/Asset/Wobject/SyndicatedContent.pm lib/WebGUI/Asset/Wobject/Thingy.pm lib/WebGUI/Asset/Wobject/WeatherData.pm lib/WebGUI/AssetClipboard.pm lib/WebGUI/AssetCollateral/DataForm/Entry.pm lib/WebGUI/AssetExportHtml.pm lib/WebGUI/AssetLineage.pm lib/WebGUI/AssetMetaData.pm lib/WebGUI/AssetTrash.pm lib/WebGUI/AssetVersioning.pm lib/WebGUI/Auth.pm lib/WebGUI/Cache/CHI.pm lib/WebGUI/Content/AssetManager.pm lib/WebGUI/Fork/ProgressBar.pm lib/WebGUI/Form/JsonTable.pm lib/WebGUI/Form/TimeField.pm lib/WebGUI/Form/Zipcode.pm lib/WebGUI/Group.pm lib/WebGUI/International.pm lib/WebGUI/Macro/AssetProxy.pm lib/WebGUI/Macro/FileUrl.pm lib/WebGUI/Operation/SSO.pm lib/WebGUI/Operation/User.pm lib/WebGUI/Role/Asset/Subscribable.pm lib/WebGUI/Shop/Cart.pm lib/WebGUI/Shop/Transaction.pm lib/WebGUI/Shop/TransactionItem.pm lib/WebGUI/Test.pm lib/WebGUI/URL/Content.pm lib/WebGUI/URL/Uploads.pm lib/WebGUI/User.pm lib/WebGUI/Workflow/Activity/ExtendCalendarRecurrences.pm lib/WebGUI/Workflow/Activity/SendNewsletters.pm lib/WebGUI/i18n/English/Asset.pm lib/WebGUI/i18n/English/WebGUI.pm sbin/installClass.pl sbin/rebuildLineage.pl sbin/search.pl sbin/testEnvironment.pl t/Asset/Asset.t t/Asset/AssetClipboard.t t/Asset/AssetLineage.t t/Asset/AssetMetaData.t t/Asset/Event.t t/Asset/File.t t/Asset/File/Image.t t/Asset/Post/notification.t t/Asset/Sku.t t/Asset/Story.t t/Asset/Template.t t/Asset/Wobject/Collaboration/templateVariables.t t/Asset/Wobject/Collaboration/unarchiveAll.t t/Asset/Wobject/Shelf.t t/Auth.t t/Macro/EditableToggle.t t/Macro/FilePump.t t/Shop/Cart.t t/Shop/Transaction.t t/Storage.t t/User.t t/Workflow.t
This commit is contained in:
commit
277faae8a1
783 changed files with 32041 additions and 25495 deletions
69
t/User.t
69
t/User.t
|
|
@ -19,13 +19,14 @@ use WebGUI::User;
|
|||
use WebGUI::ProfileField;
|
||||
use WebGUI::Shop::AddressBook;
|
||||
|
||||
use Test::More tests => 225; # increment this value for each test you create
|
||||
use Test::More tests => 233; # increment this value for each test you create
|
||||
use Test::Deep;
|
||||
use Data::Dumper;
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
$session->cache->remove('myTestKey');
|
||||
WebGUI::Test->addToCleanup(sub { $session->cache->remove('myTestKey') });
|
||||
|
||||
my $user;
|
||||
my $lastUpdate;
|
||||
|
|
@ -243,6 +244,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', fieldType => 'Text'});
|
||||
WebGUI::Test->addToCleanup($newProfileField);
|
||||
is($user->profileField('testField'), 'this is a test', 'getting profile fields not cached in the user object returns the profile field default');
|
||||
|
||||
ok(!$user->profileField('privacyFields'), '... privacyFields may not be retrieved');
|
||||
|
|
@ -507,6 +509,7 @@ $session->config->delete('adminModeSubnets');
|
|||
################################################################
|
||||
|
||||
my $originalVisitorEmail = $visitor->profileField('email');
|
||||
WebGUI::Test->addToCleanup(sub {$visitor->profileField('email', $originalVisitorEmail); });
|
||||
$visitor->profileField('email', 'visitor@localdomain');
|
||||
$dude->profileField('email', 'dude@aftery2k.com');
|
||||
|
||||
|
|
@ -563,8 +566,7 @@ is( $buster->profileField('timeZone'), 'America/Chicago', 'buster received origi
|
|||
|
||||
my $profileField = WebGUI::ProfileField->new($session, 'timeZone');
|
||||
my %originalFieldData = %{ $profileField->get() };
|
||||
use Data::Dumper;
|
||||
note( Dumper \%originalFieldData );
|
||||
WebGUI::Test->addToCleanup(sub { $profileField->set(\%originalFieldData); });
|
||||
my %copiedFieldData = %originalFieldData;
|
||||
$copiedFieldData{'dataDefault'} = "'America/Hillsboro'";
|
||||
$profileField->set(\%copiedFieldData);
|
||||
|
|
@ -587,6 +589,7 @@ $profileField->set(\%originalFieldData);
|
|||
|
||||
my $aliasProfile = WebGUI::ProfileField->new($session, 'alias');
|
||||
my %originalAliasProfile = %{ $aliasProfile->get() };
|
||||
WebGUI::Test->addToCleanup(sub { $profileField->set(\%originalAliasProfile); });
|
||||
my %copiedAliasProfile = %originalAliasProfile;
|
||||
$copiedAliasProfile{'dataDefault'} = "'aliasAlias'"; ##Non word characters;
|
||||
$aliasProfile->set(\%copiedAliasProfile);
|
||||
|
|
@ -610,6 +613,7 @@ my %listProfile = %copiedAliasProfile;
|
|||
$listProfile{'fieldName'} = 'listProfile';
|
||||
$listProfile{'dataDefault'} = "['alpha', 'delta', 'tango']";
|
||||
my $listProfileField = WebGUI::ProfileField->create($session, 'listProfile', \%listProfile);
|
||||
WebGUI::Test->addToCleanup($listProfileField);
|
||||
|
||||
$buster->uncache;
|
||||
$buster3 = WebGUI::User->new($session, $buster->userId);
|
||||
|
|
@ -625,6 +629,7 @@ my %evalProfile = %copiedAliasProfile;
|
|||
$evalProfile{'fieldName'} = 'evalProfile';
|
||||
$evalProfile{'dataDefault'} = q!$session->scratch->set('hack','true'); 1;!;
|
||||
my $evalProfileField = WebGUI::ProfileField->create($session, 'evalProfile', \%evalProfile);
|
||||
WebGUI::Test->addToCleanup($evalProfileField);
|
||||
|
||||
$buster->uncache;
|
||||
my $buster4 = WebGUI::User->new($session, $buster->userId);
|
||||
|
|
@ -902,6 +907,7 @@ ok( $neighbor->acceptsFriendsRequests($friend), '... follows ableToBeFriend=1')
|
|||
|
||||
ok( $visitor->can('profileIsViewable'), 'profileIsViewable: is a WebGUI::User method');
|
||||
my $originalVisitorPublicProfile = $visitor->profileField('publicProfile');
|
||||
WebGUI::Test->addToCleanup(sub { $visitor->profileField('publicProfile', $originalVisitorPublicProfile); });
|
||||
$visitor->profileField('publicProfile', 'all');
|
||||
ok(! $visitor->profileIsViewable, '... visitors profile is not viewable, even if publicProfile=all');
|
||||
ok(! $visitor->profileIsViewable($visitor), '... visitor cannot see his own profile');
|
||||
|
|
@ -939,6 +945,15 @@ is($neighbor->getProfileFieldPrivacySetting('email'), 'none', '...set will not s
|
|||
is($admin->getProfileFieldPrivacySetting('email'), 'all', '...get on a user with existing settings');
|
||||
is($neighbor->getProfileFieldPrivacySetting('privacyFields'), 'none', '...the privacy field always returns "none"');
|
||||
|
||||
my $recentProfileField = WebGUI::ProfileField->create($session, 'recentField', {
|
||||
fieldName => 'recentField',
|
||||
defaultPrivacySetting => 'all',
|
||||
visible => 1,
|
||||
label => 'recentField',
|
||||
});
|
||||
WebGUI::Test->addToCleanup($recentProfileField);
|
||||
is($neighbor->getProfileFieldPrivacySetting('recentField'), 'all', '...if a field is added and the user does not have privacy data for it, check the original field');
|
||||
|
||||
################################################################
|
||||
#
|
||||
# updateProfileFields
|
||||
|
|
@ -1028,6 +1043,39 @@ is($inmate->getInboxSmsNotificationAddress, '37927@textme.com', '... returns cel
|
|||
$inmate->profileField('cellPhone', '(555)-555.5555');
|
||||
is($inmate->getInboxSmsNotificationAddress, '5555555555@textme.com', '... strips non digits from cellphone');
|
||||
|
||||
################################################################
|
||||
#
|
||||
# isDuplicateEmail
|
||||
#
|
||||
################################################################
|
||||
|
||||
$newFish->profileField( 'email' => 'tommy@shawshank.com' );
|
||||
ok( $inmate->isDuplicateEmail( 'tommy@shawshank.com' ), 'isDuplicateEmail triggers for duplicate email' );
|
||||
$inmate->profileField( 'email' => 'andy@shawshank.com' );
|
||||
ok( !$inmate->isDuplicateEmail( 'andy@shawshank.com' ), "isDuplicateEmail doesn't trigger for our email" );
|
||||
|
||||
################################################################
|
||||
#
|
||||
# validateProfileDataFromForm
|
||||
#
|
||||
################################################################
|
||||
|
||||
my $profileData = {
|
||||
email => 'tommy@shawshank.com',
|
||||
language => 'SmoothBankerTalk',
|
||||
};
|
||||
$session->request->setup_body( $profileData );
|
||||
|
||||
# Also check for firstName, which is not in request
|
||||
my @fields = map { WebGUI::ProfileField->new( $session, $_ ); } ( keys %$profileData, "firstName" );
|
||||
my $reply = $inmate->validateProfileDataFromForm( \@fields );
|
||||
|
||||
cmp_deeply( $reply->{errorFields}, [ "language" ], "language isn't found, errors" );
|
||||
is( scalar( @{$reply->{errors}} ), 1, "error messages contains one message" );
|
||||
cmp_deeply( $reply->{warningFields}, [ "email" ], "email is duplicate, warns" );
|
||||
is( scalar( @{$reply->{warnings}} ), 1, "warnings messages contains one message" );
|
||||
cmp_deeply( $reply->{profile}, $profileData, "profile data makes it through" );
|
||||
|
||||
################################################################
|
||||
#
|
||||
# delete
|
||||
|
|
@ -1047,18 +1095,3 @@ undef $book;
|
|||
eval { $book = WebGUI::Shop::AddressBook->new($session, $bookId); };
|
||||
my $e = Exception::Class->caught();
|
||||
isa_ok($e, 'WebGUI::Error::ObjectNotFound', '... cleans up the address book');
|
||||
|
||||
END {
|
||||
|
||||
$profileField->set(\%originalFieldData);
|
||||
$aliasProfile->set(\%originalAliasProfile);
|
||||
$listProfileField->delete;
|
||||
$evalProfileField->delete;
|
||||
$visitor->profileField('email', $originalVisitorEmail);
|
||||
$visitor->profileField('publicProfile', $originalVisitorPublicProfile);
|
||||
|
||||
$newProfileField->delete() if $newProfileField;
|
||||
|
||||
$session->cache->remove('myTestKey');
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue