summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@owncloud.com>2016-02-09 10:36:44 +0100
committerRoeland Jago Douma <rullzer@owncloud.com>2016-02-09 10:36:44 +0100
commit623a0e463755f9f429f1505a939f86492571f5ce (patch)
treed3d1e5e7fdf89355a7da913c27396aeefbd495b7 /apps
parent38cbfed476b2ba1fc33564752b7e49283c657d08 (diff)
downloadnextcloud-server-623a0e463755f9f429f1505a939f86492571f5ce.tar.gz
nextcloud-server-623a0e463755f9f429f1505a939f86492571f5ce.zip
Example hook check
Diffstat (limited to 'apps')
-rw-r--r--apps/files_sharing/lib/controllers/sharecontroller.php16
-rw-r--r--apps/files_sharing/tests/controller/sharecontroller.php24
2 files changed, 26 insertions, 14 deletions
diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php
index b30509405a5..dae61a3537b 100644
--- a/apps/files_sharing/lib/controllers/sharecontroller.php
+++ b/apps/files_sharing/lib/controllers/sharecontroller.php
@@ -30,7 +30,6 @@
namespace OCA\Files_Sharing\Controllers;
use OC;
-use OC\Files\Filesystem;
use OC_Files;
use OC_Util;
use OCP;
@@ -71,7 +70,7 @@ class ShareController extends Controller {
protected $logger;
/** @var OCP\Activity\IManager */
protected $activityManager;
- /** @var OC\Share20\Manager */
+ /** @var OCP\Share\IManager */
protected $shareManager;
/** @var ISession */
protected $session;
@@ -88,7 +87,7 @@ class ShareController extends Controller {
* @param IUserManager $userManager
* @param ILogger $logger
* @param OCP\Activity\IManager $activityManager
- * @param \OC\Share20\Manager $shareManager
+ * @param \OCP\Share\IManager $shareManager
* @param ISession $session
* @param IPreview $previewManager
* @param IRootFolder $rootFolder
@@ -100,7 +99,7 @@ class ShareController extends Controller {
IUserManager $userManager,
ILogger $logger,
\OCP\Activity\IManager $activityManager,
- \OC\Share20\Manager $shareManager,
+ \OCP\Share\IManager $shareManager,
ISession $session,
IPreview $previewManager,
IRootFolder $rootFolder) {
@@ -193,11 +192,10 @@ class ShareController extends Controller {
/**
* throws hooks when a share is attempted to be accessed
*
- * @param \OC\Share20\Share|string $share the Share instance if available,
+ * @param \OCP\Share\IShare|string $share the Share instance if available,
* otherwise token
* @param int $errorCode
* @param string $errorMessage
- * @throws NotFoundException
* @throws OC\HintException
* @throws OC\ServerNotAvailableException
*/
@@ -205,12 +203,12 @@ class ShareController extends Controller {
$itemType = $itemSource = $uidOwner = '';
$token = $share;
$exception = null;
- if($share instanceof \OC\Share20\Share) {
+ if($share instanceof \OCP\Share\IShare) {
try {
$token = $share->getToken();
$uidOwner = $share->getSharedBy();
- $itemType = $share->getNode() instanceof \OCP\Files\File ? 'file' : 'folder';
- $itemSource = $share->getNode()->getId();
+ $itemType = $share->getNodeType();
+ $itemSource = $share->getNodeId();
} catch (\Exception $e) {
// we log what we know and pass on the exception afterwards
$exception = $e;
diff --git a/apps/files_sharing/tests/controller/sharecontroller.php b/apps/files_sharing/tests/controller/sharecontroller.php
index 58524d8f030..11dc082390c 100644
--- a/apps/files_sharing/tests/controller/sharecontroller.php
+++ b/apps/files_sharing/tests/controller/sharecontroller.php
@@ -218,12 +218,12 @@ class ShareControllerTest extends \Test\TestCase {
}
public function testAuthenticateInvalidPassword() {
- $node = $this->getMock('\OCP\Files\File');
- $node->method('getId')->willReturn(100);
-
$share = \OC::$server->getShareManager()->newShare();
- $share->setId(42)
- ->setNode($node);
+ $share->setNodeId(100)
+ ->setNodeType('file')
+ ->setToken('token')
+ ->setSharedBy('initiator')
+ ->setId(42);
$this->shareManager
->expects($this->once())
@@ -241,6 +241,20 @@ class ShareControllerTest extends \Test\TestCase {
->expects($this->never())
->method('set');
+ $hookListner = $this->getMockBuilder('Dummy')->setMethods(['access'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'share_link_access', $hookListner, 'access');
+
+ $hookListner->expects($this->once())
+ ->method('access')
+ ->with($this->callback(function(array $data) {
+ return $data['itemType'] === 'file' &&
+ $data['itemSource'] === 100 &&
+ $data['uidOwner'] === 'initiator' &&
+ $data['token'] === 'token' &&
+ $data['errorCode'] === 403 &&
+ $data['errorMessage'] === 'Wrong password';
+ }));
+
$response = $this->shareController->authenticate('token', 'invalidpassword');
$expectedResponse = new TemplateResponse($this->appName, 'authenticate', array('wrongpw' => true), 'guest');
$this->assertEquals($expectedResponse, $response);