X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a59152e34814f453a7380e68a55534e2f8922d57..040fdf6da00318b5b8e8e83eceeec783680ecb1c:/apps/workbench/test/unit/link_test.rb diff --git a/apps/workbench/test/unit/link_test.rb b/apps/workbench/test/unit/link_test.rb index 944bfced3d..763633586a 100644 --- a/apps/workbench/test/unit/link_test.rb +++ b/apps/workbench/test/unit/link_test.rb @@ -1,7 +1,48 @@ require 'test_helper' class LinkTest < ActiveSupport::TestCase - # test "the truth" do - # assert true - # end + def uuid_for(fixture_name, object_name) + api_fixture(fixture_name)[object_name]["uuid"] + end + + test "active user can get permissions for owned project object" do + use_token :active + project = Group.find(uuid_for("groups", "aproject")) + refute_empty(Link.permissions_for(project), + "no permissions found for managed project") + end + + test "active user can get permissions for owned project by UUID" do + use_token :active + refute_empty(Link.permissions_for(uuid_for("groups", "aproject")), + "no permissions found for managed project") + end + + test "admin can get permissions for project object" do + use_token :admin + project = Group.find(uuid_for("groups", "aproject")) + refute_empty(Link.permissions_for(project), + "no permissions found for managed project") + end + + test "admin can get permissions for project by UUID" do + use_token :admin + refute_empty(Link.permissions_for(uuid_for("groups", "aproject")), + "no permissions found for managed project") + end + + test "project viewer can't get permissions for readable project object" do + use_token :project_viewer + project = Group.find(uuid_for("groups", "aproject")) + assert_raises(ArvadosApiClient::AccessForbiddenException) do + Link.permissions_for(project) + end + end + + test "project viewer can't get permissions for readable project by UUID" do + use_token :project_viewer + assert_raises(ArvadosApiClient::AccessForbiddenException) do + Link.permissions_for(uuid_for("groups", "aproject")) + end + end end