import rt 3.8.7
[freeside.git] / rt / t / web / dashboards-permissions.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use RT::Test tests => 7;
6 my ($baseurl, $m) = RT::Test->started_ok;
7
8 my $url = $m->rt_base_url;
9
10 # create user and queue {{{
11 my $user_obj = RT::User->new($RT::SystemUser);
12 my ($ok, $msg) = $user_obj->LoadOrCreateByEmail('customer@example.com');
13 ok($ok, 'ACL test user creation');
14 $user_obj->SetName('customer');
15 $user_obj->SetPrivileged(1);
16 ($ok, $msg) = $user_obj->SetPassword('customer');
17 $user_obj->PrincipalObj->GrantRight(Right => 'ModifySelf');
18 my $currentuser = RT::CurrentUser->new($user_obj);
19
20 my $queue = RT::Queue->new($RT::SystemUser);
21 $queue->Create(Name => 'SearchQueue'.$$);
22
23 $user_obj->PrincipalObj->GrantRight(Right => $_, Object => $queue)
24     for qw/SeeQueue ShowTicket OwnTicket/;
25
26 $user_obj->PrincipalObj->GrantRight(Right => $_, Object => $RT::System)
27     for qw/SubscribeDashboard CreateOwnDashboard SeeOwnDashboard ModifyOwnDashboard DeleteOwnDashboard/;
28 # }}}
29
30 ok $m->login(customer => 'customer'), "logged in";
31
32 $m->get_ok("$url/Dashboards");
33
34 $m->follow_link_ok({text => "New"});
35 $m->form_name('ModifyDashboard');
36 is_deeply([$m->current_form->find_input('Privacy')->possible_values], ["RT::User-" . $user_obj->Id], "the only selectable privacy is user");
37 $m->content_lacks('Delete', "Delete button hidden because we are creating");
38