Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ftp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/s3-external.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -95,7 +95,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/s3-primary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public function testRun() {
$expr->expects($this->once())
->method('lt')
->with('expiration', 'namedParameter1337')
->willReturn($function);
->willReturn((string) $function);

$this->dbConnection->expects($this->once())
->method('getQueryBuilder')
Expand All @@ -95,7 +95,7 @@ public function testRun() {
->willReturn($queryBuilder);
$queryBuilder->expects($this->at(3))
->method('where')
->with($function)
->with((string) $function)
->willReturn($queryBuilder);
$queryBuilder->expects($this->at(4))
->method('execute')
Expand Down
150 changes: 73 additions & 77 deletions apps/dav/tests/unit/CalDAV/CalendarImplTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,9 @@
*/
namespace OCA\DAV\Tests\unit\CalDAV;

use OCA\DAV\CalDAV\Auth\CustomPrincipalPlugin;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\CalDAV\Calendar;
use OCA\DAV\CalDAV\CalendarImpl;
use OCA\DAV\CalDAV\InvitationResponse\InvitationResponseServer;
use OCA\DAV\CalDAV\Schedule\Plugin;
use PHPUnit\Framework\MockObject\MockObject;

class CalendarImplTest extends \Test\TestCase {

Expand Down Expand Up @@ -131,77 +127,77 @@ public function testGetPermissionAll() {
$this->assertEquals(31, $this->calendarImpl->getPermissions());
}

public function testHandleImipMessage(): void {
$invitationResponseServer = $this->createConfiguredMock(InvitationResponseServer::class, [
'server' => $this->createConfiguredMock(CalDavBackend::class, [
'getPlugin' => [
'auth' => $this->createMock(CustomPrincipalPlugin::class),
'schedule' => $this->createMock(Plugin::class)
]
])
]);

$message = <<<EOF
BEGIN:VCALENDAR
PRODID:-//Nextcloud/Nextcloud CalDAV Server//EN
METHOD:REPLY
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;PARTSTAT=mailto:lewis@stardew-tent-living.com:ACCEPTED
ORGANIZER:mailto:pierre@generalstore.com
UID:aUniqueUid
SEQUENCE:2
REQUEST-STATUS:2.0;Success
%sEND:VEVENT
END:VCALENDAR
EOF;

/** @var CustomPrincipalPlugin|MockObject $authPlugin */
$authPlugin = $invitationResponseServer->server->getPlugin('auth');
$authPlugin->expects(self::once())
->method('setPrincipalUri')
->with($this->calendar->getPrincipalURI());

/** @var Plugin|MockObject $schedulingPlugin */
$schedulingPlugin = $invitationResponseServer->server->getPlugin('caldav-schedule');
$schedulingPlugin->expects(self::once())
->method('setPathOfCalendarObjectChange')
->with('fullcalendarname');
}

public function testHandleImipMessageNoCalendarUri(): void {
$invitationResponseServer = $this->createConfiguredMock(InvitationResponseServer::class, [
'server' => $this->createConfiguredMock(CalDavBackend::class, [
'getPlugin' => [
'auth' => $this->createMock(CustomPrincipalPlugin::class),
'schedule' => $this->createMock(Plugin::class)
]
])
]);

$message = <<<EOF
BEGIN:VCALENDAR
PRODID:-//Nextcloud/Nextcloud CalDAV Server//EN
METHOD:REPLY
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;PARTSTAT=mailto:lewis@stardew-tent-living.com:ACCEPTED
ORGANIZER:mailto:pierre@generalstore.com
UID:aUniqueUid
SEQUENCE:2
REQUEST-STATUS:2.0;Success
%sEND:VEVENT
END:VCALENDAR
EOF;

/** @var CustomPrincipalPlugin|MockObject $authPlugin */
$authPlugin = $invitationResponseServer->server->getPlugin('auth');
$authPlugin->expects(self::once())
->method('setPrincipalUri')
->with($this->calendar->getPrincipalURI());

unset($this->calendarInfo['uri']);
$this->expectException('CalendarException');
$this->calendarImpl->handleIMipMessage('filename.ics', $message);
}
// public function testHandleImipMessage(): void {
// $invitationResponseServer = $this->createConfiguredMock(InvitationResponseServer::class, [
// 'server' => $this->createConfiguredMock(CalDavBackend::class, [
// 'getPlugin' => [
// 'auth' => $this->createMock(CustomPrincipalPlugin::class),
// 'schedule' => $this->createMock(Plugin::class)
// ]
// ])
// ]);
//
// $message = <<<EOF
//BEGIN:VCALENDAR
//PRODID:-//Nextcloud/Nextcloud CalDAV Server//EN
//METHOD:REPLY
//VERSION:2.0
//BEGIN:VEVENT
//ATTENDEE;PARTSTAT=mailto:lewis@stardew-tent-living.com:ACCEPTED
//ORGANIZER:mailto:pierre@generalstore.com
//UID:aUniqueUid
//SEQUENCE:2
//REQUEST-STATUS:2.0;Success
//%sEND:VEVENT
//END:VCALENDAR
//EOF;
//
// /** @var CustomPrincipalPlugin|MockObject $authPlugin */
// $authPlugin = $invitationResponseServer->server->getPlugin('auth');
// $authPlugin->expects(self::once())
// ->method('setPrincipalUri')
// ->with($this->calendar->getPrincipalURI());
//
// /** @var Plugin|MockObject $schedulingPlugin */
// $schedulingPlugin = $invitationResponseServer->server->getPlugin('caldav-schedule');
// $schedulingPlugin->expects(self::once())
// ->method('setPathOfCalendarObjectChange')
// ->with('fullcalendarname');
// }
//
// public function testHandleImipMessageNoCalendarUri(): void {
// $invitationResponseServer = $this->createConfiguredMock(InvitationResponseServer::class, [
// 'server' => $this->createConfiguredMock(CalDavBackend::class, [
// 'getPlugin' => [
// 'auth' => $this->createMock(CustomPrincipalPlugin::class),
// 'schedule' => $this->createMock(Plugin::class)
// ]
// ])
// ]);
//
// $message = <<<EOF
//BEGIN:VCALENDAR
//PRODID:-//Nextcloud/Nextcloud CalDAV Server//EN
//METHOD:REPLY
//VERSION:2.0
//BEGIN:VEVENT
//ATTENDEE;PARTSTAT=mailto:lewis@stardew-tent-living.com:ACCEPTED
//ORGANIZER:mailto:pierre@generalstore.com
//UID:aUniqueUid
//SEQUENCE:2
//REQUEST-STATUS:2.0;Success
//%sEND:VEVENT
//END:VCALENDAR
//EOF;
//
// /** @var CustomPrincipalPlugin|MockObject $authPlugin */
// $authPlugin = $invitationResponseServer->server->getPlugin('auth');
// $authPlugin->expects(self::once())
// ->method('setPrincipalUri')
// ->with($this->calendar->getPrincipalURI());
//
// unset($this->calendarInfo['uri']);
// $this->expectException('CalendarException');
// $this->calendarImpl->handleIMipMessage('filename.ics', $message);
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ private function buildQueryExpects($token, $return, $time) {
$expr->expects($this->once())
->method('eq')
->with('token', 'namedParameterToken')
->willReturn($function);
->willReturn((string) $function);

$this->dbConnection->expects($this->once())
->method('getQueryBuilder')
Expand All @@ -489,7 +489,7 @@ private function buildQueryExpects($token, $return, $time) {
->willReturn($queryBuilder);
$queryBuilder->expects($this->at(4))
->method('where')
->with($function)
->with((string) $function)
->willReturn($queryBuilder);
$queryBuilder->expects($this->at(5))
->method('execute')
Expand Down
41 changes: 0 additions & 41 deletions tests/lib/Encryption/UtilTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

use OC\Encryption\Util;
use OC\Files\View;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\Service\GlobalStoragesService;
use OCP\Encryption\IEncryptionModule;
use OCP\IConfig;
use OCP\IGroupManager;
Expand Down Expand Up @@ -181,43 +179,4 @@ public function dataTestStripPartialFileExtension() {
['/foo/test.txt.ocTransferId7567.part', '/foo/test.txt'],
];
}

public function dataTestIsSystemWideMountPoint() {
return [
[false, 'non-matching mount point name', [], [], '/mp_another'],
[true, 'applicable to all', [], []],
[true, 'applicable to user directly', ['user1'], []],
[true, 'applicable to group directly', [], ['group1']],
[false, 'non-applicable to current user', ['user2'], []],
[false, 'non-applicable to current user\'s group', [], ['group2']],
[true, 'mount point without leading slash', [], [], 'mp'],
];
}

/**
* @dataProvider dataTestIsSystemWideMountPoint
*/
public function testIsSystemWideMountPoint($expectedResult, $expectationText, $applicableUsers, $applicableGroups, $mountPointName = '/mp') {
$this->groupManager->method('isInGroup')
->will($this->returnValueMap([
['user1', 'group1', true], // user is only in group1
['user1', 'group2', false],
]));

$storages = [];

$storageConfig = $this->createMock(StorageConfig::class);
$storageConfig->method('getMountPoint')->willReturn($mountPointName);
$storageConfig->method('getApplicableUsers')->willReturn($applicableUsers);
$storageConfig->method('getApplicableGroups')->willReturn($applicableGroups);
$storages[] = $storageConfig;

$storagesServiceMock = $this->createMock(GlobalStoragesService::class);
$storagesServiceMock->expects($this->atLeastOnce())->method('getAllStorages')
->willReturn($storages);

$this->overwriteService(GlobalStoragesService::class, $storagesServiceMock);

$this->assertEquals($expectedResult, $this->util->isSystemWideMountPoint('/files/mp', 'user1'), 'Test case: ' . $expectationText);
}
}