profiles_test.rb
2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
require_relative 'test_helper'
class ProfilesTest < ActiveSupport::TestCase
def setup
Profile.delete_all
end
should 'logged user list all profiles' do
login_api
person1 = fast_create(Person)
person2 = fast_create(Person)
community = fast_create(Community)
get "/api/v1/profiles?#{params.to_query}"
json = JSON.parse(last_response.body)
assert_equivalent [person.id, person1.id, person2.id, community.id], json.map {|p| p['id']}
end
should 'logged user get person from profile id' do
login_api
some_person = fast_create(Person)
get "/api/v1/profiles/#{some_person.id}?#{params.to_query}"
json = JSON.parse(last_response.body)
assert_equal some_person.id, json['id']
end
should 'logged user get community from profile id' do
login_api
community = fast_create(Community)
get "/api/v1/profiles/#{community.id}?#{params.to_query}"
json = JSON.parse(last_response.body)
assert_equal community.id, json['id']
end
should 'anonymous list all profiles' do
person1 = fast_create(Person)
person2 = fast_create(Person)
community = fast_create(Community)
get "/api/v1/profiles"
json = JSON.parse(last_response.body)
assert_equivalent [person1.id, person2.id, community.id], json.map {|p| p['id']}
end
should 'anonymous get person from profile id' do
some_person = fast_create(Person)
get "/api/v1/profiles/#{some_person.id}"
json = JSON.parse(last_response.body)
assert_equal some_person.id, json['id']
end
should 'anonymous get community from profile id' do
community = fast_create(Community)
get "/api/v1/profiles/#{community.id}"
json = JSON.parse(last_response.body)
assert_equal community.id, json['id']
end
should 'display public custom fields to anonymous' do
anonymous_setup
CustomField.create!(:name => "Rating", :format => "string", :customized_type => "Profile", :active => true, :environment => Environment.default)
some_profile = fast_create(Profile)
some_profile.custom_values = { "Rating" => { "value" => "Five stars", "public" => "true"} }
some_profile.save!
get "/api/v1/profiles/#{some_profile.id}?#{params.to_query}"
json = JSON.parse(last_response.body)
assert json['additional_data'].has_key?('Rating')
assert_equal "Five stars", json['additional_data']['Rating']
end
should 'not display private custom fields to anonymous' do
anonymous_setup
CustomField.create!(:name => "Rating", :format => "string", :customized_type => "Profile", :active => true, :environment => Environment.default)
some_profile = fast_create(Profile)
some_profile.custom_values = { "Rating" => { "value" => "Five stars", "public" => "false"} }
some_profile.save!
get "/api/v1/profiles/#{some_profile.id}?#{params.to_query}"
json = JSON.parse(last_response.body)
refute json.has_key?('Rating')
end
end