Merge branch 'master' into 4904-arv-web
[arvados.git] / services / api / test / functional / arvados / v1 / collections_controller_test.rb
index 021918c6bf5730362cdd7349b4426aa4e00a110b..ed56b62cd9d2efa3c4e05aecb045204ef12bbac8 100644 (file)
@@ -68,6 +68,18 @@ class Arvados::V1::CollectionsControllerTest < ActionController::TestCase
     assert_equal unique_uuids.count, resp['items'].count
   end
 
+  test "items.count == items_available with filters" do
+    authorize_with :active
+    get :index, {
+      limit: 100,
+      filters: [['uuid','=',collections(:foo_file).uuid]]
+    }
+    assert_response :success
+    assert_equal 1, assigns(:objects).length
+    assert_equal 1, json_response['items_available']
+    assert_equal 1, json_response['items'].count
+  end
+
   test "get index with limit=2 offset=99999" do
     # Assume there are not that many test fixtures.
     authorize_with :active
@@ -335,12 +347,12 @@ EOS
   test "search collections with 'any' operator" do
     authorize_with :active
     get :index, {
-      where: { any: ['contains', '7f9102c395f4ffc5e3'] }
+      where: { any: ['contains', 'd0bc8c7f34be170a7b7b'] }
     }
     assert_response :success
     found = assigns(:objects).collect(&:portable_data_hash)
-    assert_equal 2, found.count
-    assert_equal true, !!found.index('1f4b0bc7583c2a7f9102c395f4ffc5e3+45')
+    assert_equal 1, found.count
+    assert_equal true, !!found.index('5bd9c1ad0bc8c7f34be170a7b7b39089+45')
   end
 
   [false, true].each do |permit_unsigned|
@@ -576,6 +588,7 @@ EOS
   end
 
   test 'Reject manifest with unsigned blob' do
+    permit_unsigned_manifests false
     authorize_with :active
     unsigned_manifest = ". 0cc175b9c0f1b6a831c399e269772661+1 0:1:a.txt\n"
     manifest_uuid = Digest::MD5.hexdigest(unsigned_manifest)
@@ -648,4 +661,35 @@ EOS
     }
     assert_response :success
   end
+
+  test "get collection and verify that file_names is not included" do
+    authorize_with :active
+    get :show, {id: collections(:foo_file).uuid}
+    assert_response :success
+    assert_equal collections(:foo_file).uuid, json_response['uuid']
+    assert_nil json_response['file_names']
+    assert json_response['manifest_text']
+  end
+
+  [
+    [2**8, :success],
+    [2**18, 422],
+  ].each do |description_size, expected_response|
+    test "create collection with description size #{description_size}
+          and expect response #{expected_response}" do
+      authorize_with :active
+
+      description = 'here is a collection with a very large description'
+      while description.length < description_size
+        description = description + description
+      end
+
+      post :create, collection: {
+        manifest_text: ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:foo.txt\n",
+        description: description,
+      }
+
+      assert_response expected_response
+    end
+  end
 end