X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/95fd4dd7f982a343ec45d188bdbdcc9950df6e93..a311c787bd6f87abb6c1e4659cb02bc936b6ab9d:/apps/workbench/test/integration/projects_test.rb diff --git a/apps/workbench/test/integration/projects_test.rb b/apps/workbench/test/integration/projects_test.rb index aa94924aa8..b377786896 100644 --- a/apps/workbench/test/integration/projects_test.rb +++ b/apps/workbench/test/integration/projects_test.rb @@ -54,8 +54,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest # visit project page visit current_path - assert(has_no_text?('.container-fluid', text: '*Textile description for A project*'), - "Description is not rendered properly") + assert_no_text '*Textile description for A project*' assert(find?('.container-fluid', text: 'Textile description for A project'), "Description update did not survive page refresh") assert(find?('.container-fluid', text: 'And a new paragraph in description'), @@ -138,7 +137,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest click_link 'Other objects' within '.selection-action-container' do find '.editable', text: 'Now I have a new name.' - page.assert_no_selector '.editable', text: 'Now I have a name.' + assert_no_selector '.editable', text: 'Now I have a name.' end end @@ -286,7 +285,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest ['Remove',api_fixture('collections')['collection_in_aproject_with_same_name_as_in_home_project'], api_fixture('groups')['aproject'],nil,true], ].each do |action, my_collection, src, dest=nil, expect_name_change=nil| - test "selection #{action} #{expect_name_change} for project" do + test "selection #{action} -> #{expect_name_change.inspect} for project" do perform_selection_action src, dest, my_collection, action case action @@ -297,8 +296,6 @@ class ProjectsTest < ActionDispatch::IntegrationTest find(".dropdown-menu a", text: dest['name']).click assert page.has_text?(my_collection['name']), 'Collection not found in dest project after copy' - # now remove it from destination project to restore to original state - perform_selection_action dest, nil, my_collection, 'Remove' when 'Move' assert page.has_no_text?(my_collection['name']), 'Collection still found in src project after move' visit page_with_token 'active', '/' @@ -306,8 +303,6 @@ class ProjectsTest < ActionDispatch::IntegrationTest find(".dropdown-menu a", text: dest['name']).click assert page.has_text?(my_collection['name']), 'Collection not found in dest project after move' - # move it back to src project to restore to original state - perform_selection_action dest, src, my_collection, action when 'Remove' assert page.has_no_text?(my_collection['name']), 'Collection still found in src project after remove' visit page_with_token 'active', '/' @@ -366,11 +361,11 @@ class ProjectsTest < ActionDispatch::IntegrationTest click_button 'Selection' within('.selection-action-container') do - page.assert_selector 'li.disabled', text: 'Create new collection with selected collections' - page.assert_selector 'li.disabled', text: 'Compare selected' - page.assert_selector 'li.disabled', text: 'Copy selected' - page.assert_selector 'li.disabled', text: 'Move selected' - page.assert_selector 'li.disabled', text: 'Remove selected' + assert_selector 'li.disabled', text: 'Create new collection with selected collections' + assert_selector 'li.disabled', text: 'Compare selected' + assert_selector 'li.disabled', text: 'Copy selected' + assert_selector 'li.disabled', text: 'Move selected' + assert_selector 'li.disabled', text: 'Remove selected' end # select collection and verify links are enabled @@ -385,15 +380,15 @@ class ProjectsTest < ActionDispatch::IntegrationTest click_button 'Selection' within('.selection-action-container') do - page.assert_no_selector 'li.disabled', text: 'Create new collection with selected collections' - page.assert_selector 'li', text: 'Create new collection with selected collections' - page.assert_selector 'li.disabled', text: 'Compare selected' - page.assert_no_selector 'li.disabled', text: 'Copy selected' - page.assert_selector 'li', text: 'Copy selected' - page.assert_no_selector 'li.disabled', text: 'Move selected' - page.assert_selector 'li', text: 'Move selected' - page.assert_no_selector 'li.disabled', text: 'Remove selected' - page.assert_selector 'li', text: 'Remove selected' + assert_no_selector 'li.disabled', text: 'Create new collection with selected collections' + assert_selector 'li', text: 'Create new collection with selected collections' + assert_selector 'li.disabled', text: 'Compare selected' + assert_no_selector 'li.disabled', text: 'Copy selected' + assert_selector 'li', text: 'Copy selected' + assert_no_selector 'li.disabled', text: 'Move selected' + assert_selector 'li', text: 'Move selected' + assert_no_selector 'li.disabled', text: 'Remove selected' + assert_selector 'li', text: 'Remove selected' end # select subproject and verify that copy action is disabled @@ -410,13 +405,13 @@ class ProjectsTest < ActionDispatch::IntegrationTest click_button 'Selection' within('.selection-action-container') do - page.assert_selector 'li.disabled', text: 'Create new collection with selected collections' - page.assert_selector 'li.disabled', text: 'Compare selected' - page.assert_selector 'li.disabled', text: 'Copy selected' - page.assert_no_selector 'li.disabled', text: 'Move selected' - page.assert_selector 'li', text: 'Move selected' - page.assert_no_selector 'li.disabled', text: 'Remove selected' - page.assert_selector 'li', text: 'Remove selected' + assert_selector 'li.disabled', text: 'Create new collection with selected collections' + assert_selector 'li.disabled', text: 'Compare selected' + assert_selector 'li.disabled', text: 'Copy selected' + assert_no_selector 'li.disabled', text: 'Move selected' + assert_selector 'li', text: 'Move selected' + assert_no_selector 'li.disabled', text: 'Remove selected' + assert_selector 'li', text: 'Remove selected' end # select subproject and a collection and verify that copy action is still disabled @@ -438,34 +433,86 @@ class ProjectsTest < ActionDispatch::IntegrationTest find('input[type=checkbox]').click end + click_link 'Subprojects' click_button 'Selection' within('.selection-action-container') do - page.assert_selector 'li.disabled', text: 'Create new collection with selected collections' - page.assert_selector 'li.disabled', text: 'Compare selected' - page.assert_selector 'li.disabled', text: 'Copy selected' - page.assert_no_selector 'li.disabled', text: 'Move selected' - page.assert_selector 'li', text: 'Move selected' - page.assert_no_selector 'li.disabled', text: 'Remove selected' - page.assert_selector 'li', text: 'Remove selected' + assert_selector 'li.disabled', text: 'Create new collection with selected collections' + assert_selector 'li.disabled', text: 'Compare selected' + assert_selector 'li.disabled', text: 'Copy selected' + assert_no_selector 'li.disabled', text: 'Move selected' + assert_selector 'li', text: 'Move selected' + assert_no_selector 'li.disabled', text: 'Remove selected' + assert_selector 'li', text: 'Remove selected' end end - # "Remove selected" selection option should not be available when current user cannot write to the project - test "remove selected action is not avaialble when current user cannot write to project" do - my_project = api_fixture('groups')['anonymously_accessible_project'] + # When project tabs are switched, only options applicable to the current tab's selections are enabled. + test "verify selection options when tabs are switched" do + my_project = api_fixture('groups')['aproject'] + my_collection = api_fixture('collections')['collection_to_move_around_in_aproject'] + my_subproject = api_fixture('groups')['asubproject'] - # verify that selection options are disabled or unavailable on the project + # select subproject and a collection and verify that copy action is still disabled visit page_with_token 'active', '/' find("#projects-menu").click find(".dropdown-menu a", text: my_project['name']).click + # Select a sub-project + click_link 'Subprojects' + assert page.has_text?(my_subproject['name']), 'Subproject not found in project' + + within('tr', text: my_subproject['name']) do + find('input[type=checkbox]').click + end + + # Select a collection + click_link 'Data collections' + assert page.has_text?(my_collection['name']), 'Collection not found in project' + + within('tr', text: my_collection['name']) do + find('input[type=checkbox]').click + end + + # Go back to Subprojects tab + click_link 'Subprojects' click_button 'Selection' within('.selection-action-container') do assert_selector 'li.disabled', text: 'Create new collection with selected collections' assert_selector 'li.disabled', text: 'Compare selected' assert_selector 'li.disabled', text: 'Copy selected' - assert_selector 'li.disabled', text: 'Move selected' + assert_no_selector 'li.disabled', text: 'Move selected' + assert_selector 'li', text: 'Move selected' + assert_no_selector 'li.disabled', text: 'Remove selected' + assert_selector 'li', text: 'Remove selected' + end + + # Go back to Data collections tab + click_link 'Data collections' + click_button 'Selection' + within('.selection-action-container') do + assert_no_selector 'li.disabled', text: 'Create new collection with selected collections' + assert_selector 'li', text: 'Create new collection with selected collections' + assert_selector 'li.disabled', text: 'Compare selected' + assert_no_selector 'li.disabled', text: 'Copy selected' + assert_selector 'li', text: 'Copy selected' + assert_no_selector 'li.disabled', text: 'Move selected' + assert_selector 'li', text: 'Move selected' assert_no_selector 'li.disabled', text: 'Remove selected' + assert_selector 'li', text: 'Remove selected' + end + end + + # "Remove selected" selection option should not be available when current user cannot write to the project + test "remove selected action is not available when current user cannot write to project" do + my_project = api_fixture('groups')['anonymously_accessible_project'] + visit page_with_token 'active', "/projects/#{my_project['uuid']}" + + click_button 'Selection' + within('.selection-action-container') do + assert_selector 'li', text: 'Create new collection with selected collections' + assert_selector 'li', text: 'Compare selected' + assert_selector 'li', text: 'Copy selected' + assert_selector 'li', text: 'Move selected' assert_no_selector 'li', text: 'Remove selected' end end