From 1e5370563a661ed048c466a45eddd7fa33b290b8 Mon Sep 17 00:00:00 2001 From: Marcos Ronaldo Date: Fri, 13 Nov 2015 11:35:45 -0200 Subject: [PATCH] add test for user api --- test/unit/api/users_test.rb | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+), 0 deletions(-) diff --git a/test/unit/api/users_test.rb b/test/unit/api/users_test.rb index 0888380..434bc5d 100644 --- a/test/unit/api/users_test.rb +++ b/test/unit/api/users_test.rb @@ -33,4 +33,73 @@ class UsersTest < ActiveSupport::TestCase assert_equal user.id, json['user']['id'] end + should 'not show permissions to logged user' do + target_person = create_user('some-user').person + get "/api/v1/users/#{target_person.user.id}/?#{params.to_query}" + json = JSON.parse(last_response.body) + refute json["user"].has_key?("permissions") + end + + should 'show permissions to self' do + get "/api/v1/users/#{user.id}/?#{params.to_query}" + json = JSON.parse(last_response.body) + assert json["user"].has_key?("permissions") + end + + should 'not show permissions to friend' do + target_person = create_user('some-user').person + + f = Friendship.new + f.friend = target_person + f.person = person + f.save! + + get "/api/v1/users/#{target_person.user.id}/?#{params.to_query}" + json = JSON.parse(last_response.body) + refute json["user"].has_key?("permissions") + end + + should 'not show private attribute to logged user' do + target_person = create_user('some-user').person + get "/api/v1/users/#{target_person.user.id}/?#{params.to_query}" + json = JSON.parse(last_response.body) + refute json["user"].has_key?("email") + end + + should 'show private attr to friend' do + target_person = create_user('some-user').person + f = Friendship.new + f.friend = target_person + f.person = person + f.save! + get "/api/v1/users/#{target_person.user.id}/?#{params.to_query}" + json = JSON.parse(last_response.body) + assert json["user"].has_key?("email") + assert_equal target_person.email, json["user"]["email"] + end + + should 'show public attribute to logged user' do + target_person = create_user('some-user').person + target_person.fields_privacy={:email=> 'public'} + target_person.save! + get "/api/v1/users/#{target_person.user.id}/?#{params.to_query}" + json = JSON.parse(last_response.body) + assert json["user"].has_key?("email") + assert_equal json["user"]["email"],target_person.email + end + + should 'show public and private field to admin' do + Environment.default.add_admin(person) + + target_person = create_user('some-user').person + target_person.fields_privacy={:email=> 'public'} + target_person.save! + + get "/api/v1/users/#{target_person.user.id}/?#{params.to_query}" + json = JSON.parse(last_response.body) + assert json["user"].has_key?("email") + assert json["user"].has_key?("permissions") + assert json["user"].has_key?("activated") + end + end -- libgit2 0.21.2