[Share 2.0] Fix unit tests

This commit is contained in:
Roeland Jago Douma 2016-01-25 12:09:56 +01:00
parent 7239fea0f0
commit 59c2aae54f
1 changed files with 52 additions and 46 deletions

View File

@ -21,9 +21,11 @@
namespace Test\Share20; namespace Test\Share20;
use OC\Share20\IProviderFactory; use OC\Share20\IProviderFactory;
use OC\Share20\IShare;
use OC\Share20\Manager; use OC\Share20\Manager;
use OC\Share20\Exception; use OC\Share20\Exception;
use OC\Share20\Share;
use OCP\IL10N; use OCP\IL10N;
use OCP\ILogger; use OCP\ILogger;
use OCP\IConfig; use OCP\IConfig;
@ -755,18 +757,22 @@ class ManagerTest extends \Test\TestCase {
* @expectedExceptionMessage Path already shared with this user * @expectedExceptionMessage Path already shared with this user
*/ */
public function testUserCreateChecksIdenticalShareExists() { public function testUserCreateChecksIdenticalShareExists() {
$share = new \OC\Share20\Share(); $share = new \OC\Share20\Share();
$share2 = new \OC\Share20\Share();
$sharedWith = $this->getMock('\OCP\IUser'); $sharedWith = $this->getMock('\OCP\IUser');
$share->setSharedWith($sharedWith);
$path = $this->getMock('\OCP\Files\Node'); $path = $this->getMock('\OCP\Files\Node');
$share->setPath($path);
$share->setSharedWith($sharedWith)->setPath($path)
->setProviderId('foo')->setId('bar');
$share2->setSharedWith($sharedWith)->setPath($path)
->setProviderId('foo')->setId('baz');
$this->defaultProvider $this->defaultProvider
->method('getSharesByPath') ->method('getSharesByPath')
->with($path) ->with($path)
->willReturn([$share]); ->willReturn([$share2]);
$this->invokePrivate($this->manager, 'userCreateChecks', [$share]); $this->invokePrivate($this->manager, 'userCreateChecks', [$share]);
} }
@ -776,18 +782,24 @@ class ManagerTest extends \Test\TestCase {
* @expectedExceptionMessage Path already shared with this user * @expectedExceptionMessage Path already shared with this user
*/ */
public function testUserCreateChecksIdenticalPathSharedViaGroup() { public function testUserCreateChecksIdenticalPathSharedViaGroup() {
$share = new \OC\Share20\Share(); $share = new \OC\Share20\Share();
$sharedWith = $this->getMock('\OCP\IUser'); $sharedWith = $this->getMock('\OCP\IUser');
$owner = $this->getMock('\OCP\IUser'); $owner = $this->getMock('\OCP\IUser');
$path = $this->getMock('\OCP\Files\Node'); $path = $this->getMock('\OCP\Files\Node');
$share->setSharedWith($sharedWith) $share->setSharedWith($sharedWith)
->setPath($path) ->setPath($path)
->setShareOwner($owner); ->setShareOwner($owner)
->setProviderId('foo')
->setId('bar');
$share2 = new \OC\Share20\Share(); $share2 = new \OC\Share20\Share();
$owner2 = $this->getMock('\OCP\IUser'); $owner2 = $this->getMock('\OCP\IUser');
$share2->setShareType(\OCP\Share::SHARE_TYPE_GROUP) $share2->setShareType(\OCP\Share::SHARE_TYPE_GROUP)
->setShareOwner($owner2); ->setShareOwner($owner2)
->setProviderId('foo')
->setId('baz');
$group = $this->getMock('\OCP\IGroup'); $group = $this->getMock('\OCP\IGroup');
$group->method('inGroup') $group->method('inGroup')
@ -804,19 +816,23 @@ class ManagerTest extends \Test\TestCase {
$this->invokePrivate($this->manager, 'userCreateChecks', [$share]); $this->invokePrivate($this->manager, 'userCreateChecks', [$share]);
} }
public function xtestUserCreateChecksIdenticalPathNotSharedWithUser() { public function testUserCreateChecksIdenticalPathNotSharedWithUser() {
$share = new \OC\Share20\Share(); $share = new \OC\Share20\Share();
$sharedWith = $this->getMock('\OCP\IUser'); $sharedWith = $this->getMock('\OCP\IUser');
$owner = $this->getMock('\OCP\IUser'); $owner = $this->getMock('\OCP\IUser');
$path = $this->getMock('\OCP\Files\Node'); $path = $this->getMock('\OCP\Files\Node');
$share->setSharedWith($sharedWith) $share->setSharedWith($sharedWith)
->setPath($path) ->setPath($path)
->setShareOwner($owner); ->setShareOwner($owner)
->setProviderId('foo')
->setId('bar');
$share2 = new \OC\Share20\Share(); $share2 = new \OC\Share20\Share();
$owner2 = $this->getMock('\OCP\IUser'); $owner2 = $this->getMock('\OCP\IUser');
$share2->setShareType(\OCP\Share::SHARE_TYPE_GROUP) $share2->setShareType(\OCP\Share::SHARE_TYPE_GROUP)
->setShareOwner($owner2); ->setShareOwner($owner2)
->setProviderId('foo')
->setId('baz');
$group = $this->getMock('\OCP\IGroup'); $group = $this->getMock('\OCP\IGroup');
$group->method('inGroup') $group->method('inGroup')
@ -888,13 +904,16 @@ class ManagerTest extends \Test\TestCase {
$share = new \OC\Share20\Share(); $share = new \OC\Share20\Share();
$sharedWith = $this->getMock('\OCP\IGroup'); $sharedWith = $this->getMock('\OCP\IGroup');
$share->setSharedWith($sharedWith);
$path = $this->getMock('\OCP\Files\Node'); $path = $this->getMock('\OCP\Files\Node');
$share->setPath($path); $share->setSharedWith($sharedWith)
->setPath($path)
->setProviderId('foo')
->setId('bar');
$share2 = new \OC\Share20\Share(); $share2 = new \OC\Share20\Share();
$share2->setSharedWith($sharedWith); $share2->setSharedWith($sharedWith)
->setProviderId('foo')
->setId('baz');
$this->defaultProvider->method('getSharesByPath') $this->defaultProvider->method('getSharesByPath')
->with($path) ->with($path)
@ -1310,16 +1329,13 @@ class ManagerTest extends \Test\TestCase {
$date = new \DateTime(); $date = new \DateTime();
$share = $this->createShare( $share = new \OC\Share20\Share();
null, $share->setShareType(\OCP\Share::SHARE_TYPE_LINK)
\OCP\Share::SHARE_TYPE_LINK, ->setPath($path)
$path, ->setSharedBy($sharedBy)
null, ->setPermissions(\OCP\Constants::PERMISSION_ALL)
$sharedBy, ->setExpirationDate($date)
null, ->setPassword('password');
\OCP\Constants::PERMISSION_ALL,
$date,
'password');
$manager->expects($this->once()) $manager->expects($this->once())
->method('canShare') ->method('canShare')
@ -1356,24 +1372,9 @@ class ManagerTest extends \Test\TestCase {
->expects($this->once()) ->expects($this->once())
->method('create') ->method('create')
->with($share) ->with($share)
->will($this->returnArgument(0)); ->will($this->returnCallback(function(Share $share) {
return $share->setId(42);
$share->expects($this->once()) }));
->method('setShareOwner')
->with($shareOwner);
$share->expects($this->once())
->method('setTarget')
->with('/target');
$share->method('getTarget')
->willReturn('/target');
$share->expects($this->once())
->method('setExpirationDate')
->with($date);
$share->expects($this->once())
->method('setPassword')
->with('hashed');
$share->method('getToken')
->willReturn('token');
$hookListner = $this->getMockBuilder('Dummy')->setMethods(['pre', 'post'])->getMock(); $hookListner = $this->getMockBuilder('Dummy')->setMethods(['pre', 'post'])->getMock();
\OCP\Util::connectHook('OCP\Share', 'pre_shared', $hookListner, 'pre'); \OCP\Util::connectHook('OCP\Share', 'pre_shared', $hookListner, 'pre');
@ -1409,8 +1410,6 @@ class ManagerTest extends \Test\TestCase {
'shareWith' => null, 'shareWith' => null,
]; ];
$share->method('getId')->willReturn(42);
$hookListner->expects($this->once()) $hookListner->expects($this->once())
->method('pre') ->method('pre')
->with($this->equalTo($hookListnerExpectsPre)); ->with($this->equalTo($hookListnerExpectsPre));
@ -1418,7 +1417,14 @@ class ManagerTest extends \Test\TestCase {
->method('post') ->method('post')
->with($this->equalTo($hookListnerExpectsPost)); ->with($this->equalTo($hookListnerExpectsPost));
$manager->createShare($share); /** @var IShare $share */
$share = $manager->createShare($share);
$this->assertSame($shareOwner, $share->getShareOwner());
$this->assertEquals('/target', $share->getTarget());
$this->assertSame($date, $share->getExpirationDate());
$this->assertEquals('token', $share->getToken());
$this->assertEquals('hashed', $share->getPassword());
} }
/** /**