13 require_once(dirname(dirname(dirname(__DIR__))) .
'/lib/php/Test/Reflectory.php');
14 require_once(dirname(dirname(dirname(__DIR__))) .
'/lib/php/Plugin/FO_Plugin.php');
15 require_once(dirname(dirname(dirname(__DIR__))) .
'/lib/php/common-plugin.php');
16 require_once(dirname(dirname(dirname(__DIR__))) .
'/lib/php/common-menu.php');
35 private $assertCountBefore;
39 protected function setUp():
void
41 if (!class_exists(
'UploadPermissionPage',
false)) {
42 $GLOBALS[
'SysConf'] = [];
43 $GLOBALS[
'container'] =
new class {
44 public function get($name)
46 return new \stdClass();
49 require_once(__DIR__ .
'/../../ui/page/UploadPermissionPage.php');
52 $this->assertCountBefore = \Hamcrest\MatcherAssert::getCount();
60 $this->page = (new \ReflectionClass(
'UploadPermissionPage'))->newInstanceWithoutConstructor();
63 protected function tearDown():
void
65 $this->addToAssertionCount(\Hamcrest\MatcherAssert::getCount() - $this->assertCountBefore);
69 private function accessibleUploadList()
72 [
'upload_pk' => 11,
'name' =>
'owned-upload-a.zip'],
73 [
'upload_pk' => 12,
'name' =>
'owned-upload-b.zip'],
87 $unrelatedUploadId = 999;
89 $uploadPermDao = M::mock(UploadPermissionDao::class);
90 $uploadPermDao->shouldNotReceive(
'insertPermission');
91 Reflectory::setObjectsProperty($this->page,
'uploadPermDao', $uploadPermDao);
93 $this->expectException(\Exception::class);
94 $this->expectExceptionMessage(
'This upload is missing or inaccessible');
97 $this->accessibleUploadList());
109 $accessibleUploadId = 12;
112 $uploadPermDao = M::mock(UploadPermissionDao::class);
113 $uploadPermDao->shouldReceive(
'insertPermission')
114 ->withArgs([$accessibleUploadId, $groupId, $permission])->once();
115 Reflectory::setObjectsProperty($this->page,
'uploadPermDao', $uploadPermDao);
117 $this->page->insertPermission($groupId, $accessibleUploadId, $permission,
118 $this->accessibleUploadList());
129 $uploadPermDao = M::mock(UploadPermissionDao::class);
130 $uploadPermDao->shouldNotReceive(
'insertPermission');
131 Reflectory::setObjectsProperty($this->page,
'uploadPermDao', $uploadPermDao);
133 $this->expectException(\Exception::class);
134 $this->expectExceptionMessage(
'This upload is missing or inaccessible');
Contains the constants and helpers for authentication of user.
Test for UploadPermissionPage::insertPermission(), covering the broken upload membership check fix @r...
testRejectsWhenAccessibleListIsEmpty()
testRejectsUploadNotInAccessibleList()
testGrantsPermissionForUploadInAccessibleList()
#define PERM_WRITE
Read-Write permission.
#define PERM_ADMIN
Administrator.