X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Ft%2Fcustomfields%2Fdate.t;fp=rt%2Ft%2Fcustomfields%2Fdate.t;h=475ace6648a8c1a54ed20f4206114a3cf4d38fbb;hp=0000000000000000000000000000000000000000;hb=ed1f84b4e8f626245995ecda5afcf83092c153b2;hpb=fe9ea9183e8a16616d6d04a7b5c7498d28e78248 diff --git a/rt/t/customfields/date.t b/rt/t/customfields/date.t new file mode 100644 index 000000000..475ace664 --- /dev/null +++ b/rt/t/customfields/date.t @@ -0,0 +1,86 @@ +use Test::MockTime qw(set_fixed_time restore_time); + +use warnings; +use strict; + +use RT::Test tests => undef; + +RT::Test->set_rights( + { Principal => 'Everyone', Right => [qw( + SeeQueue ShowTicket CreateTicket SeeCustomField ModifyCustomField + )] }, +); + +my $q = RT::Test->load_or_create_queue( Name => 'General' ); +ok $q && $q->id, 'loaded or created a queue'; + +my $user_m = RT::Test->load_or_create_user( Name => 'moscow', Timezone => 'Europe/Moscow' ); +ok $user_m && $user_m->id; + +my $user_b = RT::Test->load_or_create_user( Name => 'boston', Timezone => 'America/New_York' ); +ok $user_b && $user_b->id; + + +my $cf_name = 'A Date'; +my $cf; +{ + $cf = RT::CustomField->new(RT->SystemUser); + ok( + $cf->Create( + Name => $cf_name, + Type => 'Date', + MaxValues => 1, + LookupType => RT::Ticket->CustomFieldLookupType, + ), + 'create cf date' + ); + ok( $cf->AddToObject($q), 'date cf apply to queue' ); +} + +{ + my $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_m ) ); + my ($id) = $ticket->Create( + Queue => $q->id, + Subject => 'Test', + 'CustomField-'. $cf->id => '2013-02-11', + ); + my $cf_value = $ticket->CustomFieldValues($cf_name)->First; + is( $cf_value->Content, '2013-02-11', 'correct value' ); + + $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_b ) ); + $ticket->Load($id); + is( $ticket->FirstCustomFieldValue($cf_name), '2013-02-11', 'correct value' ); +} + +{ + my $ticket = RT::Ticket->new(RT->SystemUser); + ok( + $ticket->Create( + Queue => $q->id, + Subject => 'Test', + 'CustomField-' . $cf->id => '2010-05-04 11:34:56', + ), + 'create ticket with cf set to 2010-05-04 11:34:56' + ); + is( $ticket->CustomFieldValues->First->Content, + '2010-05-04', 'date in db only has date' ); +} + +# in moscow it's already Feb 11, so tomorrow is Feb 12 +set_fixed_time("2013-02-10T23:10:00Z"); +{ + my $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_m ) ); + my ($id) = $ticket->Create( + Queue => $q->id, + Subject => 'Test', + 'CustomField-'. $cf->id => 'tomorrow', + ); + my $cf_value = $ticket->CustomFieldValues($cf_name)->First; + is( $cf_value->Content, '2013-02-12', 'correct value' ); + + $ticket = RT::Ticket->new( RT::CurrentUser->new( $user_b ) ); + $ticket->Load($id); + is( $ticket->FirstCustomFieldValue($cf_name), '2013-02-12', 'correct value' ); +} + +done_testing();