Просмотр исходного кода

fix cherrypicking

tags/v8.1.0alpha1
Jörn Friedrich Dreyer 9 лет назад
Родитель
Сommit
fafecd1c05

+ 1
- 1
apps/user_ldap/lib/connection.php Просмотреть файл



namespace OCA\user_ldap\lib; namespace OCA\user_ldap\lib;


//magic properties (incomplete)
use OC\ServerNotAvailableException; use OC\ServerNotAvailableException;


/** /**
* magic properties (incomplete)
* responsible for LDAP connections in context with the provided configuration * responsible for LDAP connections in context with the provided configuration
* *
* @property string ldapUserFilter * @property string ldapUserFilter

+ 4
- 0
apps/user_ldap/tests/user/manager.php Просмотреть файл

$manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
$manager->setLdapAccess($access); $manager->setLdapAccess($access);
$user = $manager->get($inputDN); $user = $manager->get($inputDN);

$this->assertNull($user);
} }


public function testGetByUidExisting() { public function testGetByUidExisting() {
$manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc); $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
$manager->setLdapAccess($access); $manager->setLdapAccess($access);
$user = $manager->get($uid); $user = $manager->get($uid);

$this->assertNull($user);
} }


} }

+ 13
- 14
apps/user_ldap/tests/user_ldap.php Просмотреть файл

*/ */
public function testUserExistsForDeleted() { public function testUserExistsForDeleted() {
$access = $this->getAccessMock(); $access = $this->getAccessMock();
$backend = new UserLDAP($access);
$backend = new UserLDAP($access, $this->getMock('\OCP\IConfig'));
$this->prepareMockForUserExists($access); $this->prepareMockForUserExists($access);


$access->expects($this->any()) $access->expects($this->any())


public function testUserExistsForNeverExisting() { public function testUserExistsForNeverExisting() {
$access = $this->getAccessMock(); $access = $this->getAccessMock();
$backend = new UserLDAP($access);
$backend = new UserLDAP($access, $this->getMock('\OCP\IConfig'));
$this->prepareMockForUserExists($access); $this->prepareMockForUserExists($access);


$access->expects($this->any()) $access->expects($this->any())
*/ */
public function testUserExistsPublicAPIForDeleted() { public function testUserExistsPublicAPIForDeleted() {
$access = $this->getAccessMock(); $access = $this->getAccessMock();
$backend = new UserLDAP($access);
$backend = new UserLDAP($access, $this->getMock('\OCP\IConfig'));
$this->prepareMockForUserExists($access); $this->prepareMockForUserExists($access);
\OC_User::useBackend($backend); \OC_User::useBackend($backend);




public function testUserExistsPublicAPIForNeverExisting() { public function testUserExistsPublicAPIForNeverExisting() {
$access = $this->getAccessMock(); $access = $this->getAccessMock();
$backend = new UserLDAP($access);
$backend = new UserLDAP($access, $this->getMock('\OCP\IConfig'));
$this->prepareMockForUserExists($access); $this->prepareMockForUserExists($access);
\OC_User::useBackend($backend); \OC_User::useBackend($backend);


} }
})); }));


$datadir = '/my/data/dir';
$config->expects($this->once())
->method('getSystemValue')
->will($this->returnValue($datadir));

//absolut path //absolut path
$result = $backend->getHome('gunslinger'); $result = $backend->getHome('gunslinger');
$this->assertEquals('/tmp/rolandshome/', $result); $this->assertEquals('/tmp/rolandshome/', $result);
} }


public function testGetHomeDatadirRelative() {
public function testGetHomeRelative() {
$access = $this->getAccessMock(); $access = $this->getAccessMock();
$backend = new UserLDAP($access);
$config = $this->getMock('\OCP\IConfig');
$backend = new UserLDAP($access, $config);
$this->prepareMockForUserExists($access); $this->prepareMockForUserExists($access);


$access->connection->expects($this->any()) $access->connection->expects($this->any())
} }
})); }));
//datadir-relativ path //datadir-relativ path
$datadir = '/my/data/dir';
$config->expects($this->once())
->method('getSystemValue')
->will($this->returnValue($datadir));

$result = $backend->getHome('ladyofshadows'); $result = $backend->getHome('ladyofshadows');
$datadir = \OCP\Config::getSystemValue('datadirectory',
\OC::$SERVERROOT.'/data');
$this->assertEquals($datadir.'/susannah/', $result); $this->assertEquals($datadir.'/susannah/', $result);
} }


*/ */
public function testGetHomeNoPath() { public function testGetHomeNoPath() {
$access = $this->getAccessMock(); $access = $this->getAccessMock();
$backend = new UserLDAP($access);
$backend = new UserLDAP($access, $this->getMock('\OCP\IConfig'));
$this->prepareMockForUserExists($access); $this->prepareMockForUserExists($access);


$access->connection->expects($this->any()) $access->connection->expects($this->any())

+ 1
- 1
lib/private/hook.php Просмотреть файл

OC_Log::write('hook', OC_Log::write('hook',
'error while running hook (' . $class . '::' . $i["name"] . '): ' . $message, 'error while running hook (' . $class . '::' . $i["name"] . '): ' . $message,
OC_Log::ERROR); OC_Log::ERROR);
if($e instanceof \OC\ServerNotAvailableException && $signalclass === 'OC_Filesystem' && $signalname === 'setup') {
if($e instanceof \OC\ServerNotAvailableException && $signalClass === 'OC_Filesystem' && $signalName === 'setup') {
throw $e; throw $e;
} }
} }

+ 10
- 1
tests/lib/files/filesystem.php Просмотреть файл

use OC\User\NoUserException; use OC\User\NoUserException;


class Filesystem extends \Test\TestCase { class Filesystem extends \Test\TestCase {

const TEST_FILESYSTEM_USER1 = "test-filesystem-user1";

/** /**
* @var array tmpDirs * @var array tmpDirs
*/ */
if (\OC\Files\Filesystem::getView()) { if (\OC\Files\Filesystem::getView()) {
$user = \OC_User::getUser(); $user = \OC_User::getUser();
} else { } else {
$user = $this->getUniqueID();
$user = self::TEST_FILESYSTEM_USER1;
$backend = new \OC_User_Dummy();
\OC_User::useBackend($backend);
$backend->createUser($user, $user);
$userObj = \OC::$server->getUserManager()->get($user);
\OC::$server->getUserSession()->setUser($userObj);
\OC\Files\Filesystem::init($user, '/' . $user . '/files'); \OC\Files\Filesystem::init($user, '/' . $user . '/files');

} }
\OC_Hook::clear('OC_Filesystem'); \OC_Hook::clear('OC_Filesystem');
\OC_Hook::connect('OC_Filesystem', 'post_write', $this, 'dummyHook'); \OC_Hook::connect('OC_Filesystem', 'post_write', $this, 'dummyHook');

+ 27
- 27
tests/lib/preview.php Просмотреть файл



class Preview extends TestCase { class Preview extends TestCase {


/**
* @var string
*/
private $user;
const TEST_PREVIEW_USER1 = "test-preview-user1";


/** /**
* @var \OC\Files\View * @var \OC\Files\View


// create a new user with his own filesystem view // create a new user with his own filesystem view
// this gets called by each test in this test class // this gets called by each test in this test class
$this->user = $this->getUniqueID();
\OC_User::setUserId($this->user);
\OC\Files\Filesystem::init($this->user, '/' . $this->user . '/files');
$backend = new \OC_User_Dummy();
\OC_User::useBackend($backend);
$backend->createUser(self::TEST_PREVIEW_USER1, self::TEST_PREVIEW_USER1);
$user = \OC::$server->getUserManager()->get(self::TEST_PREVIEW_USER1);
\OC::$server->getUserSession()->setUser($user);
\OC\Files\Filesystem::init(self::TEST_PREVIEW_USER1, '/' . self::TEST_PREVIEW_USER1 . '/files');


\OC\Files\Filesystem::mount('OC\Files\Storage\Temporary', array(), '/'); \OC\Files\Filesystem::mount('OC\Files\Storage\Temporary', array(), '/');


$this->rootView = new \OC\Files\View(''); $this->rootView = new \OC\Files\View('');
$this->rootView->mkdir('/'.$this->user);
$this->rootView->mkdir('/'.$this->user.'/files');
$this->rootView->mkdir('/'.self::TEST_PREVIEW_USER1);
$this->rootView->mkdir('/'.self::TEST_PREVIEW_USER1.'/files');
} }


protected function tearDown() { protected function tearDown() {
\OC::$server->getConfig()->setSystemValue('preview_max_y', $maxY); \OC::$server->getConfig()->setSystemValue('preview_max_y', $maxY);


// Sample is 1680x1050 JPEG // Sample is 1680x1050 JPEG
$sampleFile = '/' . $this->user . '/files/testimage.jpg';
$sampleFile = '/' . self::TEST_PREVIEW_USER1 . '/files/testimage.jpg';
$this->rootView->file_put_contents($sampleFile, file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); $this->rootView->file_put_contents($sampleFile, file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg'));
$fileInfo = $this->rootView->getFileInfo($sampleFile); $fileInfo = $this->rootView->getFileInfo($sampleFile);
$fileId = $fileInfo['fileid']; $fileId = $fileInfo['fileid'];


$largeX = 1920; $largeX = 1920;
$largeY = 1080; $largeY = 1080;
$preview = new \OC\Preview($this->user, 'files/', 'testimage.jpg', $largeX, $largeY);
$preview = new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'testimage.jpg', $largeX, $largeY);


$this->assertEquals($preview->isFileValid(), true); $this->assertEquals($preview->isFileValid(), true);


$this->assertEquals($image->height(), $maxY); $this->assertEquals($image->height(), $maxY);


// The max thumbnail should be created // The max thumbnail should be created
$maxThumbCacheFile = '/' . $this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $maxX . '-' . $maxY . '-max.png';
$maxThumbCacheFile = '/' . self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $maxX . '-' . $maxY . '-max.png';


$this->assertEquals($this->rootView->file_exists($maxThumbCacheFile), true); $this->assertEquals($this->rootView->file_exists($maxThumbCacheFile), true);


// Smaller previews should be based on the cached max preview // Smaller previews should be based on the cached max preview
$smallX = 50; $smallX = 50;
$smallY = 50; $smallY = 50;
$preview = new \OC\Preview($this->user, 'files/', 'testimage.jpg', $smallX, $smallY);
$preview = new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'testimage.jpg', $smallX, $smallY);
$isCached = $preview->isCached($fileId); $isCached = $preview->isCached($fileId);


$this->assertEquals(\OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $maxX . '-' . $maxY . '.png', $isCached); $this->assertEquals(\OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $maxX . '-' . $maxY . '.png', $isCached);
$this->assertEquals($image->height(), $smallY); $this->assertEquals($image->height(), $smallY);


// The cache should contain the small preview // The cache should contain the small preview
$thumbCacheFile = '/' . $this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $smallX . '-' . $smallY . '.png';
$thumbCacheFile = '/' . self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $smallX . '-' . $smallY . '.png';


$this->assertEquals($this->rootView->file_exists($thumbCacheFile), true); $this->assertEquals($this->rootView->file_exists($thumbCacheFile), true);




public function testIsPreviewDeleted() { public function testIsPreviewDeleted() {


$sampleFile = '/'.$this->user.'/files/test.txt';
$sampleFile = '/'.self::TEST_PREVIEW_USER1.'/files/test.txt';


$this->rootView->file_put_contents($sampleFile, 'dummy file data'); $this->rootView->file_put_contents($sampleFile, 'dummy file data');
$x = 50; $x = 50;
$y = 50; $y = 50;


$preview = new \OC\Preview($this->user, 'files/', 'test.txt', $x, $y);
$preview = new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'test.txt', $x, $y);
$preview->getPreview(); $preview->getPreview();


$fileInfo = $this->rootView->getFileInfo($sampleFile); $fileInfo = $this->rootView->getFileInfo($sampleFile);
$fileId = $fileInfo['fileid']; $fileId = $fileInfo['fileid'];


$thumbCacheFile = '/' . $this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $x . '-' . $y . '.png';
$thumbCacheFile = '/' . self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $x . '-' . $y . '.png';
$this->assertEquals($this->rootView->file_exists($thumbCacheFile), true); $this->assertEquals($this->rootView->file_exists($thumbCacheFile), true);




public function testAreAllPreviewsDeleted() { public function testAreAllPreviewsDeleted() {


$sampleFile = '/'.$this->user.'/files/test.txt';
$sampleFile = '/'.self::TEST_PREVIEW_USER1.'/files/test.txt';


$this->rootView->file_put_contents($sampleFile, 'dummy file data'); $this->rootView->file_put_contents($sampleFile, 'dummy file data');
$x = 50; $x = 50;
$y = 50; $y = 50;


$preview = new \OC\Preview($this->user, 'files/', 'test.txt', $x, $y);
$preview = new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'test.txt', $x, $y);
$preview->getPreview(); $preview->getPreview();


$fileInfo = $this->rootView->getFileInfo($sampleFile); $fileInfo = $this->rootView->getFileInfo($sampleFile);
$fileId = $fileInfo['fileid']; $fileId = $fileInfo['fileid'];
$thumbCacheFolder = '/' . $this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/';
$thumbCacheFolder = '/' . self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/';
$this->assertEquals($this->rootView->is_dir($thumbCacheFolder), true); $this->assertEquals($this->rootView->is_dir($thumbCacheFolder), true);


$x = 32; $x = 32;
$y = 32; $y = 32;


$sample = '/'.$this->user.'/files/test.'.$extension;
$sample = '/'.self::TEST_PREVIEW_USER1.'/files/test.'.$extension;
$this->rootView->file_put_contents($sample, $data); $this->rootView->file_put_contents($sample, $data);
$preview = new \OC\Preview($this->user, 'files/', 'test.'.$extension, $x, $y);
$preview = new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'test.'.$extension, $x, $y);
$image = $preview->getPreview(); $image = $preview->getPreview();
$resource = $image->resource(); $resource = $image->resource();




public function testCreationFromCached() { public function testCreationFromCached() {


$sampleFile = '/'.$this->user.'/files/test.txt';
$sampleFile = '/'.self::TEST_PREVIEW_USER1.'/files/test.txt';


$this->rootView->file_put_contents($sampleFile, 'dummy file data'); $this->rootView->file_put_contents($sampleFile, 'dummy file data');


$x = 150; $x = 150;
$y = 150; $y = 150;


$preview = new \OC\Preview($this->user, 'files/', 'test.txt', $x, $y);
$preview = new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'test.txt', $x, $y);
$preview->getPreview(); $preview->getPreview();


$fileInfo = $this->rootView->getFileInfo($sampleFile); $fileInfo = $this->rootView->getFileInfo($sampleFile);
$fileId = $fileInfo['fileid']; $fileId = $fileInfo['fileid'];


$thumbCacheFile = '/' . $this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $x . '-' . $y . '.png';
$thumbCacheFile = '/' . self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/' . $x . '-' . $y . '.png';


$this->assertEquals($this->rootView->file_exists($thumbCacheFile), true); $this->assertEquals($this->rootView->file_exists($thumbCacheFile), true);




// create smaller previews // create smaller previews
$preview = new \OC\Preview($this->user, 'files/', 'test.txt', 50, 50);
$preview = new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'test.txt', 50, 50);
$isCached = $preview->isCached($fileId); $isCached = $preview->isCached($fileId);


$this->assertEquals($this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/150-150.png', $isCached);
$this->assertEquals(self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/150-150.png', $isCached);
} }


/* /*

Загрузка…
Отмена
Сохранить