2014-08-15 11:10:34 -07:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
use Test::More;
|
|
|
|
use DDG::Test::Goodie;
|
2014-11-29 15:48:23 -08:00
|
|
|
use Test::MockTime qw( :all );
|
2014-08-15 11:10:34 -07:00
|
|
|
|
2014-09-27 06:42:57 -07:00
|
|
|
zci answer_type => 'calendar';
|
|
|
|
zci is_cached => 0;
|
2014-08-15 11:10:34 -07:00
|
|
|
|
|
|
|
ddg_goodie_test(
|
|
|
|
[qw(
|
|
|
|
DDG::Goodie::CalendarToday
|
|
|
|
)],
|
2015-12-26 06:18:10 -08:00
|
|
|
'calendar' => test_zci(
|
|
|
|
qr/\nS M T W T F S[ ]+[A-Za-z]+ [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
'calendar november' => test_zci(
|
|
|
|
qr/\nS M T W T F S November [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
'calendar november 12th' => test_zci(
|
|
|
|
qr/\nS M T W T F S November [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
'calendar last november' => test_zci(
|
|
|
|
qr/\nS M T W T F S November [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
'calendar next november' => test_zci(
|
|
|
|
qr/\nS M T W T F S November [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-08-19 11:35:12 -07:00
|
|
|
'calendar november 2009' => test_zci("
|
|
|
|
S M T W T F S November 2009
|
2014-08-15 12:47:32 -07:00
|
|
|
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
|
2015-12-26 06:18:10 -08:00
|
|
|
",
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-08-19 11:35:12 -07:00
|
|
|
'calendar nov 2009' => test_zci("
|
|
|
|
S M T W T F S November 2009
|
2014-08-19 11:11:18 -07:00
|
|
|
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
|
2015-12-26 06:18:10 -08:00
|
|
|
",
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-08-15 12:47:32 -07:00
|
|
|
'calendar 29 nov 2015' => test_zci("
|
|
|
|
S M T W T F S November 2015
|
|
|
|
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
|
2015-12-26 06:18:10 -08:00
|
|
|
",
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-08-15 12:47:32 -07:00
|
|
|
'calendar 29.11.2015' => test_zci("
|
|
|
|
S M T W T F S November 2015
|
|
|
|
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
|
2015-12-26 06:18:10 -08:00
|
|
|
",
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-08-15 12:47:32 -07:00
|
|
|
'cal 1980-11-29' => test_zci("
|
|
|
|
S M T W T F S November 1980
|
|
|
|
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
|
2015-12-26 06:18:10 -08:00
|
|
|
",
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-10-03 08:12:53 -07:00
|
|
|
'calendar for november 2009' => test_zci("
|
|
|
|
S M T W T F S November 2009
|
|
|
|
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
|
2015-12-26 06:18:10 -08:00
|
|
|
",
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
'next november on a calendar' => test_zci(
|
|
|
|
qr/\nS M T W T F S November [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
'calendar for november' => test_zci(
|
|
|
|
qr/\nS M T W T F S November [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-10-31 14:48:19 -07:00
|
|
|
'calendar of november 2009' => test_zci("
|
2014-10-03 08:12:53 -07:00
|
|
|
S M T W T F S November 2009
|
|
|
|
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
|
2015-12-26 06:18:10 -08:00
|
|
|
",
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-10-31 14:48:19 -07:00
|
|
|
'22/8/2003 to the hijri calendar' => undef,
|
2015-12-26 06:18:10 -08:00
|
|
|
"today's calendar" => test_zci(
|
|
|
|
qr/\nS M T W T F S [A-Z][a-z]+ [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"november's calendar" => test_zci(
|
|
|
|
qr/\nS M T W T F S November [0-9]{4}\n.+/,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-10-29 03:23:01 -07:00
|
|
|
);
|
2014-08-15 11:10:34 -07:00
|
|
|
|
2014-11-29 15:48:23 -08:00
|
|
|
# Special focus on relative dates, examining the "today" circle
|
|
|
|
my $test_location_tz = qr/\(EDT, UTC-4\)/;
|
|
|
|
set_fixed_time("2014-06-11T09:45:56");
|
|
|
|
ddg_goodie_test(
|
|
|
|
[qw(
|
|
|
|
DDG::Goodie::CalendarToday
|
|
|
|
)],
|
2015-12-26 06:18:10 -08:00
|
|
|
"calendar yesterday" => test_zci(
|
|
|
|
qr/June 2014.*\|10\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar today" => test_zci(
|
|
|
|
qr/June 2014.*\|11\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar tomorrow" => test_zci(
|
|
|
|
qr/June 2014.*\|12\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar 20 days ago" => test_zci(
|
|
|
|
qr/May 2014.*\|22\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar in 20 days" => test_zci(
|
|
|
|
qr/July 2014.*\| 1\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar last week" => test_zci(
|
|
|
|
qr/June 2014.*\| 4\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar next week" =>
|
|
|
|
test_zci(qr/June 2014.*\|18\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar last year" =>
|
|
|
|
test_zci(qr/June 2013.*\|11\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
|
|
|
"calendar next year" =>
|
|
|
|
test_zci(qr/June 2015.*\|11\|/s,
|
|
|
|
structured_answer => {
|
|
|
|
id => 'calendar_today',
|
|
|
|
name => 'Answer',
|
|
|
|
data => '-ANY-',
|
|
|
|
templates => {
|
|
|
|
group => 'text',
|
|
|
|
item => 0,
|
|
|
|
options => {
|
|
|
|
content => 'DDH.calendar_today.content'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
),
|
2014-11-29 15:48:23 -08:00
|
|
|
);
|
|
|
|
restore_time();
|
|
|
|
|
2014-08-15 11:10:34 -07:00
|
|
|
done_testing;
|
|
|
|
|