File: group_create.t

package info (click to toggle)
request-tracker5 5.0.7%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 80,216 kB
  • sloc: javascript: 191,898; perl: 87,146; sh: 1,412; makefile: 487; python: 37; php: 15
file content (113 lines) | stat: -rw-r--r-- 2,956 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
use strict;
use warnings;

use RT::Test tests => undef;

my ( $baseurl, $m ) = RT::Test->started_ok;
ok $m->login, 'logged in as root';
my $root = RT::User->new(RT->SystemUser);
ok( $root->Load('root'), 'load root user' );

my $group_name = 'test group';

my $group_id;
diag "Create a group";
{
    $m->follow_link( id => 'admin-groups-create');

    # Test group form validation
    $m->submit_form(
        form_name => 'ModifyGroup',
        fields => {
            Name => '',
        },
    );
    $m->text_contains('Name is required');
    $m->submit_form(
        form_name => 'ModifyGroup',
        fields => {
            Name => '0',
        },
    );
    $m->text_contains('Could not create group');
    $m->submit_form(
        form_name => 'ModifyGroup',
        fields => {
            Name => '1',
        },
    );
    $m->text_contains('Could not create group');
    $m->submit_form(
        form_name => 'ModifyGroup',
        fields => {
            Name => $group_name,
        },
    );
    $m->content_contains('Group created', 'created group sucessfully' );

    # Test validation on updae
    $m->form_name('ModifyGroup');
    $m->set_fields(
        Name => '',
    );
    $m->click_button(value => 'Save Changes');
    $m->text_contains('Illegal value for Name');

    $m->form_name('ModifyGroup');
    $m->set_fields(
        Name => '0',
    );
    $m->click_button(value => 'Save Changes');
    $m->text_contains('Illegal value for Name');

    $m->form_name('ModifyGroup');
    $m->set_fields(
        Name => '1',
    );
    $m->click_button(value => 'Save Changes');
    $m->text_contains('Illegal value for Name');

    $group_id           = $m->form_name('ModifyGroup')->value('id');
    ok $group_id, "found id of the group in the form, it's #$group_id";
}

ok($m->logout(), 'Logged out');

{
    my $tester = RT::Test->load_or_create_user( Name => 'staff1', Password => 'password' );
    ok $m->login( $tester->Name, 'password' ), 'Logged in';

    $m->get('/Admin/Groups/');
    is( $m->status, 403, "No access without ShowConfigTab" );

    RT::Test->set_rights(
        { Principal => $tester->PrincipalObj,
          Right => [qw(ShowConfigTab)],
        },
    );

    $m->get('/Admin/Groups/');
    is( $m->status, 200, "Can see group admin page" );

    load_group_admin_pages($m, $group_id, '403');

    ok($tester->PrincipalObj->GrantRight(Right => 'SeeGroup', Object => $RT::System), 'Grant SeeGroup');

    load_group_admin_pages($m, $group_id, '200');

    $m->get("/Group/Summary.html?id=$group_id");
    is( $m->status, 200, "Got 200 for Group Summary page");
}

sub load_group_admin_pages{
    my $m = shift;
    my $group_id = shift;
    my $status = shift;

    foreach my $page (qw(GroupRights Members Modify History Memberships ModifyLinks UserRights)){
        $m->get("/Admin/Groups/$page.html?id=$group_id");
        is( $m->status, $status, "Got $status for $page page");
    }
}

done_testing();