@@ -145,6 +145,90 @@ diag "Bulk update";
145
145
# TODO: test more bulk update actions
146
146
}
147
147
148
+ diag " People update" ;
149
+ {
150
+ my $asset = create_asset( Name => " Test asset" , Catalog => $catalog -> Id );
151
+ $m -> get_ok( ' /Asset/Display.html?id=' . $asset -> Id );
152
+ $m -> follow_link_ok( { text => ' People' } );
153
+
154
+ my $form = $m -> form_id(' ModifyAssetPeople' );
155
+ my $owner_input = $form -> find_input(' SetRoleMember-Owner' );
156
+ ok( $owner_input , ' Found owner input' );
157
+ is( $owner_input -> value, ' Nobody' , ' Default owner is Nobody' );
158
+ $m -> submit_form_ok(
159
+ {
160
+ fields => {
161
+ ' SetRoleMember-Owner' => ' root' ,
162
+ },
163
+ button => ' Update' ,
164
+ },
165
+ ' Submit form ModifyAssetPeople'
166
+ );
167
+ $m -> text_contains(' Owner set to root' );
168
+
169
+ $form = $m -> form_id(' ModifyAssetPeople' );
170
+ $owner_input = $form -> find_input(' SetRoleMember-Owner' );
171
+ ok( $owner_input , ' Found owner input' );
172
+ is( $owner_input -> value, ' root' , ' Input value of owner is root' );
173
+
174
+ my $staff = RT::Test-> load_or_create_group(' Staff' );
175
+ $m -> submit_form_ok(
176
+ {
177
+ fields => {
178
+ ' AddUserRoleMember-Role' => ' Contact' ,
179
+ AddUserRoleMember => ' alice@localhost' ,
180
+ ' AddGroupRoleMember-Role' => ' HeldBy' ,
181
+ AddGroupRoleMember => ' Staff' ,
182
+ },
183
+ button => ' Update' ,
184
+ },
185
+ ' Submit form ModifyAssetPeople'
186
+ );
187
+ $m -> text_contains(' Member added: alice@localhost' );
188
+ $m -> text_contains(' Member added: Staff' );
189
+
190
+ $form = $m -> form_id(' ModifyAssetPeople' );
191
+ my $alice = RT::Test-> load_or_create_user( Name => ' alice@localhost' );
192
+ $m -> tick(' RemoveRoleMember-Contact' , $alice -> Id);
193
+ $m -> tick(' RemoveRoleMember-HeldBy' , $staff -> Id);
194
+
195
+ $m -> submit_form_ok(
196
+ {
197
+ button => ' Update' ,
198
+ },
199
+ ' Submit form ModifyAssetPeople'
200
+ );
201
+ $m -> text_contains(' Member deleted' );
202
+
203
+
204
+ # Add manager later to test if the page works with absent role groups.
205
+ my $manager = RT::CustomRole-> new( RT-> SystemUser );
206
+ ok(
207
+ $manager -> Create(
208
+ Name => ' Manager' ,
209
+ LookupType => RT::Asset-> CustomFieldLookupType,
210
+ MaxValues => 1,
211
+ )
212
+ );
213
+ ok( $manager -> AddToObject( $catalog -> Id ) );
214
+
215
+ $m -> reload;
216
+ $form = $m -> form_id(' ModifyAssetPeople' );
217
+ my $manager_input = $form -> find_input( ' SetRoleMember-' . $manager -> GroupType );
218
+ ok( $manager_input , ' Found manager input' );
219
+ is( $manager_input -> value, ' Nobody' , ' Default manager is Nobody' );
220
+ $m -> submit_form_ok(
221
+ {
222
+ fields => {
223
+ ' SetRoleMember-' . $manager -> GroupType => ' root' ,
224
+ },
225
+ button => ' Update' ,
226
+ },
227
+ ' Submit form ModifyAssetPeople'
228
+ );
229
+ $m -> text_contains(' Manager set to root' );
230
+ }
231
+
148
232
# XXX TODO: test other modify pages
149
233
150
234
done_testing;
0 commit comments