2 namespace TYPO3\CMS\Scheduler\Tests\Unit\CronCommand;
17 use TYPO3\CMS\Core\Tests\UnitTestCase;
32 '@weekly' => array(
'@weekly',
'0 0 * * 7'),
33 ' @weekly ' => array(
' @weekly ',
'0 0 * * 7'),
34 '* * * * *' => array(
'* * * * *',
'* * * * *'),
35 '30 4 1,15 * 5' => array(
'30 4 1,15 * 5',
'30 4 1,15 * 5'),
36 '5 0 * * *' => array(
'5 0 * * *',
'5 0 * * *'),
37 '15 14 1 * *' => array(
'15 14 1 * *',
'15 14 1 * *'),
38 '0 22 * * 1-5' => array(
'0 22 * * 1-5',
'0 22 * * 1,2,3,4,5'),
39 '23 0-23/2 * * *' => array(
'23 0-23/2 * * *',
'23 0,2,4,6,8,10,12,14,16,18,20,22 * * *'),
40 '5 4 * * sun' => array(
'5 4 * * sun',
'5 4 * * 7'),
41 '0-3/2,7 0,4 20-22, feb,mar-jun/2,7 1-3,sun' => array(
'0-3/2,7 0,4 20-22 feb,mar-jun/2,7 1-3,sun',
'0,2,7 0,4 20,21,22 2,3,5,7 1,2,3,7'),
42 '0-20/10 * * * *' => array(
'0-20/10 * * * *',
'0,10,20 * * * *'),
43 '* * 2 * *' => array(
'* * 2 * *',
'* * 2 * *'),
44 '* * 2,7 * *' => array(
'* * 2,7 * *',
'* * 2,7 * *'),
45 '* * 2-4,10 * *' => array(
'* * 2-4,10 * *',
'* * 2,3,4,10 * *'),
46 '* * */14 * *' => array(
'* * */14 * *',
'* * 1,15,29 * *'),
47 '* * 2,4-6/2,*/14 * *' => array(
'* * 2,4-6/2,*/14 * *',
'* * 1,2,4,6,15,29 * *'),
48 '* * * * 1' => array(
'* * * * 1',
'* * * * 1'),
49 '0 0 * * 0' => array(
'0 0 * * 0',
'0 0 * * 7'),
50 '0 0 * * 7' => array(
'0 0 * * 7',
'0 0 * * 7'),
51 '* * 1,2 * 1' => array(
'* * 1,2 * 1',
'* * 1,2 * 1')
64 $this->assertEquals($expected, $result);
73 '@yearly' => array(
'@yearly',
'0 0 1 1 *'),
74 '@annually' => array(
'@annually',
'0 0 1 1 *'),
75 '@monthly' => array(
'@monthly',
'0 0 1 * *'),
76 '@weekly' => array(
'@weekly',
'0 0 * * 0'),
77 '@daily' => array(
'@daily',
'0 0 * * *'),
78 '@midnight' => array(
'@midnight',
'0 0 * * *'),
79 '@hourly' => array(
'@hourly',
'0 * * * *')
92 $this->assertEquals($expectedCronCommand, $result);
100 $invalidKeyword =
'foo';
102 $this->assertEquals($invalidKeyword, $result);
111 '1-2 * * * *' => array(
'1-2 * * * *',
'1,2 * * * *'),
112 '* 1-2 * * *' => array(
'* 1-2 * * *',
'* 1,2 * * *'),
113 '* * 1-2 * *' => array(
'* * 1-2 * *',
'* * 1,2 * *'),
114 '* * * 1-2 *' => array(
'* * * 1-2 *',
'* * * 1,2 *'),
115 '* * * * 1-2' => array(
'* * * * 1-2',
'* * * * 1,2')
128 $this->assertEquals($expected, $result);
137 '* monthField' => array(
'*',
true,
'*'),
138 'string 1 monthField' => array(
'1',
true,
'1'),
139 'jan' => array(
'jan',
true,
'1'),
140 'feb/2' => array(
'feb/2',
true,
'2'),
141 'jan-feb/2' => array(
'jan-feb/2',
true,
'1'),
142 '1-2 monthField' => array(
'1-2',
true,
'1,2'),
143 '1-3/2,feb,may,6' => array(
'1-3/2,feb,may,6',
true,
'1,2,3,5,6'),
144 '*/4' => array(
'*/4',
true,
'1,5,9'),
145 '* !monthField' => array(
'*',
false,
'*'),
146 'string 1, !monthField' => array(
'1',
false,
'1'),
147 'fri' => array(
'fri',
false,
'5'),
148 'sun' => array(
'sun',
false,
'7'),
149 'string 0 for sunday' => array(
'0',
false,
'7'),
150 '0,1' => array(
'0,1',
false,
'1,7'),
151 '*/3' => array(
'*/3',
false,
'1,4,7'),
152 'tue/2' => array(
'tue/2',
false,
'2'),
153 '1-2 !monthField' => array(
'1-2',
false,
'1,2'),
154 'tue-fri/2' => array(
'tue-fri/2',
false,
'2,4'),
155 '1-3/2,tue,fri,6' => array(
'1-3/2,tue,fri,6',
false,
'1,2,3,5,6')
169 $this->assertSame($expected, $result);
178 'mon' => array(
'mon',
true),
179 '1-2/mon' => array(
'1-2/mon',
true),
180 '0,1' => array(
'0,1',
true),
181 'feb' => array(
'feb',
false),
182 '1-2/feb' => array(
'1-2/feb',
false),
183 '0-fri/2,7' => array(
'0-fri/2,7',
false,
'2,4,7')
205 '*' => array(
'*',
'*'),
206 'string 2' => array(
'2',
'2'),
207 'integer 3' => array(3,
'3'),
208 'list of values' => array(
'1,2,3',
'1,2,3'),
209 'unsorted list of values' => array(
'3,1,5',
'1,3,5'),
210 'duplicate values' => array(
'0-2/2,2',
'0,2'),
211 'additional field between steps' => array(
'1-3/2,2',
'1,2,3'),
212 '2-4' => array(
'2-4',
'2,3,4'),
213 'simple step 4/4' => array(
'4/4',
'4'),
214 'step 2-7/5' => array(
'2-7/5',
'2,7'),
215 'steps 4-12/4' => array(
'4-12/4',
'4,8,12'),
216 '0-59/20' => array(
'0-59/20',
'0,20,40'),
217 '*/20' => array(
'*/20',
'0,20,40')
230 $this->assertSame($expected, $result);
239 'string foo' => array(
'foo', 0, 59),
240 'empty string' => array(
'', 0, 59),
241 '4-3' => array(
'4-3', 0, 59),
242 '/2' => array(
'/2', 0, 59),
243 '/' => array(
'/', 0, 59),
244 'left bound too low' => array(
'2-4', 3, 4),
245 'right bound too high' => array(
'2-4', 2, 3),
246 'left and right bound' => array(
'2-5', 2, 4),
247 'element in list is lower than allowed' => array(
'2,1,4', 2, 4),
248 'element in list is higher than allowed' => array(
'2,5,4', 1, 4)
271 $expectedResult = array(
278 $this->assertSame($expectedResult, $result);
287 'empty string' => array(
''),
288 'foo' => array(
'foo'),
289 'integer 4' => array(4),
290 'four fields' => array(
'* * * *'),
291 'six fields' => array(
'* * * * * *')
312 'single value' => array(
'3',
'3'),
313 'integer 3' => array(3,
'3'),
314 '0-0' => array(
'0-0',
'0'),
315 '4-4' => array(
'4-4',
'4'),
316 '0-3' => array(
'0-3',
'0,1,2,3'),
317 '4-5' => array(
'4-5',
'4,5')
330 $this->assertSame($expected, $result);
339 'empty string' => array(
''),
340 'string' => array(
'foo'),
341 'single dash' => array(
'-'),
342 'left part is string' => array(
'foo-5'),
343 'right part is string' => array(
'5-foo'),
344 'range of strings' => array(
'foo-bar'),
345 'string five minus' => array(
'5-'),
346 'string minus five' => array(
'-5'),
347 'more than one dash' => array(
'2-3-4'),
348 'left part bigger than right part' => array(
'6-3')
369 '2/2' => array(
'2/2',
'2'),
370 '2,3,4/2' => array(
'2,3,4/2',
'2,4'),
371 '1,2,3,4,5,6,7/3' => array(
'1,2,3,4,5,6,7/3',
'1,4,7'),
372 '0,1,2,3,4,5,6/3' => array(
'0,1,2,3,4,5,6/3',
'0,3,6')
385 $this->assertSame($expected, $result);
394 'empty string' => array(
''),
395 'slash only' => array(
'/'),
396 'left part empty' => array(
'/2'),
397 'right part empty' => array(
'2/'),
398 'multiples slashes' => array(
'1/2/3'),
399 '2-2' => array(
'2-2'),
400 '2.3/2' => array(
'2.3/2'),
401 '2,3,4/2.3' => array(
'2,3,4/2.3'),
402 '2,3,4/2,3' => array(
'2,3,4/2,3')
423 $this->assertSame(
'2', $result);
432 $this->assertSame(
'5', $result);
441 $this->assertSame(
'2', $result);
450 'jan' => array(
'jan', 1),
451 'feb' => array(
'feb', 2),
452 'MaR' => array(
'MaR', 3),
453 'aPr' => array(
'aPr', 4),
454 'MAY' => array(
'MAY', 5),
455 'jun' => array(
'jun', 6),
456 'jul' => array(
'jul', 7),
457 'aug' => array(
'aug', 8),
458 'sep' => array(
'sep', 9),
459 'oct' => array(
'oct', 10),
460 'nov' => array(
'nov', 11),
461 'dec' => array(
'dec', 12),
462 'string 7' => array(
'7', 7),
463 'integer 7' => array(7, 7),
464 'string 07' => array(
'07', 7),
465 'integer 07' => array(7, 7)
478 $this->assertEquals($expectedInteger, $result);
490 $this->assertInternalType(\PHPUnit_Framework_Constraint_IsType::TYPE_INT, $result);
499 'sep-' => array(
'sep-'),
500 '-September-' => array(
'-September-'),
501 ',sep' => array(
',sep'),
502 ',September,' => array(
',September,'),
503 'sep/' => array(
'sep/'),
504 '/sep' => array(
'/sep'),
505 '/September/' => array(
'/September/'),
506 'foo' => array(
'foo'),
507 'Tuesday' => array(
'Tuesday'),
508 'Tue' => array(
'Tue'),
509 'string 0' => array(
'0'),
510 'integer 0' => array(0),
511 'string seven' => array(
'seven'),
512 'string 13' => array(
'13'),
513 'integer 13' => array(13),
514 'integer 100' => array(100),
515 'integer 2010' => array(2010),
516 'string minus 7' => array(
'-7'),
517 'negative integer 7' => array(-7)
538 'string 1' => array(
'1', 1),
539 'string 2' => array(
'2', 2),
540 'string 02' => array(
'02', 2),
541 'integer 02' => array(2, 2),
542 'string 3' => array(
'3', 3),
543 'string 4' => array(
'4', 4),
544 'string 5' => array(
'5', 5),
545 'integer 5' => array(5, 5),
546 'string 6' => array(
'6', 6),
547 'string 7' => array(
'7', 7),
548 'string 0' => array(
'0', 7),
549 'integer 0' => array(0, 7),
550 'mon' => array(
'mon', 1),
551 'monday' => array(
'monday', 1),
552 'tue' => array(
'tue', 2),
553 'tuesday' => array(
'tuesday', 2),
554 'WED' => array(
'WED', 3),
555 'WEDnesday' => array(
'WEDnesday', 3),
556 'tHu' => array(
'tHu', 4),
557 'Thursday' => array(
'Thursday', 4),
558 'fri' => array(
'fri', 5),
559 'friday' => array(
'friday', 5),
560 'sat' => array(
'sat', 6),
561 'saturday' => array(
'saturday', 6),
562 'sun' => array(
'sun', 7),
563 'sunday' => array(
'sunday', 7)
576 $this->assertEquals($expectedInteger, $result);
588 $this->assertInternalType(\PHPUnit_Framework_Constraint_IsType::TYPE_INT, $result);
597 '-fri' => array(
'-fri'),
598 'fri-' => array(
'fri-'),
599 '-friday-' => array(
'-friday-'),
600 '/fri' => array(
'/fri'),
601 'fri/' => array(
'fri/'),
602 '/friday/' => array(
'/friday/'),
603 ',fri' => array(
',fri'),
604 ',friday,' => array(
',friday,'),
605 'string minus 1' => array(
'-1'),
606 'integer -1' => array(-1),
607 'string seven' => array(
'seven'),
608 'string 8' => array(
'8'),
609 'string 29' => array(
'29'),
610 'string 2010' => array(
'2010'),
611 'Jan' => array(
'Jan'),
612 'January' => array(
'January'),
613 'MARCH' => array(
'MARCH')