X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/74cdb4454d4adc6b403c207169313f37332d8aac..554b4b8821b2eed4c1ce5064e20d043465b571ba:/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 ae156b8a53..e86f45a7c4 100644 --- a/apps/workbench/test/integration/projects_test.rb +++ b/apps/workbench/test/integration/projects_test.rb @@ -161,7 +161,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest end wait_for_ajax - click_link 'Move to project...' + click_link 'Move project...' find('.selectable', text: 'Project 1234').click find('.modal-footer a,button', text: 'Move').click wait_for_ajax @@ -182,7 +182,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest find('#project_sharing').all('tr') end - def add_share_and_check(share_type, name) + def add_share_and_check(share_type, name, obj=nil) assert(page.has_no_text?(name), "project is already shared with #{name}") start_share_count = share_rows.size click_on("Share with #{share_type}") @@ -194,6 +194,9 @@ class ProjectsTest < ActionDispatch::IntegrationTest find(".selectable", text: name).click assert(has_no_selector?(".modal-dialog-preview-pane"), "preview pane available in sharing dialog") + if share_type == 'users' + assert(page.has_text?(obj['email']), "Did not find user's email") + end assert_raises(Capybara::ElementNotFound, "Projects pulldown available from sharing dialog") do click_on "All projects" @@ -240,7 +243,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest show_project_using("active") click_on "Sharing" - add_share_and_check("users", new_name) + add_share_and_check("users", new_name, add_user) modify_share_and_check(new_name) end @@ -439,32 +442,44 @@ class ProjectsTest < ActionDispatch::IntegrationTest end end - test "combine selected collections into new collection" do - my_project = api_fixture('groups')['aproject'] - my_collection = api_fixture('collections')['collection_to_move_around_in_aproject'] - - visit page_with_token 'active', '/' - find("#projects-menu").click - find(".dropdown-menu a", text: my_project['name']).click - assert page.has_text?(my_collection['name']), 'Collection not found in project' + [ + ['active', true], + ['project_viewer', false], + ].each do |user, expect_collection_in_aproject| + test "combine selected collections into new collection #{user} #{expect_collection_in_aproject}" do + my_project = api_fixture('groups')['aproject'] + my_collection = api_fixture('collections')['collection_to_move_around_in_aproject'] + + visit page_with_token user, '/' + find("#projects-menu").click + find(".dropdown-menu a", text: my_project['name']).click + 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 - within('tr', text: my_collection['name']) do - find('input[type=checkbox]').click - end + click_button 'Selection...' + within('.selection-action-container') do + click_link 'Create new collection with selected collections' + end - click_button 'Selection...' - within('.selection-action-container') do - click_link 'Create new collection with selected collections' + # now in the new collection page + if expect_collection_in_aproject + assert page.has_text?("Created new collection in the project #{my_project['name']}"), + 'Not found flash message that new collection is created in aproject' + else + assert page.has_text?("Created new collection in your Home project"), + 'Not found flash message that new collection is created in Home project' + end + assert page.has_text?('Content hash'), 'Not found content hash in collection page' end - - # back in project page - assert page.has_text?(my_collection['name']), 'Collection not found in project' - assert page.has_link?('Jobs and pipelines'), 'Jobs and pipelines link not found in project' end - [["jobs", "/jobs"], - ["pipelines", "/pipeline_instances"], - ["collections", "/collections"] + [ + ["jobs", "/jobs"], + ["pipelines", "/pipeline_instances"], + ["collections", "/collections"] ].each do |target,path| test "Test dashboard button all #{target}" do visit page_with_token 'active', '/'