forgot_password_helper_test.rb
4.09 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
require_relative "../test_helper"
class ForgotPasswordHelperTest < ActionView::TestCase
include ForgotPasswordHelper
def setup
@environment = Environment.default
@plugins = Noosfero::Plugin::Manager.new(@environment, self)
end
attr_accessor :environment
should 'allow extra fields provided by plugins' do
class Plugin1 < Noosfero::Plugin
def change_password_fields
{:field => 'f1', :name => 'F1', :model => 'person'}
end
end
class Plugin2 < Noosfero::Plugin
def change_password_fields
[{:field => 'f2', :name => 'F2', :model => 'person'},
{:field => 'f3', :name => 'F3', :model => 'person'}]
end
end
Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2'])
environment.enable_plugin(Plugin1)
environment.enable_plugin(Plugin2)
assert_includes fields, 'f1'
assert_includes fields, 'f2'
assert_includes fields, 'f3'
end
should 'allow extra person fields provided by plugins' do
class Plugin1 < Noosfero::Plugin
def change_password_fields
{:field => 'f1', :name => 'F1', :model => 'person'}
end
end
class Plugin2 < Noosfero::Plugin
def change_password_fields
[{:field => 'f2', :name => 'F2', :model => 'user'},
{:field => 'f3', :name => 'F3', :model => 'person'}]
end
end
Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2'])
environment.enable_plugin(Plugin1)
environment.enable_plugin(Plugin2)
assert_includes person_fields, 'f1'
assert_not_includes person_fields, 'f2'
assert_includes person_fields, 'f3'
end
should 'allow extra user fields provided by plugins' do
class Plugin1 < Noosfero::Plugin
def change_password_fields
{:field => 'f1', :name => 'F1', :model => 'user'}
end
end
class Plugin2 < Noosfero::Plugin
def change_password_fields
[{:field => 'f2', :name => 'F2', :model => 'person'},
{:field => 'f3', :name => 'F3', :model => 'user'}]
end
end
Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2'])
environment.enable_plugin(Plugin1)
environment.enable_plugin(Plugin2)
assert_includes user_fields, 'f1'
assert_not_includes user_fields, 'f2'
assert_includes user_fields, 'f3'
end
should 'add plugins fields labels to final label' do
class Plugin1 < Noosfero::Plugin
def change_password_fields
{:field => 'f1', :name => 'F1', :model => 'user'}
end
end
class Plugin2 < Noosfero::Plugin
def change_password_fields
[{:field => 'f2', :name => 'F2', :model => 'person'},
{:field => 'f3', :name => 'F3', :model => 'user'}]
end
end
Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2'])
environment.enable_plugin(Plugin1)
environment.enable_plugin(Plugin2)
assert_match /F1/, fields_label
assert_match /F2/, fields_label
assert_match /F3/, fields_label
end
should 'fetch requestors based on fields available' do
p1 = create_user('person1').person
p2 = create_user('person2').person
requestors = fetch_requestors('person1')
assert_includes requestors, p1
assert_not_includes requestors, p2
p3 = create_user('person3').person
p3.address = 'some address'
p3.save!
p4 = create_user('person4').person
p4.address = 'some address'
p4.save!
p5 = create_user('person5').person
p5.address = 'another address'
p5.save!
self.stubs(:person_fields).returns(%w[address])
requestors = fetch_requestors('some address')
assert_includes requestors, p3
assert_includes requestors, p4
end
should 'not fetch people from other environments' do
p1 = create_user('person', :environment => fast_create(Environment)).person
p2 = create_user('person').person
requestors = fetch_requestors('person')
assert_not_includes requestors, p1
assert_includes requestors, p2
end
end