コード例 #1
0
 /**
  * test clipUri()
  *
  * @return void
  */
 public function testClipUri()
 {
     $directoryResource = new Directory($this->getMockedClient(new Response(200, ['Content-Type' => 'application/json'], '')));
     $uris = ['/' => '', '' => '', 'https://example.com' => 'https://example.com', 'https://example.com/' => 'https://example.com'];
     foreach ($uris as $uri => $clippedUri) {
         self::assertSame($clippedUri, $directoryResource->clipUri($uri));
     }
 }
コード例 #2
0
ファイル: example.php プロジェクト: rene-s/Seafile-PHP-SDK
 *   "testLibId": "ID of an encrypted library",
 *   "testLibPassword": "******"
 * }
 */
$cfgFile = getenv("HOME") . "/.seafile-php-sdk/cfg.json";
if (!is_readable($tokenFile)) {
    throw new Exception($tokenFile . ' is not readable or does not exist.');
}
if (!is_readable($cfgFile)) {
    throw new Exception($cfgFile . ' is not readable or does not exist.');
}
$token = json_decode(file_get_contents($tokenFile));
$cfg = json_decode(file_get_contents($cfgFile));
$client = new Client(['base_uri' => $cfg->baseUri, 'debug' => true, 'handler' => $stack, 'headers' => ['Content-Type' => 'application/json', 'Authorization' => 'Token ' . $token->token]]);
$libraryResource = new Library($client);
$directoryResource = new Directory($client);
$fileResource = new File($client);
// get all libraries available
$logger->log(Logger::INFO, "#################### Getting all libraries");
$libs = $libraryResource->getAll();
foreach ($libs as $lib) {
    printf("Name: %s, ID: %s, is encrypted: %s\n", $lib->name, $lib->id, $lib->encrypted ? 'YES' : 'NO');
}
$libId = $cfg->testLibId;
// get specific library
$logger->log(Logger::INFO, "#################### Getting lib with ID " . $libId);
$lib = $libraryResource->getById($libId);
$lib->password = $cfg->testLibPassword;
// library is encrypted and thus we provide a password
if ($lib->encrypted) {
    $success = $libraryResource->decrypt($libId, ['query' => ['password' => $cfg->testLibPassword]]);
コード例 #3
0
 /**
  * Test remove()
  *
  * @return void
  */
 public function testRemove()
 {
     $getAllResponse = new Response(200, ['Content-Type' => 'application/json'], file_get_contents(__DIR__ . '/../../assets/DirectoryTest_getAll.json'));
     $mkdirResponse = new Response(200, ['Content-Type' => 'text/plain']);
     $mockedClient = $this->getMockBuilder('\\Seafile\\Client\\Http\\Client')->getMock();
     $mockedClient->method('getConfig')->willReturn('http://example.com/');
     $expectUri = 'http://example.com/repos/some-crazy-id/dir/?p=test_dir';
     $expectParams = ['headers' => ['Accept' => "application/json"]];
     // @todo: Test more thoroughly. For example make sure request() gets called with POST twice (a, then b)
     $mockedClient->expects(self::any())->method('request')->with(self::logicalOr(self::equalTo('GET'), self::equalTo('DELETE')))->will(self::returnCallback(function ($method, $uri, $params) use($getAllResponse, $mkdirResponse, $expectUri, $expectParams) {
         if ($method === 'GET') {
             return $getAllResponse;
         }
         if ($expectUri === $uri && $expectParams === $params) {
             return $mkdirResponse;
         }
         return new Response(500);
     }));
     /**
      * @var Client $mockedClient
      */
     $directoryResource = new Directory($mockedClient);
     $lib = new Library();
     $lib->id = 'some-crazy-id';
     self::assertTrue($directoryResource->remove($lib, 'test_dir'));
 }