account_controller_test.rb
3.41 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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
require File.dirname(__FILE__) + '/../../../../test/test_helper'
require File.dirname(__FILE__) + '/../../controllers/mpog_software_plugin_controller'
class AccountController; def rescue_action(e) raise e end; end
class AccountControllerTest < ActionController::TestCase
def setup
environment = Environment.default
environment.enabled_plugins = ['MpogSoftwarePlugin']
environment.save
@govPower = GovernmentalPower.create(:name=>"Some Gov Power")
@govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
@controller = AccountController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@institution_list = []
@institution_list << create_institution("Ministerio Publico da Uniao", "MPU")
@institution_list << create_institution("Tribunal Regional da Uniao", "TRU")
@user_info = {
:login=>"novo_usuario",
:password=>"nova_senha",
:password_confirmation=>"nova_senha",
:email=>"um@novo.usuario",
:secondary_email=>"outro@email.com",
:institution_id=>@institution_list.last.id
}
@profile_data_info = {
:name=>"Um novo usuario",
:area_interest=>"uma area ai"
}
disable_signup_bot_check
end
should "Create a user without gov email and institution" do
@user_info[:institution_id] = nil
post :signup, :user => @user_info, :profile_data => @profile_data_info
assert_equal assigns(:user).login, @user_info[:login]
assert assigns(:user).save
end
should "Create a user with gov email and institution" do
@user_info[:email] = "email@gov.br"
post :signup, :user => @user_info, :profile_data => @profile_data_info
assert_equal assigns(:user).login, @user_info[:login]
assert assigns(:user).save
end
should "Do not create a user with gov email without institution" do
@user_info[:email] = "email@gov.br"
@user_info[:institution_id] = nil
post :signup, :user => @user_info, :profile_data => @profile_data_info
assert_equal assigns(:user).login, @user_info[:login]
assert !assigns(:user).save
end
should "user become a member of its institution community on registration" do
post :signup, :user => @user_info, :profile_data => @profile_data_info
last_user = User.last
last_community = Community.last
assert_equal @user_info[:secondary_email], last_user.secondary_email
assert_equal true, last_community.members.include?(last_user.person)
assert_response :success
end
private
def create_institution name, acronym
institution_community = Community::create :name=>name
institution = PublicInstitution.new
institution.community = institution_community
institution.name = name
institution.acronym = acronym
institution.governmental_power = @govPower
institution.governmental_sphere = @govSphere
institution.save
institution
end
def form_params
user = {
:login=>"novo_usuario",
:password=>"nova_senha",
:password_confirmation=>"nova_senha",
:email=>"um@novo.usuario",
:secondary_email=>"outro@email.com",
:institution_id=>@institution_list.last.id
}
profile_data = {
:name=>"Um novo usuario",
:area_interest=>"uma area ai"
}
user["profile_data"] = profile_data
user
end
def disable_signup_bot_check(environment = Environment.default)
environment.min_signup_delay = 0
environment.save!
end
end