[Rt-commit] rt branch, 4.6/add-test-group-listing-selfservice, created. rt-4.4.4-540-g1b88ff19f3

Blaine Motsinger blaine at bestpractical.com
Fri Nov 22 19:49:24 EST 2019


The branch, 4.6/add-test-group-listing-selfservice has been created
        at  1b88ff19f3e8f535b0887c07b21e7833f4a46acd (commit)

- Log -----------------------------------------------------------------
commit 1b88ff19f3e8f535b0887c07b21e7833f4a46acd
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Fri Nov 22 18:45:19 2019 -0600

    Add test for self service group tickets

diff --git a/t/web/group_listing_selfservice.t b/t/web/group_listing_selfservice.t
new file mode 100644
index 0000000000..7d1ce8afa9
--- /dev/null
+++ b/t/web/group_listing_selfservice.t
@@ -0,0 +1,91 @@
+use strict;
+use warnings;
+
+use RT::Test tests => undef;
+
+RT->Config->Set( 'SelfServiceShowGroupTickets' => 1 );
+
+my ( $url, $m ) = RT::Test->started_ok;
+ok( $m->login, 'logged in as root' );
+
+my $group_name = 'user-group';
+my $group_id;
+my @users = ( 'user-one', 'user-two' );
+
+diag( 'creating users, group, rights, and ticket as root' );
+{
+    foreach my $user_name ( @users ) {
+        $m->follow_link( id => 'admin-users-create' );
+        $m->submit_form( 
+            form_name => 'UserCreate',
+            fields => {
+                Name         => $user_name,
+                EmailAddress => "$user_name\@example.com",
+                CurrentPass  => 'password',
+                Pass1        => 'password',
+                Pass2        => 'password',
+            },
+        );
+        $m->content_contains( 'User created', "created user '$user_name'" );
+    }
+
+    $m->follow_link( id => 'admin-groups-create' );
+    $m->submit_form( 
+        form_name => 'ModifyGroup',
+        fields => { 
+            Name        => $group_name,
+            Description => 'group listing self-service testing',
+        },
+    );
+    $m->content_contains( 'Group created', "created group '$group_name'" );
+    $group_id = $m->form_name( 'ModifyGroup' )->value( 'id' );
+
+    my $group_obj = RT::Group->new( RT->SystemUser );
+    ok( $group_obj->LoadUserDefinedGroup( $group_name ), "load $group_name group" );
+
+    foreach my $user_name ( @users ) {
+        my $user_obj = RT::User->new( RT->SystemUser );
+        $user_obj->Load( $user_name );
+        ok( $group_obj->AddMember( $user_obj->Id ), "added user '$user_name' to group '$group_name'" );
+        ok( $group_obj->HasMemberRecursively( $user_obj->Id ), "group '$group_name' has member '$user_name'" );
+    }
+
+    foreach my $right ( 'CreateTicket', 'SeeQueue', 'ShowTicket', 'SeeSelfServiceGroupTicket', 'SeeGroup' ) {
+        ok( $group_obj->PrincipalObj->GrantRight( Right => $right, Object => RT->System ),
+            "added right '$right' to group '$group_name'" );
+    }
+
+    $m->get_ok( $url . '/Group/Summary.html?id=' . $group_id );
+
+    $m->submit_form( form_name => 'CreateTicket' );
+    like( $m->uri, qr{/Ticket/Create\.html\?AddGroupCc=$group_id&Queue=1$},
+          "now on /Ticket/Create\.html with param AddGroupCc=$group_id" );
+    $m->submit_form( 
+        form_name => 'TicketCreate',
+        fields    => {
+            Subject => 'ticket as root with GroupCc',
+        },
+    );
+    $m->content_contains( 'created in queue', "created ticket as root with GroupCc" );
+    }
+ok( $m->logout(), 'logged out root user' );
+
+# TODO: creating tickets as users
+
+diag( 'testing self-service with users' );
+foreach my $user_name ( @users ) {
+    ok( $m->login( $user_name, 'password' ), "logged in as user $user_name" );
+
+    foreach my $section ( 'My open tickets', 'My group's tickets' ) {
+        $m->content_contains( $section, "\"$section\" section is present on $user_name self-service page" );
+    }
+
+    # foreach my $user ( @users, 'root' ) {
+    foreach my $user ( 'root' ) {
+        $m->content_contains( "ticket as $user", "$user\'s ticket is present on $user_name self-service page" );
+    }
+
+    ok( $m->logout(), "logged out user $user_name" );
+}
+
+done_testing;

-----------------------------------------------------------------------


More information about the rt-commit mailing list