Example #1
0
 /**
  * Test rename()
  *
  * @return void
  */
 public function testRename()
 {
     $getAllResponse = new Response(200, ['Content-Type' => 'application/json'], file_get_contents(__DIR__ . '/../../assets/FileTest_getAll.json'));
     $newFilename = 'test_file_renamed';
     $renameResponse = new Response(200, ['Content-Type' => 'text/plain']);
     /**
      * @var Client|\PHPUnit_Framework_MockObject_MockObject $mockedClient
      */
     $mockedClient = $this->getMockBuilder('\\Seafile\\Client\\Http\\Client')->getMock();
     $mockedClient->method('getConfig')->willReturn('http://example.com/');
     $expectUri = 'http://example.com/repos/some-crazy-id/file/?p=/test_file';
     $expectParams = ['headers' => ['Accept' => "application/json"], 'multipart' => [['name' => 'operation', 'contents' => 'rename'], ['name' => 'newname', 'contents' => $newFilename]]];
     // @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::equalTo('POST'))->will(self::returnCallback(function ($method, $uri, $params) use($getAllResponse, $renameResponse, $expectUri, $expectParams) {
         if ($expectUri === $uri && $expectParams === $params) {
             return $renameResponse;
         }
         return new Response(500);
     }));
     $fileResource = new File($mockedClient);
     $lib = new Library(['id' => 'some-crazy-id']);
     $dirItem = new DirectoryItem(['name' => 'test_file']);
     self::assertTrue($fileResource->rename($lib, $dirItem, $newFilename));
 }
Example #2
0
$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);
$libId = $cfg->testLibId;
$lib = $libraryResource->getById($libId);
if ($lib->encrypted === true && isset($cfg->testLibPassword)) {
    $success = $libraryResource->decrypt($libId, ['query' => ['password' => $cfg->testLibPassword]]);
}
$logger->log(Logger::INFO, "#################### GO!");
$path = null;
$fileName = 'test.txt';
$newFilename = 'test_' . date('U') . '.txt';
$dirItem = $fileResource->getFileDetail($lib, $path . $fileName);
$logger->log(Logger::INFO, "#################### File to be renamed: " . $path . $dirItem->name);
$success = $fileResource->rename($lib, $dirItem, $newFilename);
if ($success) {
    $logger->log(Logger::INFO, "#################### File renamed from " . $path . $fileName . ' to ' . $newFilename);
} else {
    $logger->log(Logger::ERROR, "#################### Could not rename: " . $path . $fileName);
}
sleep(60);
$newFilename = 'even_newer_file_name_test_' . date('U') . '.txt';
$success = $fileResource->rename($lib, $dirItem, $newFilename);
if ($success) {
    $logger->log(Logger::INFO, "#################### File renamed from " . $dirItem->name . ' to ' . $newFilename);
} else {
    $logger->log(Logger::ERROR, "#################### Could not rename: " . $dirItem->name);
}
print PHP_EOL . 'Done' . PHP_EOL;