Commit 59425a1882c2daa6b128957bce3692fe29fcefc6
Committed by
Rodrigo Souto
1 parent
7151a51a
Exists in
master
and in
29 other branches
adding functional testes for communities endpoint
Showing
2 changed files
with
48 additions
and
18 deletions
Show diff stats
app/models/profile.rb
| @@ -149,7 +149,7 @@ class Profile < ActiveRecord::Base | @@ -149,7 +149,7 @@ class Profile < ActiveRecord::Base | ||
| 149 | joins('LEFT JOIN "role_assignments" ON "role_assignments"."resource_id" = "profiles"."id" AND "role_assignments"."resource_type" = \'Profile\'') | 149 | joins('LEFT JOIN "role_assignments" ON "role_assignments"."resource_id" = "profiles"."id" AND "role_assignments"."resource_type" = \'Profile\'') |
| 150 | .where( | 150 | .where( |
| 151 | ['( ( role_assignments.accessor_type = ? AND role_assignments.accessor_id = ? ) OR | 151 | ['( ( role_assignments.accessor_type = ? AND role_assignments.accessor_id = ? ) OR |
| 152 | - (profiles.public_profile = ?) )', Profile.name, person.id, true] | 152 | + (profiles.public_profile = ?)) AND (profiles.visible = ?)', Profile.name, person.id, true, true] |
| 153 | ).uniq | 153 | ).uniq |
| 154 | } | 154 | } |
| 155 | 155 |
test/unit/api/communities_test.rb
| @@ -14,14 +14,6 @@ class CommunitiesTest < ActiveSupport::TestCase | @@ -14,14 +14,6 @@ class CommunitiesTest < ActiveSupport::TestCase | ||
| 14 | assert_equivalent [community1.id, community2.id], json['communities'].map {|c| c['id']} | 14 | assert_equivalent [community1.id, community2.id], json['communities'].map {|c| c['id']} |
| 15 | end | 15 | end |
| 16 | 16 | ||
| 17 | - should 'get community' do | ||
| 18 | - community = fast_create(Community) | ||
| 19 | - | ||
| 20 | - get "/api/v1/communities/#{community.id}?#{params.to_query}" | ||
| 21 | - json = JSON.parse(last_response.body) | ||
| 22 | - assert_equal community.id, json['community']['id'] | ||
| 23 | - end | ||
| 24 | - | ||
| 25 | should 'not list invisible communities' do | 17 | should 'not list invisible communities' do |
| 26 | community1 = fast_create(Community) | 18 | community1 = fast_create(Community) |
| 27 | fast_create(Community, :visible => false) | 19 | fast_create(Community, :visible => false) |
| @@ -50,6 +42,14 @@ class CommunitiesTest < ActiveSupport::TestCase | @@ -50,6 +42,14 @@ class CommunitiesTest < ActiveSupport::TestCase | ||
| 50 | assert_equivalent [c1.id, c2.id], json['communities'].map {|c| c['id']} | 42 | assert_equivalent [c1.id, c2.id], json['communities'].map {|c| c['id']} |
| 51 | end | 43 | end |
| 52 | 44 | ||
| 45 | + should 'get community' do | ||
| 46 | + community = fast_create(Community) | ||
| 47 | + | ||
| 48 | + get "/api/v1/communities/#{community.id}?#{params.to_query}" | ||
| 49 | + json = JSON.parse(last_response.body) | ||
| 50 | + assert_equal community.id, json['community']['id'] | ||
| 51 | + end | ||
| 52 | + | ||
| 53 | should 'not get invisible community' do | 53 | should 'not get invisible community' do |
| 54 | community = fast_create(Community, :visible => false) | 54 | community = fast_create(Community, :visible => false) |
| 55 | 55 | ||
| @@ -58,13 +58,43 @@ class CommunitiesTest < ActiveSupport::TestCase | @@ -58,13 +58,43 @@ class CommunitiesTest < ActiveSupport::TestCase | ||
| 58 | assert json['community'].blank? | 58 | assert json['community'].blank? |
| 59 | end | 59 | end |
| 60 | 60 | ||
| 61 | -# should 'list user communities' do | ||
| 62 | -# community1 = fast_create(Community) | ||
| 63 | -# fast_create(Community) | ||
| 64 | -# community1.add_member(user.person) | ||
| 65 | -# | ||
| 66 | -# get "/api/v1/communities?#{params.to_query}" | ||
| 67 | -# json = JSON.parse(last_response.body) | ||
| 68 | -# assert_equivalent [community1.id], json['communities'].map {|c| c['id']} | ||
| 69 | -# end | 61 | + should 'not get private communities without permission' do |
| 62 | + community = fast_create(Community) | ||
| 63 | + fast_create(Community, :public_profile => false) | ||
| 64 | + | ||
| 65 | + get "/api/v1/communities/#{community.id}?#{params.to_query}" | ||
| 66 | + json = JSON.parse(last_response.body) | ||
| 67 | + assert_equal community.id, json['community']['id'] | ||
| 68 | + end | ||
| 69 | + | ||
| 70 | + should 'get private community for members' do | ||
| 71 | + community = fast_create(Community, :public_profile => false) | ||
| 72 | + community.add_member(person) | ||
| 73 | + | ||
| 74 | + get "/api/v1/communities/#{community.id}?#{params.to_query}" | ||
| 75 | + json = JSON.parse(last_response.body) | ||
| 76 | + assert_equal community.id, json['community']['id'] | ||
| 77 | + end | ||
| 78 | + | ||
| 79 | + should 'list person communities' do | ||
| 80 | + community = fast_create(Community) | ||
| 81 | + fast_create(Community) | ||
| 82 | + community.add_member(person) | ||
| 83 | + | ||
| 84 | + get "/api/v1/people/#{person.id}/communities?#{params.to_query}" | ||
| 85 | + json = JSON.parse(last_response.body) | ||
| 86 | + assert_equivalent [community.id], json['communities'].map {|c| c['id']} | ||
| 87 | + end | ||
| 88 | + | ||
| 89 | + should 'not list person communities invisible' do | ||
| 90 | + c1 = fast_create(Community) | ||
| 91 | + c2 = fast_create(Community, :visible => false) | ||
| 92 | + c1.add_member(person) | ||
| 93 | + c2.add_member(person) | ||
| 94 | + | ||
| 95 | + get "/api/v1/people/#{person.id}/communities?#{params.to_query}" | ||
| 96 | + json = JSON.parse(last_response.body) | ||
| 97 | + assert_equivalent [c1.id], json['communities'].map {|c| c['id']} | ||
| 98 | + end | ||
| 99 | + | ||
| 70 | end | 100 | end |