Add tests

This commit is contained in:
Roeland Jago Douma 2016-02-11 12:32:05 +01:00
parent 4533cb9c59
commit 0284c60c3a
1 changed files with 120 additions and 0 deletions

View File

@ -40,6 +40,9 @@ class Test_Files_Sharing_Api extends TestCase {
private static $tempStorage;
/** @var \OCP\Share\IManager */
private $shareManager;
protected function setUp() {
parent::setUp();
@ -59,6 +62,8 @@ class Test_Files_Sharing_Api extends TestCase {
$this->view->mkdir($this->folder . $this->subfolder . $this->subsubfolder);
$this->view->file_put_contents($this->folder.$this->filename, $this->data);
$this->view->file_put_contents($this->folder . $this->subfolder . $this->filename, $this->data);
$this->shareManager = \OC::$server->getShareManager();
}
protected function tearDown() {
@ -72,6 +77,40 @@ class Test_Files_Sharing_Api extends TestCase {
parent::tearDown();
}
/**
* @param array $data
* @return \OCP\IRequest
*/
private function createRequest(array $data) {
$request = $this->getMock('\OCP\IRequest');
$request->method('getParam')
->will($this->returnCallback(function($param, $default = null) use ($data) {
if (isset($data[$param])) {
return $data[$param];
}
return $default;
}));
return $request;
}
/**
* @param \OCP\IRequest $request
* @param string $userId The userId of the caller
* @return \OCA\Files_Sharing\API\Share20OCS
*/
private function createOCS($request, $userId) {
$currentUser = \OC::$server->getUserManager()->get($userId);
return new \OCA\Files_Sharing\API\Share20OCS(
$this->shareManager,
\OC::$server->getGroupManager(),
\OC::$server->getUserManager(),
$request,
\OC::$server->getRootFolder(),
\OC::$server->getURLGenerator(),
$currentUser
);
}
/**
* @medium
*/
@ -1725,4 +1764,85 @@ class Test_Files_Sharing_Api extends TestCase {
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'no');
}
/**
* test for no invisible shares
* See: https://github.com/owncloud/core/issues/22295
*/
public function testInvisibleSharesUser() {
// simulate a post request
$request = $this->createRequest([
'path' => $this->folder,
'shareWith' => self::TEST_FILES_SHARING_API_USER2,
'shareType' => \OCP\Share::SHARE_TYPE_USER
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare();
$this->assertTrue($result->succeeded());
$data = $result->getData();
$topId = $data['id'];
$request = $this->createRequest([
'path' => $this->folder . $this->subfolder,
'shareType' => \OCP\Share::SHARE_TYPE_LINK,
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2);
$result = $ocs->createShare();
$this->assertTrue($result->succeeded());
$request = $this->createRequest([]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->deleteShare($topId);
$this->assertTrue($result->succeeded());
$request = $this->createRequest([
'reshares' => 'true',
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->getShares();
$this->assertTrue($result->succeeded());
$this->assertEmpty($result->getData());
}
/**
* test for no invisible shares
* See: https://github.com/owncloud/core/issues/22295
*/
public function testInvisibleSharesGroup() {
// simulate a post request
$request = $this->createRequest([
'path' => $this->folder,
'shareWith' => self::TEST_FILES_SHARING_API_GROUP1,
'shareType' => \OCP\Share::SHARE_TYPE_GROUP
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare();
$this->assertTrue($result->succeeded());
$data = $result->getData();
$topId = $data['id'];
$request = $this->createRequest([
'path' => $this->folder . $this->subfolder,
'shareType' => \OCP\Share::SHARE_TYPE_LINK,
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2);
$result = $ocs->createShare();
$this->assertTrue($result->succeeded());
$request = $this->createRequest([]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->deleteShare($topId);
$this->assertTrue($result->succeeded());
$request = $this->createRequest([
'reshares' => 'true',
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->getShares();
$this->assertTrue($result->succeeded());
$this->assertEmpty($result->getData());
}
}