Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bestpractical/rt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Kaiser <craig@bestpractical.com>2020-01-29 20:16:14 +0300
committerCraig Kaiser <craig@bestpractical.com>2020-01-29 20:16:14 +0300
commit829e7b89ed470782e5ca819e2819e69c0823180d (patch)
treeacd7bae55645749dd5de23ae9050c434dab06267
parente5ba359d13c5ae77f6d102577f9bd5856b4bdbb6 (diff)
Add test for calling MembersObj on unloaded group object4.4/membersobj-check-for-group
-rw-r--r--t/api/group.t30
1 files changed, 29 insertions, 1 deletions
diff --git a/t/api/group.t b/t/api/group.t
index f82dfc57e9..2b3f31c1ca 100644
--- a/t/api/group.t
+++ b/t/api/group.t
@@ -3,7 +3,7 @@ use strict;
use warnings;
use RT;
use RT::Test nodata => 1, tests => undef;
-
+use Test::Warn;
{
@@ -116,4 +116,32 @@ is($u->PrincipalObj->PrincipalType , 'Group' , "Principal 4 is a group");
ok( !$id, "can't create duplicated group even case is different: $msg" );
}
+diag 'create a custom role and try to load role group before one has been created.';
+{
+ my $engineer = RT::CustomRole->new(RT->SystemUser);
+ my ($ok, $msg) = $engineer->Create(
+ Name => 'Engineer',
+ MaxValues => 1,
+ );
+ ok($ok, "created role: $msg");
+
+ my $general = RT::Test->load_or_create_queue( Name => 'General' );
+
+ ($ok, $msg) = $engineer->AddToObject($general->id);
+ ok($ok, "added engineer to General: $msg");
+
+ ok(my $t = RT::Ticket->new(RT->SystemUser));
+ ok((my $id, $msg) = $t->Create( Queue => $general->Id,
+ Subject => 'Testing'
+ ));
+
+ my $group = RT::Group->new(RT->SystemUser);
+ $group->LoadRoleGroup(Object => $t, Name => 'Engineer');
+ is($group->Id, undef);
+
+ warning_like {
+ is($group->MembersObj, undef);
+ } qr/Can't call MembersObj on unloaded group, returning undef./, "Generates a warning about unloaded group";
+}
+
done_testing;