Commit 44dd0a25cd5ac6c7a669683e9cdd25a4d06104f0
Committed by
Rodrigo Souto
1 parent
bf821d19
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 |