4 use RT::Test tests => 18;
9 use_ok 'RT::CustomField';
11 my $u1 = RT::User->new( RT->SystemUser );
12 isa_ok( $u1, 'RT::User' );
13 ok( $u1->Load('root'), "Loaded user 'root'" );
16 my $cfname = 'TestUserCF'. $suffix;
17 my $cf = RT::CustomField->new( RT->SystemUser );
18 isa_ok( $cf, 'RT::CustomField' );
21 my ($id, $msg) = $cf->Create(
23 LookupType => 'RT::User',
25 Description => 'Freeform CF for tests',
27 ok( $id, "Created cf '$cfname' - " . $msg );
31 my ($status, $msg) = $cf->AddToObject( $u1 );
32 ok( $status, "Added CF to user object - " . $msg);
38 my ($id, $msg) = $u1->AddCustomFieldValue(
41 RecordTransaction => 0 );
42 ok( $id, "Adding CF value '$cfvalue1' - " . $msg );
45 # Confirm value is returned.
47 my $cf_value_ref = QueryCFValue( $cfvalue1, $cf->id );
48 is( scalar(@$cf_value_ref), 1, 'Got one value.' );
49 is( $cf_value_ref->[0], 'Foo', 'Got Foo back for value.' );
53 my ($id, $msg) = $u1->DeleteCustomFieldValue(
56 RecordTransaction => 0 );
57 ok( $id, "Deleting CF value - " . $msg );
62 my ($id, $msg) = $u1->AddCustomFieldValue(
65 RecordTransaction => 0 );
66 ok( $id, "Adding second CF value '$cfvalue2' - " . $msg );
69 # Confirm no value is returned for Foo.
71 # Calling with $cfvalue1 on purpose to confirm
72 # it has been disabled by the delete above.
74 my $cf_value_ref = QueryCFValue( $cfvalue1, $cf->id );
75 is( scalar(@$cf_value_ref), 0, 'No values returned for Foo.' );
78 # Confirm value is returned for Bar.
80 my $cf_value_ref = QueryCFValue( $cfvalue2, $cf->id );
81 is( scalar(@$cf_value_ref), 1, 'Got one value.' );
82 is( $cf_value_ref->[0], 'Bar', 'Got Bar back for value.' );
91 my $users = RT::Users->new(RT->SystemUser);
92 isa_ok( $users, 'RT::Users' );
94 $users->LimitCustomField(
95 CUSTOMFIELD => $cf_id,
99 while ( my $filtered_user = $users->Next() ){
100 my $cf_values = $filtered_user->CustomFieldValues($cf->id);
101 while (my $cf_value = $cf_values->Next() ){
102 push @cf_value_strs, $cf_value->Content;
105 return \@cf_value_strs;