fix ticketing system error on bootstrap of new install
[freeside.git] / rt / t / api / user-prefs.t
1
2 use strict;
3 use warnings;
4 use RT;
5 use RT::Test tests => undef;
6
7 use_ok( 'RT::User' );
8
9 my $create_user = RT::User->new(RT->SystemUser);
10 isa_ok($create_user, 'RT::User');
11 my ($ret, $msg) = $create_user->Create(Name => 'CreateTest1'.$$,
12     EmailAddress => $$.'create-test-1@example.com');
13 ok ($ret, "Creating user CreateTest1 - " . $msg );
14
15 # Create object to operate as the test user
16 my $user1 = RT::User->new($create_user);
17 ($ret, $msg) = $user1->Load($create_user->Id);
18 ok ($ret, "Loaded the new user $msg");
19
20 diag "Set a search preference";
21 my $prefs = {
22      'Order' => 'DESC|ASC|ASC|ASC',
23      'OrderBy' => 'Due',
24      'Format' => '\'<a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a>/TITLE:#\',
25 \'<a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a>/TITLE:Subject\',
26 \'__Priority__\',
27 \'__QueueName__\',
28 \'__ExtendedStatus__\',
29 \'__Due__\'',
30      'RowsPerPage' => '50'
31 };
32
33 ok (!$user1->HasRight( Right => 'ModifySelf', Object => $RT::System), "Can't ModifySelf");
34 ($ret, $msg) = $user1->SetPreferences("SearchDisplay", $prefs);
35 ok( !$ret, "No permission to set preferences");
36 ok (($ret, $msg) = $create_user->PrincipalObj->GrantRight( Right => 'ModifySelf'),
37     "Granted ModifySelf");
38 ($ret, $msg) = $user1->SetPreferences("SearchDisplay", $prefs);
39 ok( $ret, "Search preference set");
40
41 diag "Fetch preference";
42 ok (my $saved_prefs = $user1->Preferences("SearchDisplay"), "Fetched prefs");
43 is ($prefs->{OrderBy}, 'Due', "Prefs look ok");
44
45 diag "Delete prefs";
46 ok (($ret, $msg) = $create_user->PrincipalObj->RevokeRight( Right => 'ModifySelf'),
47     "Revoked ModifySelf");
48 ($ret, $msg) = $user1->DeletePreferences("SearchDisplay");
49 ok( !$ret, "No permission to delete preferences");
50 ok (($ret, $msg) = $create_user->PrincipalObj->GrantRight( Right => 'ModifySelf'),
51     "Granted ModifySelf");
52 ($ret, $msg) = $user1->DeletePreferences("SearchDisplay");
53 ok( $ret, "Search preference deleted");
54
55 $saved_prefs = $user1->Preferences("SearchDisplay");
56 ok (!$saved_prefs, "No saved preferences returned");
57
58 done_testing;
59