X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0e57453d2b637a3d105d4e3d67031f3915f9d302..9d223ac56644eb23cdc39c5044f4fb12cf29b685:/apps/workbench/test/controllers/projects_controller_test.rb diff --git a/apps/workbench/test/controllers/projects_controller_test.rb b/apps/workbench/test/controllers/projects_controller_test.rb index 62a93a1308..f45f178395 100644 --- a/apps/workbench/test/controllers/projects_controller_test.rb +++ b/apps/workbench/test/controllers/projects_controller_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'test_helper' require 'helpers/share_object_helper' @@ -101,8 +105,9 @@ class ProjectsControllerTest < ActionController::TestCase end test "project admin can remove collections from the project" do - # Deleting an object that supports 'expires_at' should make it - # completely inaccessible to API queries, not simply moved out of the project. + # Deleting an object that supports 'trash_at' should make it + # completely inaccessible to API queries, not simply moved out of + # the project. coll_key = "collection_to_remove_from_subproject" coll_uuid = api_fixture("collections")[coll_key]["uuid"] delete(:remove_item, @@ -116,12 +121,12 @@ class ProjectsControllerTest < ActionController::TestCase use_token :subproject_admin assert_raise ArvadosApiClient::NotFoundException do - Collection.find(coll_uuid) + Collection.find(coll_uuid, cache: false) end end test "project admin can remove items from project other than collections" do - # An object which does not have an expired_at field (e.g. Specimen) + # An object which does not have an trash_at field (e.g. Specimen) # should be implicitly moved to the user's Home project when removed. specimen_uuid = api_fixture('specimens', 'in_asubproject')['uuid'] delete(:remove_item, @@ -239,7 +244,7 @@ class ProjectsControllerTest < ActionController::TestCase Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token'] get(:show, {id: api_fixture('groups')['aproject']['uuid']}) assert_response 404 - assert_includes @response.inspect, 'you are not logged in' + assert_match(/log ?in/i, @response.body) end test "visit home page as anonymous when anonymous browsing is enabled and expect login" do @@ -306,4 +311,262 @@ class ProjectsControllerTest < ActionController::TestCase assert_match /\/users\/welcome/, @response.redirect_url assert_empty css_select('[href="/projects/public"]') end + + test "find a project and edit its description" do + project = api_fixture('groups')['aproject'] + use_token :active + found = Group.find(project['uuid']) + found.description = 'test description update' + found.save! + get(:show, {id: project['uuid']}, session_for(:active)) + assert_includes @response.body, 'test description update' + end + + test "find a project and edit description to textile description" do + project = api_fixture('groups')['aproject'] + use_token :active + found = Group.find(project['uuid']) + found.description = '*test bold description for textile formatting*' + found.save! + get(:show, {id: project['uuid']}, session_for(:active)) + assert_includes @response.body, 'test bold description for textile formatting' + end + + test "find a project and edit description to html description" do + project = api_fixture('groups')['aproject'] + use_token :active + found = Group.find(project['uuid']) + found.description = 'Textile description with link to home page take me home.' + found.save! + get(:show, {id: project['uuid']}, session_for(:active)) + assert_includes @response.body, 'Textile description with link to home page take me home.' + end + + test "find a project and edit description to textile description with link to object" do + project = api_fixture('groups')['aproject'] + use_token :active + found = Group.find(project['uuid']) + + # uses 'Link to object' as a hyperlink for the object + found.description = '"Link to object":' + api_fixture('groups')['asubproject']['uuid'] + found.save! + get(:show, {id: project['uuid']}, session_for(:active)) + + # check that input was converted to textile, not staying as inputted + refute_includes @response.body,'"Link to object"' + refute_empty css_select('[href="/groups/zzzzz-j7d0g-axqo7eu9pwvna1x"]') + end + + test "project viewer can't see project sharing tab" do + project = api_fixture('groups')['aproject'] + get(:show, {id: project['uuid']}, session_for(:project_viewer)) + refute_includes @response.body, '