Commit 3df1c0d29eb75dbbf03aa311c8c1d99a338c58a0
Committed by
Rodrigo Souto
1 parent
48598ab3
Exists in
master
and in
29 other branches
adding tests for community api
Showing
3 changed files
with
25 additions
and
7 deletions
Show diff stats
lib/api/v1/communities.rb
| @@ -29,8 +29,11 @@ module API | @@ -29,8 +29,11 @@ module API | ||
| 29 | end | 29 | end |
| 30 | 30 | ||
| 31 | resource :people do | 31 | resource :people do |
| 32 | + | ||
| 32 | segment '/:person_id' do | 33 | segment '/:person_id' do |
| 34 | + | ||
| 33 | resource :communities do | 35 | resource :communities do |
| 36 | + | ||
| 34 | get do | 37 | get do |
| 35 | person = environment.people.find(params[:person_id]) | 38 | person = environment.people.find(params[:person_id]) |
| 36 | communities = select_filtered_collection_of(person, 'communities', params) | 39 | communities = select_filtered_collection_of(person, 'communities', params) |
| @@ -38,13 +41,8 @@ module API | @@ -38,13 +41,8 @@ module API | ||
| 38 | present communities, :with => Entities::Community | 41 | present communities, :with => Entities::Community |
| 39 | end | 42 | end |
| 40 | 43 | ||
| 41 | -# get ':id' do | ||
| 42 | -# person = environment.people.find(params[:person_id]) | ||
| 43 | -# article = find_article(person.articles, params[:id]) | ||
| 44 | -# present article, :with => Entities::Article | ||
| 45 | -# end | ||
| 46 | - | ||
| 47 | end | 44 | end |
| 45 | + | ||
| 48 | end | 46 | end |
| 49 | 47 | ||
| 50 | end | 48 | end |
test/unit/api/communities_test.rb
| @@ -31,6 +31,25 @@ class CommunitiesTest < ActiveSupport::TestCase | @@ -31,6 +31,25 @@ class CommunitiesTest < ActiveSupport::TestCase | ||
| 31 | assert_equal [community1.id], json['communities'].map {|c| c['id']} | 31 | assert_equal [community1.id], json['communities'].map {|c| c['id']} |
| 32 | end | 32 | end |
| 33 | 33 | ||
| 34 | + should 'not list private communities without permission' do | ||
| 35 | + community1 = fast_create(Community) | ||
| 36 | + fast_create(Community, :public_profile => false) | ||
| 37 | + | ||
| 38 | + get "/api/v1/communities?#{params.to_query}" | ||
| 39 | + json = JSON.parse(last_response.body) | ||
| 40 | + assert_equal [community1.id], json['communities'].map {|c| c['id']} | ||
| 41 | + end | ||
| 42 | + | ||
| 43 | + should 'list private community for members' do | ||
| 44 | + c1 = fast_create(Community) | ||
| 45 | + c2 = fast_create(Community, :public_profile => false) | ||
| 46 | + c1.add_member(person) | ||
| 47 | + | ||
| 48 | + get "/api/v1/communities?#{params.to_query}" | ||
| 49 | + json = JSON.parse(last_response.body) | ||
| 50 | + assert_equivalent [c1.id, c2.id], json['communities'].map {|c| c['id']} | ||
| 51 | + end | ||
| 52 | + | ||
| 34 | should 'not get invisible community' do | 53 | should 'not get invisible community' do |
| 35 | community = fast_create(Community, :visible => false) | 54 | community = fast_create(Community, :visible => false) |
| 36 | 55 |
test/unit/api/test_helper.rb
| @@ -11,12 +11,13 @@ class ActiveSupport::TestCase | @@ -11,12 +11,13 @@ class ActiveSupport::TestCase | ||
| 11 | def login_api | 11 | def login_api |
| 12 | @user = User.create!(:login => 'testapi', :password => 'testapi', :password_confirmation => 'testapi', :email => 'test@test.org', :environment => Environment.default) | 12 | @user = User.create!(:login => 'testapi', :password => 'testapi', :password_confirmation => 'testapi', :email => 'test@test.org', :environment => Environment.default) |
| 13 | @user.activate | 13 | @user.activate |
| 14 | + @person = @user.person | ||
| 14 | 15 | ||
| 15 | post "/api/v1/login?login=testapi&password=testapi" | 16 | post "/api/v1/login?login=testapi&password=testapi" |
| 16 | json = JSON.parse(last_response.body) | 17 | json = JSON.parse(last_response.body) |
| 17 | @private_token = json["private_token"] | 18 | @private_token = json["private_token"] |
| 18 | @params = {:private_token => @private_token} | 19 | @params = {:private_token => @private_token} |
| 19 | end | 20 | end |
| 20 | - attr_accessor :private_token, :user, :params | 21 | + attr_accessor :private_token, :user, :person, :params |
| 21 | 22 | ||
| 22 | end | 23 | end |