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
|
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();
|