summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@owncloud.com>2016-01-20 21:56:55 +0100
committerRoeland Jago Douma <rullzer@owncloud.com>2016-01-20 21:56:55 +0100
commit88bc8634d2076b7392c9ec214e414c558a6584d6 (patch)
tree343707517e56713337fc5540660a762f6a0479b0 /tests
parent18421e7e686a4ed90f276925322b5d168f347e30 (diff)
downloadnextcloud-server-88bc8634d2076b7392c9ec214e414c558a6584d6.tar.gz
nextcloud-server-88bc8634d2076b7392c9ec214e414c558a6584d6.zip
Add Unit tests
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/share20/defaultshareprovidertest.php50
-rw-r--r--tests/lib/share20/managertest.php65
2 files changed, 115 insertions, 0 deletions
diff --git a/tests/lib/share20/defaultshareprovidertest.php b/tests/lib/share20/defaultshareprovidertest.php
index 4db6b2b14e7..039692772a0 100644
--- a/tests/lib/share20/defaultshareprovidertest.php
+++ b/tests/lib/share20/defaultshareprovidertest.php
@@ -721,4 +721,54 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->assertSame('token', $share2->getToken());
$this->assertEquals($expireDate, $share2->getExpirationDate());
}
+
+ public function testGetShareByToken() {
+ $qb = $this->dbConn->getQueryBuilder();
+
+ $qb->insert('share')
+ ->values([
+ 'share_type' => $qb->expr()->literal(\OCP\Share::SHARE_TYPE_LINK),
+ 'share_with' => $qb->expr()->literal('password'),
+ 'uid_owner' => $qb->expr()->literal('shareOwner'),
+ 'uid_initiator' => $qb->expr()->literal('sharedBy'),
+ 'item_type' => $qb->expr()->literal('file'),
+ 'file_source' => $qb->expr()->literal(42),
+ 'file_target' => $qb->expr()->literal('myTarget'),
+ 'permissions' => $qb->expr()->literal(13),
+ 'token' => $qb->expr()->literal('secrettoken'),
+ ]);
+ $qb->execute();
+ $id = $qb->getLastInsertId();
+
+ $owner = $this->getMock('\OCP\IUser');
+ $owner->method('getUID')->willReturn('shareOwner');
+ $initiator = $this->getMock('\OCP\IUser');
+ $initiator->method('getUID')->willReturn('sharedBy');
+
+ $this->userManager->method('get')
+ ->will($this->returnValueMap([
+ ['sharedBy', $initiator],
+ ['shareOwner', $owner],
+ ]));
+
+ $file = $this->getMock('\OCP\Files\File');
+
+ $this->rootFolder->method('getUserFolder')->with('shareOwner')->will($this->returnSelf());
+ $this->rootFolder->method('getById')->with(42)->willReturn([$file]);
+
+ $share = $this->provider->getShareByToken('secrettoken');
+ $this->assertEquals($id, $share->getId());
+ $this->assertSame($owner, $share->getShareOwner());
+ $this->assertSame($initiator, $share->getSharedBy());
+ $this->assertSame('secrettoken', $share->getToken());
+ $this->assertSame('password', $share->getPassword());
+ $this->assertSame(null, $share->getSharedWith());
+ }
+
+ /**
+ * @expectedException \OC\Share20\Exception\ShareNotFound
+ */
+ public function testGetShareByTokenNotFound() {
+ $this->provider->getShareByToken('invalidtoken');
+ }
}
diff --git a/tests/lib/share20/managertest.php b/tests/lib/share20/managertest.php
index 92ebe1951b5..28303d3152f 100644
--- a/tests/lib/share20/managertest.php
+++ b/tests/lib/share20/managertest.php
@@ -1478,6 +1478,71 @@ class ManagerTest extends \Test\TestCase {
$manager->createShare($share);
}
+
+ public function testGetShareByToken() {
+ $factory = $this->getMock('\OC\Share20\IProviderFactory');
+
+ $manager = new Manager(
+ $this->logger,
+ $this->config,
+ $this->secureRandom,
+ $this->hasher,
+ $this->mountManager,
+ $this->groupManager,
+ $this->l,
+ $factory
+ );
+
+ $share = $this->getMock('\OC\Share20\IShare');
+
+ $factory->expects($this->once())
+ ->method('getProviderForType')
+ ->with(\OCP\Share::SHARE_TYPE_LINK)
+ ->willReturn($this->defaultProvider);
+
+ $this->defaultProvider->expects($this->once())
+ ->method('getShareByToken')
+ ->with('token')
+ ->willReturn($share);
+
+ $ret = $manager->getShareByToken('token');
+ $this->assertSame($share, $ret);
+ }
+
+ public function testCheckPasswordNoLinkShare() {
+ $share = $this->getMock('\OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_USER);
+ $this->assertFalse($this->manager->checkPassword($share, 'password'));
+ }
+
+ public function testCheckPasswordNoPassword() {
+ $share = $this->getMock('\OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_LINK);
+ $this->assertFalse($this->manager->checkPassword($share, 'password'));
+
+ $share->method('getPassword')->willReturn('password');
+ $this->assertFalse($this->manager->checkPassword($share, null));
+ }
+
+ public function testCheckPasswordInvalidPassword() {
+ $share = $this->getMock('\OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_LINK);
+ $share->method('getPassword')->willReturn('password');
+
+ $this->hasher->method('verify')->with('invalidpassword', 'password', '')->willReturn(false);
+
+ $this->assertFalse($this->manager->checkPassword($share, 'invalidpassword'));
+ }
+
+ public function testCheckPasswordValidPassword() {
+ $share = $this->getMock('\OC\Share20\IShare');
+ $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_LINK);
+ $share->method('getPassword')->willReturn('passwordHash');
+
+ $this->hasher->method('verify')->with('password', 'passwordHash', '')->willReturn(true);
+
+ $this->assertTrue($this->manager->checkPassword($share, 'password'));
+ }
}
class DummyPassword {