11652: Add tests for non-recursive and home-project cases.
authorTom Clegg <tom@curoverse.com>
Tue, 6 Jun 2017 17:53:25 +0000 (13:53 -0400)
committerTom Clegg <tom@curoverse.com>
Tue, 6 Jun 2017 17:53:25 +0000 (13:53 -0400)
services/api/test/functional/arvados/v1/groups_controller_test.rb

index e82113e625c1e90dbc204ccfd079daef56913fda..3beec35958b45dc63611e9fcf393e98dff2575ef 100644 (file)
@@ -478,16 +478,49 @@ class Arvados::V1::GroupsControllerTest < ActionController::TestCase
                     :<, json_response['items_available'])
   end
 
-  test 'get contents recursive=true' do
+  test 'get contents, recursive=true' do
+    authorize_with :active
+    params = {
+      id: groups(:aproject).uuid,
+      recursive: true,
+      format: :json,
+    }
+    get :contents, params
+    owners = json_response['items'].map do |item|
+      item['owner_uuid']
+    end
+    assert_includes(owners, groups(:aproject).uuid)
+    assert_includes(owners, groups(:asubproject).uuid)
+  end
+
+  [false, nil].each do |recursive|
+    test "get contents, recursive=#{recursive.inspect}" do
+      authorize_with :active
+      params = {
+        id: groups(:aproject).uuid,
+        format: :json,
+      }
+      params[:recursive] = false if recursive == false
+      get :contents, params
+      owners = json_response['items'].map do |item|
+        item['owner_uuid']
+      end
+      assert_includes(owners, groups(:aproject).uuid)
+      refute_includes(owners, groups(:asubproject).uuid)
+    end
+  end
+
+  test 'get home project contents, recursive=true' do
     authorize_with :active
     get :contents, {
-          id: groups(:aproject).uuid,
+          id: users(:active).uuid,
           recursive: true,
           format: :json,
         }
     owners = json_response['items'].map do |item|
       item['owner_uuid']
     end
+    assert_includes(owners, users(:active).uuid)
     assert_includes(owners, groups(:aproject).uuid)
     assert_includes(owners, groups(:asubproject).uuid)
   end