1 use Test::MockTime qw(set_fixed_time restore_time);
6 use RT::Test tests => undef;
9 { Principal => 'Everyone', Right => [qw(
10 SeeQueue ShowTicket CreateTicket SeeCustomField ModifyCustomField
14 my $q = RT::Test->load_or_create_queue( Name => 'General' );
15 ok $q && $q->id, 'loaded or created a queue';
17 my $user_m = RT::Test->load_or_create_user( Name => 'moscow', Timezone => 'Europe/Moscow' );
18 ok $user_m && $user_m->id;
20 my $user_b = RT::Test->load_or_create_user( Name => 'boston', Timezone => 'America/New_York' );
21 ok $user_b && $user_b->id;
24 my $cf_name = 'A Date';
27 $cf = RT::CustomField->new(RT->SystemUser);
33 LookupType => RT::Ticket->CustomFieldLookupType,
37 ok( $cf->AddToObject($q), 'date cf apply to queue' );
41 my $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_m ) );
42 my ($id) = $ticket->Create(
45 'CustomField-'. $cf->id => '2013-02-11',
47 my $cf_value = $ticket->CustomFieldValues($cf_name)->First;
48 is( $cf_value->Content, '2013-02-11', 'correct value' );
50 $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_b ) );
52 is( $ticket->FirstCustomFieldValue($cf_name), '2013-02-11', 'correct value' );
56 my $ticket = RT::Ticket->new(RT->SystemUser);
61 'CustomField-' . $cf->id => '2010-05-04 11:34:56',
63 'create ticket with cf set to 2010-05-04 11:34:56'
65 is( $ticket->CustomFieldValues->First->Content,
66 '2010-05-04', 'date in db only has date' );
69 # in moscow it's already Feb 11, so tomorrow is Feb 12
70 set_fixed_time("2013-02-10T23:10:00Z");
72 my $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_m ) );
73 my ($id) = $ticket->Create(
76 'CustomField-'. $cf->id => 'tomorrow',
78 my $cf_value = $ticket->CustomFieldValues($cf_name)->First;
79 is( $cf_value->Content, '2013-02-12', 'correct value' );
81 $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_b ) );
83 is( $ticket->FirstCustomFieldValue($cf_name), '2013-02-12', 'correct value' );