diff options
author | Ivan Kohler <ivan@freeside.biz> | 2015-07-26 15:41:26 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2015-07-26 15:41:26 -0700 |
commit | 9aee669886202be7035e6c6049fc71bc99dd3013 (patch) | |
tree | 2fd5bf6de74f3d99270587ffb1833e4188a6373d /rt/t/api/user-prefs.t | |
parent | ac20214d38d9af00430423f147b5a0e50751b050 (diff) | |
parent | 1add633372bdca3cc7163c2ce48363fed3984437 (diff) |
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Diffstat (limited to 'rt/t/api/user-prefs.t')
-rw-r--r-- | rt/t/api/user-prefs.t | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/rt/t/api/user-prefs.t b/rt/t/api/user-prefs.t new file mode 100644 index 000000000..a4aa49f1b --- /dev/null +++ b/rt/t/api/user-prefs.t @@ -0,0 +1,59 @@ + +use strict; +use warnings; +use RT; +use RT::Test tests => undef; + +use_ok( 'RT::User' ); + +my $create_user = RT::User->new(RT->SystemUser); +isa_ok($create_user, 'RT::User'); +my ($ret, $msg) = $create_user->Create(Name => 'CreateTest1'.$$, + EmailAddress => $$.'create-test-1@example.com'); +ok ($ret, "Creating user CreateTest1 - " . $msg ); + +# Create object to operate as the test user +my $user1 = RT::User->new($create_user); +($ret, $msg) = $user1->Load($create_user->Id); +ok ($ret, "Loaded the new user $msg"); + +diag "Set a search preference"; +my $prefs = { + 'Order' => 'DESC|ASC|ASC|ASC', + 'OrderBy' => 'Due', + 'Format' => '\'<a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a>/TITLE:#\', +\'<a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a>/TITLE:Subject\', +\'__Priority__\', +\'__QueueName__\', +\'__ExtendedStatus__\', +\'__Due__\'', + 'RowsPerPage' => '50' +}; + +ok (!$user1->HasRight( Right => 'ModifySelf', Object => $RT::System), "Can't ModifySelf"); +($ret, $msg) = $user1->SetPreferences("SearchDisplay", $prefs); +ok( !$ret, "No permission to set preferences"); +ok (($ret, $msg) = $create_user->PrincipalObj->GrantRight( Right => 'ModifySelf'), + "Granted ModifySelf"); +($ret, $msg) = $user1->SetPreferences("SearchDisplay", $prefs); +ok( $ret, "Search preference set"); + +diag "Fetch preference"; +ok (my $saved_prefs = $user1->Preferences("SearchDisplay"), "Fetched prefs"); +is ($prefs->{OrderBy}, 'Due', "Prefs look ok"); + +diag "Delete prefs"; +ok (($ret, $msg) = $create_user->PrincipalObj->RevokeRight( Right => 'ModifySelf'), + "Revoked ModifySelf"); +($ret, $msg) = $user1->DeletePreferences("SearchDisplay"); +ok( !$ret, "No permission to delete preferences"); +ok (($ret, $msg) = $create_user->PrincipalObj->GrantRight( Right => 'ModifySelf'), + "Granted ModifySelf"); +($ret, $msg) = $user1->DeletePreferences("SearchDisplay"); +ok( $ret, "Search preference deleted"); + +$saved_prefs = $user1->Preferences("SearchDisplay"); +ok (!$saved_prefs, "No saved preferences returned"); + +done_testing; + |