X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/27daf08f38eec505c224e7776678b32d50241e13..2e437823d2d19edf5c6be392f3604a499308cd6e:/services/api/test/functional/arvados/v1/collections_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/collections_controller_test.rb b/services/api/test/functional/arvados/v1/collections_controller_test.rb index 99b0333256..a8583be12b 100644 --- a/services/api/test/functional/arvados/v1/collections_controller_test.rb +++ b/services/api/test/functional/arvados/v1/collections_controller_test.rb @@ -811,13 +811,12 @@ EOS end [ - nil, ". 0:0:foo.txt", ". d41d8cd98f00b204e9800998ecf8427e foo.txt", "d41d8cd98f00b204e9800998ecf8427e 0:0:foo.txt", ". d41d8cd98f00b204e9800998ecf8427e 0:0:foo.txt", ].each do |manifest_text| - test "create collection with invalid manifest #{manifest_text}" do + test "create collection with invalid manifest #{manifest_text} and expect error" do authorize_with :active post :create, { collection: { @@ -825,26 +824,38 @@ EOS portable_data_hash: "d41d8cd98f00b204e9800998ecf8427e+0" } } - if manifest_text - assert_response 422 - response_errors = json_response['errors'] - assert_not_nil response_errors, 'Expected error in response' - assert(response_errors.first.include?('Invalid manifest'), - "Expected 'Invalid manifest' error in #{response_errors.first}") - else - assert_response 200 - end + assert_response 422 + response_errors = json_response['errors'] + assert_not_nil response_errors, 'Expected error in response' + assert(response_errors.first.include?('Invalid manifest'), + "Expected 'Invalid manifest' error in #{response_errors.first}") + end + end + + [ + [nil, "d41d8cd98f00b204e9800998ecf8427e+0"], + ["", "d41d8cd98f00b204e9800998ecf8427e+0"], + [". d41d8cd98f00b204e9800998ecf8427e 0:0:foo.txt\n", "d30fe8ae534397864cb96c544f4cf102+47"], + ].each do |manifest_text, pdh| + test "create collection with valid manifest #{manifest_text.inspect} and expect success" do + authorize_with :active + post :create, { + collection: { + manifest_text: manifest_text, + portable_data_hash: pdh + } + } + assert_response 200 end end [ - nil, ". 0:0:foo.txt", ". d41d8cd98f00b204e9800998ecf8427e foo.txt", "d41d8cd98f00b204e9800998ecf8427e 0:0:foo.txt", ". d41d8cd98f00b204e9800998ecf8427e 0:0:foo.txt", ].each do |manifest_text| - test "update collection with invalid manifest #{manifest_text}" do + test "update collection with invalid manifest #{manifest_text} and expect error" do authorize_with :active post :update, { id: 'zzzzz-4zz18-bv31uwvy3neko21', @@ -852,15 +863,28 @@ EOS manifest_text: manifest_text, } } - if manifest_text - assert_response 422 - response_errors = json_response['errors'] - assert_not_nil response_errors, 'Expected error in response' - assert(response_errors.first.include?('Invalid manifest'), - "Expected 'Invalid manifest' error in #{response_errors.first}") - else - assert_response 200 - end + assert_response 422 + response_errors = json_response['errors'] + assert_not_nil response_errors, 'Expected error in response' + assert(response_errors.first.include?('Invalid manifest'), + "Expected 'Invalid manifest' error in #{response_errors.first}") + end + end + + [ + nil, + "", + ". d41d8cd98f00b204e9800998ecf8427e 0:0:foo.txt\n", + ].each do |manifest_text| + test "update collection with valid manifest #{manifest_text.inspect} and expect success" do + authorize_with :active + post :update, { + id: 'zzzzz-4zz18-bv31uwvy3neko21', + collection: { + manifest_text: manifest_text, + } + } + assert_response 200 end end end