require_relative 'integration_test_utils'
class CollectionsTest < ActionDispatch::IntegrationTest
- include KeepWebConfig
-
setup do
need_javascript
end
send(link_assertion, all("a").select { |a| a[:href] =~ link_regexp })
end
+ test "Hides sharing link button when configured to do so" do
+ Rails.configuration.Workbench.DisableSharingURLsUI = true
+ coll_uuid = api_fixture("collections", "collection_owned_by_active", "uuid")
+ visit page_with_token("active_trustedclient", "/collections/#{coll_uuid}")
+ assert_no_selector 'div#sharing-button'
+ end
+
test "creating and uncreating a sharing link" do
coll_uuid = api_fixture("collections", "collection_owned_by_active", "uuid")
download_link_re =
Regexp.new(Regexp.escape("/c=#{coll_uuid}/"))
visit page_with_token("active_trustedclient", "/collections/#{coll_uuid}")
+ assert_selector 'div#sharing-button'
within "#sharing-button" do
check_sharing(:on, download_link_re)
check_sharing(:off, download_link_re)
end
test "can download an entire collection with a reader token" do
- use_keep_web_config
+ need_selenium "phantomjs does not follow redirects reliably, maybe https://github.com/ariya/phantomjs/issues/10389"
- token = api_fixture('api_client_authorizations')['active']['api_token']
+ token = api_token('active')
data = "foo\nfile\n"
datablock = `echo -n #{data.shellescape} | ARVADOS_API_TOKEN=#{token.shellescape} arv-put --no-progress --raw -`.strip
assert $?.success?, $?
token = api_fixture('api_client_authorizations')['active_all_collections']['api_token']
url_head = "/collections/download/#{uuid}/#{token}/"
visit url_head
+ assert_text "You can download individual files listed below"
# It seems that Capybara can't inspect tags outside the body, so this is
# a very blunt approach.
assert_no_match(/<\s*meta[^>]+\bnofollow\b/i, page.html,
"wget prohibited from recursing the collection page")
# Look at all the links that wget would recurse through using our
# recommended options, and check that it's exactly the file list.
- hrefs = page.all('a').map do |anchor|
- link = anchor[:href] || ''
- if link.start_with? url_head
- link[url_head.size .. -1]
- elsif link.start_with? '/'
- nil
- else
- link
- end
- end
- assert_equal(['./foo'], hrefs.compact.sort,
- "download page did provide strictly file links")
+ hrefs = []
+ page.html.scan(/href="(.*?)"/) { |m| hrefs << m[0] }
+ assert_equal(['./foo'], hrefs, "download page did provide strictly file links")
click_link "foo"
assert_text "foo\nfile\n"
end