require 'test_helper'
class CollectionsControllerTest < ActionController::TestCase
+ NONEXISTENT_COLLECTION = "ffffffffffffffffffffffffffffffff+0"
+
def collection_params(collection_name, file_name=nil)
uuid = api_fixture('collections')[collection_name.to_s]['uuid']
params = {uuid: uuid, id: uuid}
assert_equal([['.', 'foo', 3]], assigns(:object).files)
end
- test "viewing a collection fetches related folders" do
- show_collection(:foo_file, :active)
- assert_includes(assigns(:folders).map(&:uuid),
- api_fixture('groups')['afolder']['uuid'],
- "controller did not find linked folder")
+ test "viewing a collection fetches related projects" do
+ show_collection({id: api_fixture('collections')["foo_file"]['portable_data_hash']}, :active)
+ assert_includes(assigns(:same_pdh).map(&:owner_uuid),
+ api_fixture('groups')['aproject']['uuid'],
+ "controller did not find linked project")
end
test "viewing a collection fetches related permissions" do
assert_no_session
end
+ test "reader token Collection links end with trailing slash" do
+ # Testing the fix for #2937.
+ show_collection(:foo_file, :active_trustedclient)
+ post(:share, collection_params(:foo_file))
+ assert(@controller.download_link.ends_with? '/',
+ "Collection share link does not end with slash for wget")
+ end
+
test "getting a file from Keep" do
params = collection_params(:foo_file, 'foo')
sess = session_for(:active)
assert_not_equal(read_token, session[:arvados_api_token],
"using a reader token set the session's API token")
end
+
+ test "inactive user can retrieve user agreement" do
+ ua_collection = api_fixture('collections')['user_agreement']
+ get :show_file, {
+ uuid: ua_collection['uuid'],
+ file: ua_collection['manifest_text'].match(/ \d+:\d+:(\S+)/)[1]
+ }, session_for(:inactive)
+ assert_nil(assigns(:unsigned_user_agreements),
+ "Did not skip check_user_agreements filter " +
+ "when showing the user agreement.")
+ assert_response :success
+ end
+
+ test "requesting nonexistent Collection returns 404" do
+ show_collection({uuid: NONEXISTENT_COLLECTION, id: NONEXISTENT_COLLECTION},
+ :active, 404)
+ end
end