- def verify_repositories user
- Thread.current[:arvados_api_token] = @@API_AUTHS["admin"]['api_token']
- repo_links = Link.filter([['head_uuid', 'is_a', 'arvados#repository'],
- ['tail_uuid', '=', user['uuid']],
- ['link_class', '=', 'permission']])
- repos = Repository.where uuid: repo_links.collect(&:head_uuid)
- repositories = {}
- repos.each do |repo|
- repositories[repo.uuid] = repo
- end
-
- repo_writables = {}
- repo_links.each do |link|
- if link.name.in? ['can_write','can_manage']
- repo_writables[link.head_uuid] = link.name
- end
- end
-
- current_page = current_path
- repo_links.each do |link|
- if repo_writables[link.head_uuid] == 'can_manage'
- assert_selector 'a', text: repositories[link.head_uuid]['name']
- within('tr', text: repositories[link.head_uuid]['fetch_url']) do
- assert_text 'writable'
- click_link repositories[link.head_uuid]['name']
- end
- assert_text 'Repository Access'
- visit current_page
- else
- assert_no_selector 'a', text: repositories[link.head_uuid]['name']
- assert_text repositories[link.head_uuid]['name']
- within('tr', text: repositories[link.head_uuid]['fetch_url']) do
- if repo_writables[link.head_uuid] == 'can_write'
- assert_text 'writable'
- else
- assert_text 'read-only'
- end
- end
- end
- end
- end
-