X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/72aa70eec7693bfb5d46a4bdac3619b3c6b1f79c..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 0c6e5bc789..b377786896 100644 --- a/apps/workbench/test/integration/projects_test.rb +++ b/apps/workbench/test/integration/projects_test.rb @@ -137,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 @@ -327,7 +327,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest find('input[type=checkbox]').click end - click_button 'Selection...' + click_button 'Selection' within('.selection-action-container') do assert page.has_text?("Compare selected"), "Compare selected link text not found" @@ -359,13 +359,13 @@ class ProjectsTest < ActionDispatch::IntegrationTest find("#projects-menu").click find(".dropdown-menu a", text: my_project['name']).click - click_button 'Selection...' + 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 @@ -378,17 +378,17 @@ class ProjectsTest < ActionDispatch::IntegrationTest find('input[type=checkbox]').click end - click_button 'Selection...' + 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 @@ -403,15 +403,15 @@ class ProjectsTest < ActionDispatch::IntegrationTest find('input[type=checkbox]').click end - click_button 'Selection...' + 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 @@ -433,15 +433,87 @@ class ProjectsTest < ActionDispatch::IntegrationTest find('input[type=checkbox]').click end - click_button 'Selection...' + 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_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 + + # 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'] + + # 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_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 - 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', 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 @@ -462,7 +534,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest find('input[type=checkbox]').click end - click_button 'Selection...' + click_button 'Selection' within('.selection-action-container') do click_link 'Create new collection with selected collections' end @@ -649,7 +721,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest Rails.configuration.arvados_v1_base = original_arvados_v1_base click_link 'Reload tab' assert_no_selector('a', text: 'Reload tab') - assert_selector('button', text: 'Selection...') + assert_selector('button', text: 'Selection') within '.selection-action-container' do assert_selector 'tr[data-kind="arvados#trait"]' end