77 */
88namespace OCA \Files_Sharing \Tests ;
99
10+ use OC \Core \AppInfo \ConfigLexicon ;
1011use OC \Files \Cache \Scanner ;
1112use OC \Files \FileInfo ;
1213use OC \Files \Filesystem ;
2122use OCP \Constants ;
2223use OCP \Files \Folder ;
2324use OCP \Files \IRootFolder ;
25+ use OCP \IAppConfig ;
2426use OCP \IConfig ;
2527use OCP \IDateTimeZone ;
2628use OCP \IGroupManager ;
3537use OCP \Share \IProviderFactory ;
3638use OCP \Share \IShare ;
3739use OCP \UserStatus \IManager as IUserStatusManager ;
40+ use PHPUnit \Framework \MockObject \MockObject ;
3841use Psr \Container \ContainerInterface ;
3942use Psr \Log \LoggerInterface ;
4043
@@ -50,11 +53,9 @@ class ApiTest extends TestCase {
5053
5154 private static $ tempStorage ;
5255
53- /** @var Folder */
54- private $ userFolder ;
55-
56- /** @var string */
57- private $ subsubfolder ;
56+ private Folder $ userFolder ;
57+ private string $ subsubfolder ;
58+ protected IAppConfig &MockObject $ appConfig ;
5859
5960 protected function setUp (): void {
6061 parent ::setUp ();
@@ -81,6 +82,8 @@ protected function setUp(): void {
8182 $ mount ->getStorage ()->getScanner ()->scan ('' , Scanner::SCAN_RECURSIVE );
8283
8384 $ this ->userFolder = \OC ::$ server ->getUserFolder (self ::TEST_FILES_SHARING_API_USER1 );
85+
86+ $ this ->appConfig = $ this ->createMock (IAppConfig::class);
8487 }
8588
8689 protected function tearDown (): void {
@@ -126,6 +129,7 @@ private function createOCS($userId) {
126129 Server::get (IURLGenerator::class),
127130 $ l ,
128131 $ config ,
132+ $ this ->appConfig ,
129133 $ appManager ,
130134 $ serverContainer ,
131135 $ userStatusManager ,
@@ -233,8 +237,12 @@ public function testCreateShareLink(): void {
233237
234238 /**
235239 * @group RoutingWeirdness
240+ * @dataProvider dataAllowFederationOnPublicShares
236241 */
237- public function testCreateShareLinkPublicUpload (): void {
242+ public function testCreateShareLinkPublicUpload (array $ appConfig , int $ permissions ): void {
243+ $ this ->appConfig ->method ('getValueBool ' )
244+ ->willReturnMap ([$ appConfig ]);
245+
238246 $ ocs = $ this ->createOCS (self ::TEST_FILES_SHARING_API_USER1 );
239247 $ result = $ ocs ->createShare ($ this ->folder , Constants::PERMISSION_ALL , IShare::TYPE_LINK , null , 'true ' );
240248 $ ocs ->cleanup ();
@@ -245,7 +253,7 @@ public function testCreateShareLinkPublicUpload(): void {
245253 | Constants::PERMISSION_CREATE
246254 | Constants::PERMISSION_UPDATE
247255 | Constants::PERMISSION_DELETE
248- | Constants:: PERMISSION_SHARE ,
256+ | $ permissions ,
249257 $ data ['permissions ' ]
250258 );
251259 $ this ->assertEmpty ($ data ['expiration ' ]);
@@ -1005,8 +1013,13 @@ public function testUpdateShare(): void {
10051013
10061014 /**
10071015 * @medium
1016+ * @dataProvider dataAllowFederationOnPublicShares
10081017 */
1009- public function testUpdateShareUpload (): void {
1018+ public function testUpdateShareUpload (array $ appConfig , int $ permissions ): void {
1019+ $ this ->appConfig ->method ('getValueBool ' )->willReturnMap ([
1020+ $ appConfig ,
1021+ ]);
1022+
10101023 $ node1 = $ this ->userFolder ->get ($ this ->folder );
10111024 $ share1 = $ this ->shareManager ->newShare ();
10121025 $ share1 ->setNode ($ node1 )
@@ -1026,14 +1039,21 @@ public function testUpdateShareUpload(): void {
10261039 | Constants::PERMISSION_CREATE
10271040 | Constants::PERMISSION_UPDATE
10281041 | Constants::PERMISSION_DELETE
1029- | Constants:: PERMISSION_SHARE ,
1042+ | $ permissions ,
10301043 $ share1 ->getPermissions ()
10311044 );
10321045
10331046 // cleanup
10341047 $ this ->shareManager ->deleteShare ($ share1 );
10351048 }
10361049
1050+ public static function dataAllowFederationOnPublicShares (): array {
1051+ return [
1052+ [['core ' , ConfigLexicon::SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES , false , false ], 0 ],
1053+ [['core ' , ConfigLexicon::SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES , false , true ], Constants::PERMISSION_SHARE ],
1054+ ];
1055+ }
1056+
10371057 /**
10381058 * @medium
10391059 */
0 commit comments