server/apps/files_external/tests/dropbox.php
Vincent Petry 7c81ac3d28 Fixed various Dropbox issues + unit tests
- fixed touch function to return true on success
- fixed local metadata cache to remove deleted files/directories
- fixed getMetaData() to ignore files reported as deleted by
  Dropbox
- fixed "file not found" case to not log as exception
- fixed "overwrite on rename" case
- fixed unit tests to exclude unsupported cases
- added unit test for touch return value
- unit tests for Dropbox should all run correctly now
2013-11-26 11:59:36 +01:00

45 lines
1.3 KiB
PHP

<?php
/**
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace Test\Files\Storage;
class Dropbox extends Storage {
private $config;
public function setUp() {
$id = uniqid();
$this->config = include('files_external/tests/config.php');
if ( ! is_array($this->config) or ! isset($this->config['dropbox']) or ! $this->config['dropbox']['run']) {
$this->markTestSkipped('Dropbox backend not configured');
}
$this->config['dropbox']['root'] .= '/' . $id; //make sure we have an new empty folder to work in
$this->instance = new \OC\Files\Storage\Dropbox($this->config['dropbox']);
}
public function directoryProvider() {
// doesn't support leading/trailing spaces
return array(array('folder'));
}
public function testDropboxTouchReturnValue() {
$this->assertFalse($this->instance->file_exists('foo'));
// true because succeeded
$this->assertTrue($this->instance->touch('foo'));
$this->assertTrue($this->instance->file_exists('foo'));
// false because not supported
$this->assertFalse($this->instance->touch('foo'));
}
public function tearDown() {
if ($this->instance) {
$this->instance->unlink('/');
}
}
}