/**
  * 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'));
     }
 }
Example #2
0
$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;