X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6b7f891f5a2d313837fbe59149f0f4f8c3b16443..d62ad17b3eca4b107a7602045980a118a09115e7:/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 ac00b1b548..340d9ba2bb 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 @@ -147,7 +147,6 @@ class ProjectsTest < ActionDispatch::IntegrationTest find(".dropdown-menu a", text: "Home").click find('.btn', text: "Add a subproject").click - # within('.editable', text: 'New project') do within('h2') do find('.fa-pencil').click find('.editable-input input').set('Project 1234') @@ -361,11 +360,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 @@ -380,15 +379,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 @@ -405,20 +404,59 @@ 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 + visit page_with_token 'active', '/' + find("#projects-menu").click + find(".dropdown-menu a", text: my_project['name']).click + + 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 + + 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 + + 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' @@ -426,6 +464,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest 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' @@ -433,20 +472,37 @@ class ProjectsTest < ActionDispatch::IntegrationTest 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 - 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_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 + # "Move selected" and "Remove selected" options should not be available when current user cannot write to the project + test "move selected and remove selected actions 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']}" @@ -455,7 +511,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest 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: 'Move selected' assert_no_selector 'li', text: 'Remove selected' end end @@ -671,4 +727,20 @@ class ProjectsTest < ActionDispatch::IntegrationTest end end + test "add new project using projects dropdown" do + # verify that selection options are disabled on the project until an item is selected + visit page_with_token 'active', '/' + + # Add a new project + find("#projects-menu").click + click_link 'Add a new project' + assert_text 'New project' + assert_text 'No description provided' + + # Add one more new project + find("#projects-menu").click + click_link 'Add a new project' + assert_text 'New project created at' + assert_text 'No description provided' + end end