calDavBackend = $this->createMock(CalDavBackend::class); $this->l10n = $this->createMock(IL10N::class); $this->l10n->method('t') ->willReturnArgument(0); } public static function provideConfidentialObjectData(): array { // For some reason, the CalDavBackend always sets read-only to false. Hence, we test for // both cases as the property should not matter anyway. // Ref \OCA\DAV\CalDAV\CalDavBackend::getPublicCalendars (approximately in line 538) return [ [ [ '{http://owncloud.org/ns}read-only' => true, '{http://owncloud.org/ns}public' => true, ], ], [ [ '{http://owncloud.org/ns}read-only' => false, '{http://owncloud.org/ns}public' => true, ], ], [ [ '{http://owncloud.org/ns}read-only' => 1, '{http://owncloud.org/ns}public' => true, ], ], [ [ '{http://owncloud.org/ns}read-only' => 0, '{http://owncloud.org/ns}public' => true, ], ], ]; } #[DataProvider('provideConfidentialObjectData')] public function testGetWithConfidentialObject(array $calendarInfo): void { $ics = <<calDavBackend, $this->l10n, $calendarInfo, [ 'uri' => 'a0f55f1f-4f0e-4db8-a54b-1e8b53846591.ics', 'calendardata' => $ics, 'classification' => 2, // CalDavBackend::CLASSIFICATION_CONFIDENTIAL ], ); $actualIcs = $calendarObject->get(); $vObject = VObjectReader::read($actualIcs); $this->assertInstanceOf(VCalendar::class, $vObject); $vEvent = $vObject->getBaseComponent('VEVENT'); $this->assertInstanceOf(VEvent::class, $vEvent); $this->assertEquals('Busy', $vEvent->SUMMARY?->getValue()); $this->assertNull($vEvent->DESCRIPTION); $this->assertNull($vEvent->LOCATION); } }