/** * Test create() * * @dataProvider dataProviderCreate * * @param array $data Test data * * @return void */ public function testCreate(array $data) { $headers = ['Content-Type' => 'text/plain']; if (!empty($data['Location'])) { $headers['Location'] = $data['Location']; } $createResponse = new Response($data['createResponseCode'], $headers); $mockedClient = $this->getMockBuilder('\\Seafile\\Client\\Http\\Client')->getMock(); $mockedClient->expects(self::any())->method('request')->with('PUT')->willReturn($createResponse); /** * @var Client $mockedClient */ $sharedLinkResource = new SharedLink($mockedClient); $sharedLinkType = new SharedLinkType(); $sharedLinkType->url = 'https://seafile.example.com/f/abc/'; $libraryType = new LibraryType(); $libraryType->id = 'decaf-deadbeef-dad'; if (is_null($data['returnType'])) { self::assertNull($sharedLinkResource->create($libraryType, '/abc', 123, SharedLinkType::SHARE_TYPE_DOWNLOAD, 'pa55word')); } else { self::assertInstanceOf($data['returnType'], $sharedLinkResource->create($libraryType, '/abc', 123, SharedLinkType::SHARE_TYPE_DOWNLOAD, 'pa55word')); } }
$lib = $libraryResource->getById($libId); $lib->password = $cfg->testLibPassword; // library is encrypted and thus we provide a password $success = $libraryResource->decrypt($libId, ['query' => ['password' => $cfg->testLibPassword]]); // upload a Hello World file and random file name (note: this seems not to work at this time when you are not logged into the Seafile web frontend). $newFilename = './Seafile-PHP-SDK_Test_Upload.txt'; if (!file_exists($newFilename)) { file_put_contents($newFilename, 'Hello World: ' . date('Y-m-d H:i:s')); } $logger->log(Logger::INFO, "#################### Uploading file " . $newFilename); $response = $fileResource->upload($lib, $newFilename, '/'); // create share link for a file $logger->log(Logger::INFO, "#################### Create share link for a file"); $expire = 5; $shareType = SharedLinkType::SHARE_TYPE_DOWNLOAD; $p = "/" . basename($newFilename); $password = '******'; $shareLinkType = $sharedLinkResource->create($lib, $p, $expire, $shareType, $password); var_dump($shareLinkType); $logger->log(Logger::INFO, "#################### Get all shared links"); $response = $sharedLinkResource->getAll(); var_dump($response); $logger->log(Logger::INFO, "#################### Sleeping 10s before deleting the shared link"); sleep(10); $success = $sharedLinkResource->remove($shareLinkType); if ($success) { $logger->log(Logger::INFO, "#################### Shared link deleted"); } else { $logger->log(Logger::INFO, "#################### Could not delete share link"); } print PHP_EOL . 'Done' . PHP_EOL;