From f1c693669ccbbb301121ce3768ef6e647fce5b95 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 20 Jun 2023 10:19:11 +0300 Subject: [PATCH 1/2] fixed issue: Undefined index: plusminus #467 https://github.com/sabre-io/vobject/issues/467 --- lib/DateTimeParser.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/DateTimeParser.php b/lib/DateTimeParser.php index 4a71931a2..5ce9f207a 100644 --- a/lib/DateTimeParser.php +++ b/lib/DateTimeParser.php @@ -93,7 +93,7 @@ public static function parseDuration(string $duration): \DateInterval $invert = false; - if ('-' === $matches['plusminus']) { + if (isset($matches['plusminus']) && '-' === $matches['plusminus']) { $invert = true; } From e4d7c4eac1601ac6fa9a0fe15dfe8b692823c8d0 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 9 Nov 2023 17:42:59 +0545 Subject: [PATCH 2/2] Add unit test for parsing a zero duration --- tests/VObject/DateTimeParserTest.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/VObject/DateTimeParserTest.php b/tests/VObject/DateTimeParserTest.php index b1e7f7cd1..cdf0fe990 100644 --- a/tests/VObject/DateTimeParserTest.php +++ b/tests/VObject/DateTimeParserTest.php @@ -34,6 +34,12 @@ public function testParseICalendarDurationDateInterval(): void self::assertEquals($expected, DateTimeParser::parseDuration('-PT3M')); } + public function testParseDurationZero(): void + { + $expected = new \DateInterval('PT0S'); + self::assertEquals($expected, DateTimeParser::parseDuration('P')); + } + public function testParseICalendarDurationFail(): void { $this->expectException(InvalidDataException::class);