|
|
|
|
@ -29,18 +29,28 @@ |
|
|
|
|
|
|
|
|
|
namespace OCA\FederatedFileSharing\Tests; |
|
|
|
|
|
|
|
|
|
use OC\AppFramework\Http; |
|
|
|
|
use OC\Federation\CloudIdManager; |
|
|
|
|
use OC\Files\Filesystem; |
|
|
|
|
use OCA\FederatedFileSharing\FederatedShareProvider; |
|
|
|
|
use OCA\FederatedFileSharing\Controller\RequestHandlerController; |
|
|
|
|
use OCP\AppFramework\Http\DataResponse; |
|
|
|
|
use OCP\Federation\ICloudFederationFactory; |
|
|
|
|
use OCP\Federation\ICloudFederationProvider; |
|
|
|
|
use OCP\Federation\ICloudFederationProviderManager; |
|
|
|
|
use OCP\Federation\ICloudFederationShare; |
|
|
|
|
use OCP\Federation\ICloudIdManager; |
|
|
|
|
use OCP\Http\Client\IClient; |
|
|
|
|
use OCP\Http\Client\IClientService; |
|
|
|
|
use OCP\Http\Client\IResponse; |
|
|
|
|
use OCP\IConfig; |
|
|
|
|
use OCP\IDBConnection; |
|
|
|
|
use OCP\ILogger; |
|
|
|
|
use OCP\IRequest; |
|
|
|
|
use OCP\IUserManager; |
|
|
|
|
use OCP\Share; |
|
|
|
|
use OCP\Share\IShare; |
|
|
|
|
use PHPUnit\Framework\MockObject\Builder\InvocationMocker; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Class RequestHandlerTest |
|
|
|
|
@ -48,19 +58,17 @@ use OCP\Share\IShare; |
|
|
|
|
* @package OCA\FederatedFileSharing\Tests |
|
|
|
|
* @group DB |
|
|
|
|
*/ |
|
|
|
|
class RequestHandlerControllerTest extends TestCase { |
|
|
|
|
class RequestHandlerControllerTest extends \Test\TestCase { |
|
|
|
|
|
|
|
|
|
const TEST_FOLDER_NAME = '/folder_share_api_test'; |
|
|
|
|
private $owner = 'owner'; |
|
|
|
|
private $user1 = 'user1'; |
|
|
|
|
private $user2 = 'user2'; |
|
|
|
|
private $ownerCloudId = 'owner@server0.org'; |
|
|
|
|
private $user1CloudId = 'user1@server1.org'; |
|
|
|
|
private $user2CloudId = 'user2@server2.org'; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @var \OCP\IDBConnection |
|
|
|
|
*/ |
|
|
|
|
private $connection; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @var RequestHandlerController |
|
|
|
|
*/ |
|
|
|
|
private $s2s; |
|
|
|
|
/** @var RequestHandlerController */ |
|
|
|
|
private $requestHandler; |
|
|
|
|
|
|
|
|
|
/** @var \OCA\FederatedFileSharing\FederatedShareProvider|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $federatedShareProvider; |
|
|
|
|
@ -77,17 +85,34 @@ class RequestHandlerControllerTest extends TestCase { |
|
|
|
|
/** @var IShare|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $share; |
|
|
|
|
|
|
|
|
|
/** @var ICloudIdManager */ |
|
|
|
|
/** @var ICloudIdManager|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $cloudIdManager; |
|
|
|
|
|
|
|
|
|
/** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $logger; |
|
|
|
|
|
|
|
|
|
protected function setUp() { |
|
|
|
|
parent::setUp(); |
|
|
|
|
/** @var IRequest|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $request; |
|
|
|
|
|
|
|
|
|
/** @var IDBConnection|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $connection; |
|
|
|
|
|
|
|
|
|
/** @var Share\IManager|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $shareManager; |
|
|
|
|
|
|
|
|
|
self::loginHelper(self::TEST_FILES_SHARING_API_USER1); |
|
|
|
|
\OC\Share\Share::registerBackend('test', 'Test\Share\Backend'); |
|
|
|
|
/** @var ICloudFederationFactory|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $cloudFederationFactory; |
|
|
|
|
|
|
|
|
|
/** @var ICloudFederationProviderManager|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $cloudFederationProviderManager; |
|
|
|
|
|
|
|
|
|
/** @var ICloudFederationProvider|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $cloudFederationProvider; |
|
|
|
|
|
|
|
|
|
/** @var ICloudFederationShare|\PHPUnit_Framework_MockObject_MockObject */ |
|
|
|
|
private $cloudFederationShare; |
|
|
|
|
|
|
|
|
|
protected function setUp() { |
|
|
|
|
|
|
|
|
|
$this->share = $this->getMockBuilder(IShare::class)->getMock(); |
|
|
|
|
$this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider') |
|
|
|
|
@ -104,292 +129,127 @@ class RequestHandlerControllerTest extends TestCase { |
|
|
|
|
$this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler') |
|
|
|
|
->disableOriginalConstructor()->getMock(); |
|
|
|
|
$this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); |
|
|
|
|
$this->cloudIdManager = $this->createMock(ICloudIdManager::class); |
|
|
|
|
$this->request = $this->createMock(IRequest::class); |
|
|
|
|
$this->connection = $this->createMock(IDBConnection::class); |
|
|
|
|
$this->shareManager = $this->createMock(Share\IManager::class); |
|
|
|
|
$this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class); |
|
|
|
|
$this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class); |
|
|
|
|
$this->cloudFederationProvider = $this->createMock(ICloudFederationProvider::class); |
|
|
|
|
$this->cloudFederationShare = $this->createMock(ICloudFederationShare::class); |
|
|
|
|
|
|
|
|
|
$this->cloudIdManager = new CloudIdManager(); |
|
|
|
|
|
|
|
|
|
$this->logger = $this->createMock(ILogger::class); |
|
|
|
|
|
|
|
|
|
$this->s2s = new RequestHandlerController( |
|
|
|
|
$this->requestHandler = new RequestHandlerController( |
|
|
|
|
'federatedfilesharing', |
|
|
|
|
\OC::$server->getRequest(), |
|
|
|
|
$this->request, |
|
|
|
|
$this->federatedShareProvider, |
|
|
|
|
\OC::$server->getDatabaseConnection(), |
|
|
|
|
\OC::$server->getShareManager(), |
|
|
|
|
$this->connection, |
|
|
|
|
$this->shareManager, |
|
|
|
|
$this->notifications, |
|
|
|
|
$this->addressHandler, |
|
|
|
|
$this->userManager, |
|
|
|
|
$this->cloudIdManager, |
|
|
|
|
$this->logger |
|
|
|
|
$this->logger, |
|
|
|
|
$this->cloudFederationFactory, |
|
|
|
|
$this->cloudFederationProviderManager |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$this->connection = \OC::$server->getDatabaseConnection(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function tearDown() { |
|
|
|
|
$qb = $this->connection->getQueryBuilder(); |
|
|
|
|
$qb->delete('share_external'); |
|
|
|
|
$qb->execute(); |
|
|
|
|
|
|
|
|
|
$qb = $this->connection->getQueryBuilder(); |
|
|
|
|
$qb->delete('share'); |
|
|
|
|
$qb->execute(); |
|
|
|
|
|
|
|
|
|
parent::tearDown(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
*/ |
|
|
|
|
function testCreateShare() { |
|
|
|
|
// simulate a post request |
|
|
|
|
$_POST['remote'] = 'localhost'; |
|
|
|
|
$_POST['token'] = 'token'; |
|
|
|
|
$_POST['name'] = 'name'; |
|
|
|
|
$_POST['owner'] = 'owner'; |
|
|
|
|
$_POST['shareWith'] = self::TEST_FILES_SHARING_API_USER2; |
|
|
|
|
$_POST['owner'] = $this->owner; |
|
|
|
|
$_POST['sharedBy'] = $this->user1; |
|
|
|
|
$_POST['shareWith'] = $this->user2; |
|
|
|
|
$_POST['remoteId'] = 1; |
|
|
|
|
$_POST['sharedByFederatedId'] = $this->user1CloudId; |
|
|
|
|
$_POST['ownerFederatedId'] = $this->ownerCloudId; |
|
|
|
|
|
|
|
|
|
$this->cloudFederationFactory->expects($this->once())->method('getCloudFederationShare') |
|
|
|
|
->with( |
|
|
|
|
$this->user2, |
|
|
|
|
'name', |
|
|
|
|
'', |
|
|
|
|
1, |
|
|
|
|
$this->ownerCloudId, |
|
|
|
|
$this->owner, |
|
|
|
|
$this->user1CloudId, |
|
|
|
|
$this->user1, |
|
|
|
|
'token', |
|
|
|
|
'user', |
|
|
|
|
'file' |
|
|
|
|
)->willReturn($this->cloudFederationShare); |
|
|
|
|
|
|
|
|
|
/** @var ICloudFederationProvider|\PHPUnit_Framework_MockObject_MockObject $provider */ |
|
|
|
|
$this->cloudFederationProviderManager->expects($this->once()) |
|
|
|
|
->method('getCloudFederationProvider') |
|
|
|
|
->with('file') |
|
|
|
|
->willReturn($this->cloudFederationProvider); |
|
|
|
|
|
|
|
|
|
$this->cloudFederationProvider->expects($this->once())->method('shareReceived') |
|
|
|
|
->with($this->cloudFederationShare); |
|
|
|
|
|
|
|
|
|
$result = $this->requestHandler->createShare(); |
|
|
|
|
|
|
|
|
|
$this->assertInstanceOf(DataResponse::class, $result); |
|
|
|
|
|
|
|
|
|
$this->s2s->createShare(null); |
|
|
|
|
|
|
|
|
|
$qb = $this->connection->getQueryBuilder(); |
|
|
|
|
$qb->select('*') |
|
|
|
|
->from('share_external') |
|
|
|
|
->where( |
|
|
|
|
$qb->expr()->eq('remote_id', $qb->createNamedParameter(1)) |
|
|
|
|
); |
|
|
|
|
$result = $qb->execute(); |
|
|
|
|
$data = $result->fetch(); |
|
|
|
|
$result->closeCursor(); |
|
|
|
|
|
|
|
|
|
$this->assertSame('localhost', $data['remote']); |
|
|
|
|
$this->assertSame('token', $data['share_token']); |
|
|
|
|
$this->assertSame('/name', $data['name']); |
|
|
|
|
$this->assertSame('owner', $data['owner']); |
|
|
|
|
$this->assertSame(self::TEST_FILES_SHARING_API_USER2, $data['user']); |
|
|
|
|
$this->assertSame(1, (int)$data['remote_id']); |
|
|
|
|
$this->assertSame(0, (int)$data['accepted']); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function testDeclineShare() { |
|
|
|
|
|
|
|
|
|
$this->s2s = $this->getMockBuilder('\OCA\FederatedFileSharing\Controller\RequestHandlerController') |
|
|
|
|
->setConstructorArgs( |
|
|
|
|
[ |
|
|
|
|
'federatedfilessharing', |
|
|
|
|
\OC::$server->getRequest(), |
|
|
|
|
$this->federatedShareProvider, |
|
|
|
|
\OC::$server->getDatabaseConnection(), |
|
|
|
|
\OC::$server->getShareManager(), |
|
|
|
|
$this->notifications, |
|
|
|
|
$this->addressHandler, |
|
|
|
|
$this->userManager, |
|
|
|
|
$this->cloudIdManager, |
|
|
|
|
$this->logger, |
|
|
|
|
] |
|
|
|
|
)->setMethods(['executeDeclineShare', 'verifyShare'])->getMock(); |
|
|
|
|
|
|
|
|
|
$this->s2s->expects($this->once())->method('executeDeclineShare'); |
|
|
|
|
|
|
|
|
|
$this->s2s->expects($this->any())->method('verifyShare')->willReturn(true); |
|
|
|
|
|
|
|
|
|
$id = 42; |
|
|
|
|
$_POST['token'] = 'token'; |
|
|
|
|
|
|
|
|
|
$this->s2s->declineShare(42); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function XtestDeclineShareMultiple() { |
|
|
|
|
|
|
|
|
|
$this->share->expects($this->any())->method('verifyShare')->willReturn(true); |
|
|
|
|
|
|
|
|
|
$dummy = \OC_DB::prepare(' |
|
|
|
|
INSERT INTO `*PREFIX*share` |
|
|
|
|
(`share_type`, `uid_owner`, `item_type`, `item_source`, `item_target`, `file_source`, `file_target`, `permissions`, `stime`, `token`, `share_with`) |
|
|
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) |
|
|
|
|
'); |
|
|
|
|
$dummy->execute(array(\OCP\Share::SHARE_TYPE_REMOTE, self::TEST_FILES_SHARING_API_USER1, 'test', '1', '/1', '1', '/test.txt', '1', time(), 'token1', 'foo@bar')); |
|
|
|
|
$dummy->execute(array(\OCP\Share::SHARE_TYPE_REMOTE, self::TEST_FILES_SHARING_API_USER1, 'test', '1', '/1', '1', '/test.txt', '1', time(), 'token2', 'bar@bar')); |
|
|
|
|
|
|
|
|
|
$verify = \OC_DB::prepare('SELECT * FROM `*PREFIX*share`'); |
|
|
|
|
$result = $verify->execute(); |
|
|
|
|
$data = $result->fetchAll(); |
|
|
|
|
$this->assertCount(2, $data); |
|
|
|
|
|
|
|
|
|
$_POST['token'] = 'token1'; |
|
|
|
|
$this->s2s->declineShare(array('id' => $data[0]['id'])); |
|
|
|
|
|
|
|
|
|
$verify = \OC_DB::prepare('SELECT * FROM `*PREFIX*share`'); |
|
|
|
|
$result = $verify->execute(); |
|
|
|
|
$data = $result->fetchAll(); |
|
|
|
|
$this->assertCount(1, $data); |
|
|
|
|
$this->assertEquals('bar@bar', $data[0]['share_with']); |
|
|
|
|
|
|
|
|
|
$_POST['token'] = 'token2'; |
|
|
|
|
$this->s2s->declineShare(array('id' => $data[0]['id'])); |
|
|
|
|
|
|
|
|
|
$verify = \OC_DB::prepare('SELECT * FROM `*PREFIX*share`'); |
|
|
|
|
$result = $verify->execute(); |
|
|
|
|
$data = $result->fetchAll(); |
|
|
|
|
$this->assertEmpty($data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @dataProvider dataTestDeleteUser |
|
|
|
|
*/ |
|
|
|
|
function testDeleteUser($toDelete, $expected, $remainingUsers) { |
|
|
|
|
$this->createDummyS2SShares(); |
|
|
|
|
|
|
|
|
|
$httpClientService = $this->createMock(IClientService::class); |
|
|
|
|
$client = $this->createMock(IClient::class); |
|
|
|
|
$response = $this->createMock(IResponse::class); |
|
|
|
|
$client |
|
|
|
|
->expects($this->any()) |
|
|
|
|
->method('get') |
|
|
|
|
->willReturn($response); |
|
|
|
|
$client |
|
|
|
|
->expects($this->any()) |
|
|
|
|
->method('post') |
|
|
|
|
->willReturn($response); |
|
|
|
|
$httpClientService |
|
|
|
|
->expects($this->any()) |
|
|
|
|
->method('newClient') |
|
|
|
|
->willReturn($client); |
|
|
|
|
|
|
|
|
|
$manager = new \OCA\Files_Sharing\External\Manager( |
|
|
|
|
\OC::$server->getDatabaseConnection(), |
|
|
|
|
Filesystem::getMountManager(), |
|
|
|
|
Filesystem::getLoader(), |
|
|
|
|
$httpClientService, |
|
|
|
|
\OC::$server->getNotificationManager(), |
|
|
|
|
\OC::$server->query(\OCP\OCS\IDiscoveryService::class), |
|
|
|
|
$toDelete |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$manager->removeUserShares($toDelete); |
|
|
|
|
$notification = [ |
|
|
|
|
'sharedSecret' => 'token', |
|
|
|
|
'message' => 'Recipient declined the share' |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
$query = $this->connection->prepare('SELECT `user` FROM `*PREFIX*share_external`'); |
|
|
|
|
$query->execute(); |
|
|
|
|
$result = $query->fetchAll(); |
|
|
|
|
$this->cloudFederationProviderManager->expects($this->once()) |
|
|
|
|
->method('getCloudFederationProvider') |
|
|
|
|
->with('file') |
|
|
|
|
->willReturn($this->cloudFederationProvider); |
|
|
|
|
|
|
|
|
|
foreach ($result as $r) { |
|
|
|
|
$remainingShares[$r['user']] = isset($remainingShares[$r['user']]) ? $remainingShares[$r['user']] + 1 : 1; |
|
|
|
|
} |
|
|
|
|
$this->cloudFederationProvider->expects($this->once()) |
|
|
|
|
->method('notificationReceived') |
|
|
|
|
->with('SHARE_DECLINED', $id, $notification); |
|
|
|
|
|
|
|
|
|
$this->assertSame($remainingUsers, count($remainingShares)); |
|
|
|
|
$result = $this->requestHandler->declineShare($id); |
|
|
|
|
|
|
|
|
|
foreach ($expected as $key => $value) { |
|
|
|
|
if ($key === $toDelete) { |
|
|
|
|
$this->assertArrayNotHasKey($key, $remainingShares); |
|
|
|
|
} else { |
|
|
|
|
$this->assertSame($value, $remainingShares[$key]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$this->assertInstanceOf(DataResponse::class, $result); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function dataTestDeleteUser() { |
|
|
|
|
return array( |
|
|
|
|
array('user1', array('user1' => 0, 'user2' => 3, 'user3' => 3), 2), |
|
|
|
|
array('user2', array('user1' => 4, 'user2' => 0, 'user3' => 3), 2), |
|
|
|
|
array('user3', array('user1' => 4, 'user2' => 3, 'user3' => 0), 2), |
|
|
|
|
array('user4', array('user1' => 4, 'user2' => 3, 'user3' => 3), 3), |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private function createDummyS2SShares() { |
|
|
|
|
$query = $this->connection->prepare(' |
|
|
|
|
INSERT INTO `*PREFIX*share_external` |
|
|
|
|
(`remote`, `share_token`, `password`, `name`, `owner`, `user`, `mountpoint`, `mountpoint_hash`, `remote_id`, `accepted`) |
|
|
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) |
|
|
|
|
'); |
|
|
|
|
function testAcceptShare() { |
|
|
|
|
|
|
|
|
|
$users = array('user1', 'user2', 'user3'); |
|
|
|
|
|
|
|
|
|
for ($i = 0; $i < 10; $i++) { |
|
|
|
|
$user = $users[$i%3]; |
|
|
|
|
$query->execute(array('remote', 'token', 'password', 'name', 'owner', $user, 'mount point', $i, $i, 0)); |
|
|
|
|
} |
|
|
|
|
$id = 42; |
|
|
|
|
$_POST['token'] = 'token'; |
|
|
|
|
|
|
|
|
|
$query = $this->connection->prepare('SELECT `id` FROM `*PREFIX*share_external`'); |
|
|
|
|
$query->execute(); |
|
|
|
|
$dummyEntries = $query->fetchAll(); |
|
|
|
|
$notification = [ |
|
|
|
|
'sharedSecret' => 'token', |
|
|
|
|
'message' => 'Recipient accept the share' |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
$this->assertSame(10, count($dummyEntries)); |
|
|
|
|
} |
|
|
|
|
$this->cloudFederationProviderManager->expects($this->once()) |
|
|
|
|
->method('getCloudFederationProvider') |
|
|
|
|
->with('file') |
|
|
|
|
->willReturn($this->cloudFederationProvider); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @dataProvider dataTestGetShare |
|
|
|
|
* |
|
|
|
|
* @param bool $found |
|
|
|
|
* @param bool $correctId |
|
|
|
|
* @param bool $correctToken |
|
|
|
|
*/ |
|
|
|
|
public function testGetShare($found, $correctId, $correctToken) { |
|
|
|
|
|
|
|
|
|
$connection = \OC::$server->getDatabaseConnection(); |
|
|
|
|
$query = $connection->getQueryBuilder(); |
|
|
|
|
$stime = time(); |
|
|
|
|
$query->insert('share') |
|
|
|
|
->values( |
|
|
|
|
[ |
|
|
|
|
'share_type' => $query->createNamedParameter(FederatedShareProvider::SHARE_TYPE_REMOTE), |
|
|
|
|
'uid_owner' => $query->createNamedParameter(self::TEST_FILES_SHARING_API_USER1), |
|
|
|
|
'uid_initiator' => $query->createNamedParameter(self::TEST_FILES_SHARING_API_USER2), |
|
|
|
|
'item_type' => $query->createNamedParameter('test'), |
|
|
|
|
'item_source' => $query->createNamedParameter('1'), |
|
|
|
|
'item_target' => $query->createNamedParameter('/1'), |
|
|
|
|
'file_source' => $query->createNamedParameter('1'), |
|
|
|
|
'file_target' => $query->createNamedParameter('/test.txt'), |
|
|
|
|
'permissions' => $query->createNamedParameter('1'), |
|
|
|
|
'stime' => $query->createNamedParameter($stime), |
|
|
|
|
'token' => $query->createNamedParameter('token'), |
|
|
|
|
'share_with' => $query->createNamedParameter('foo@bar'), |
|
|
|
|
] |
|
|
|
|
)->execute(); |
|
|
|
|
$id = $query->getLastInsertId(); |
|
|
|
|
|
|
|
|
|
$expected = [ |
|
|
|
|
'share_type' => (string)FederatedShareProvider::SHARE_TYPE_REMOTE, |
|
|
|
|
'uid_owner' => self::TEST_FILES_SHARING_API_USER1, |
|
|
|
|
'item_type' => 'test', |
|
|
|
|
'item_source' => '1', |
|
|
|
|
'item_target' => '/1', |
|
|
|
|
'file_source' => '1', |
|
|
|
|
'file_target' => '/test.txt', |
|
|
|
|
'permissions' => '1', |
|
|
|
|
'stime' => (string)$stime, |
|
|
|
|
'token' => 'token', |
|
|
|
|
'share_with' => 'foo@bar', |
|
|
|
|
'id' => (string)$id, |
|
|
|
|
'uid_initiator' => self::TEST_FILES_SHARING_API_USER2, |
|
|
|
|
'parent' => null, |
|
|
|
|
'accepted' => '0', |
|
|
|
|
'expiration' => null, |
|
|
|
|
'password' => null, |
|
|
|
|
'mail_send' => '0', |
|
|
|
|
'share_name' => null, |
|
|
|
|
]; |
|
|
|
|
$this->cloudFederationProvider->expects($this->once()) |
|
|
|
|
->method('notificationReceived') |
|
|
|
|
->with('SHARE_ACCEPTED', $id, $notification); |
|
|
|
|
|
|
|
|
|
$searchToken = $correctToken ? 'token' : 'wrongToken'; |
|
|
|
|
$searchId = $correctId ? $id : -1; |
|
|
|
|
$result = $this->requestHandler->acceptShare($id); |
|
|
|
|
|
|
|
|
|
$result = $this->invokePrivate($this->s2s, 'getShare', [$searchId, $searchToken]); |
|
|
|
|
$this->assertInstanceOf(DataResponse::class, $result); |
|
|
|
|
|
|
|
|
|
if ($found) { |
|
|
|
|
$this->assertEquals($expected, $result); |
|
|
|
|
} else { |
|
|
|
|
$this->assertSame(false, $result); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function dataTestGetShare() { |
|
|
|
|
return [ |
|
|
|
|
[true, true, true], |
|
|
|
|
[false, false, true], |
|
|
|
|
[false, true, false], |
|
|
|
|
[false, false, false], |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|