Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2020-11-16 19:46:37 +0300
committerGitHub <noreply@github.com>2020-11-16 19:46:37 +0300
commitcdbb2b3e4bfa815c591e46dd479a55500e7b26ad (patch)
treea5ca2df19209a87135b3dc08fa79d4745a45eec1
parentb14ec966c1d229e05f6fc0ecbe23d871afcc4392 (diff)
parent34a143b05f17ded514b617f6f7316daf101d424c (diff)
Merge pull request #24159 from nextcloud/backport/24069/stable20
[stable20] Fix default internal expiration date
-rw-r--r--build/integration/features/bootstrap/AppConfiguration.php13
-rw-r--r--build/integration/features/bootstrap/CapabilitiesContext.php22
-rw-r--r--build/integration/features/bootstrap/FederationContext.php4
-rw-r--r--build/integration/features/bootstrap/ShareesContext.php6
-rw-r--r--build/integration/features/bootstrap/SharingContext.php10
-rw-r--r--build/integration/sharing_features/sharing-v1.feature106
-rw-r--r--lib/private/Share20/Manager.php6
-rw-r--r--tests/lib/Share20/ManagerTest.php637
8 files changed, 627 insertions, 177 deletions
diff --git a/build/integration/features/bootstrap/AppConfiguration.php b/build/integration/features/bootstrap/AppConfiguration.php
index b893637ba6c..fe8308fd59b 100644
--- a/build/integration/features/bootstrap/AppConfiguration.php
+++ b/build/integration/features/bootstrap/AppConfiguration.php
@@ -72,6 +72,19 @@ trait AppConfiguration {
}
}
+ /**
+ * @param string $app
+ * @param string $parameter
+ * @param string $value
+ */
+ protected function deleteServerConfig($app, $parameter) {
+ $this->sendingTo('DELETE', "/apps/testing/api/v1/app/{$app}/{$parameter}");
+ $this->theHTTPStatusCodeShouldBe('200');
+ if ($this->apiVersion === 1) {
+ $this->theOCSStatusCodeShouldBe('100');
+ }
+ }
+
protected function setStatusTestingApp($enabled) {
$this->sendingTo(($enabled ? 'post' : 'delete'), '/cloud/apps/testing');
$this->theHTTPStatusCodeShouldBe('200');
diff --git a/build/integration/features/bootstrap/CapabilitiesContext.php b/build/integration/features/bootstrap/CapabilitiesContext.php
index 19da7bc62c1..7d450fa9cd5 100644
--- a/build/integration/features/bootstrap/CapabilitiesContext.php
+++ b/build/integration/features/bootstrap/CapabilitiesContext.php
@@ -61,16 +61,16 @@ class CapabilitiesContext implements Context, SnippetAcceptingContext {
}
protected function resetAppConfigs() {
- $this->modifyServerConfig('core', 'shareapi_enabled', 'yes');
- $this->modifyServerConfig('core', 'shareapi_allow_links', 'yes');
- $this->modifyServerConfig('core', 'shareapi_allow_public_upload', 'yes');
- $this->modifyServerConfig('core', 'shareapi_allow_resharing', 'yes');
- $this->modifyServerConfig('files_sharing', 'outgoing_server2server_share_enabled', 'yes');
- $this->modifyServerConfig('files_sharing', 'incoming_server2server_share_enabled', 'yes');
- $this->modifyServerConfig('core', 'shareapi_enforce_links_password', 'no');
- $this->modifyServerConfig('core', 'shareapi_allow_public_notification', 'no');
- $this->modifyServerConfig('core', 'shareapi_default_expire_date', 'no');
- $this->modifyServerConfig('core', 'shareapi_enforce_expire_date', 'no');
- $this->modifyServerConfig('core', 'shareapi_allow_group_sharing', 'yes');
+ $this->deleteServerConfig('core', 'shareapi_enabled');
+ $this->deleteServerConfig('core', 'shareapi_allow_links');
+ $this->deleteServerConfig('core', 'shareapi_allow_public_upload');
+ $this->deleteServerConfig('core', 'shareapi_allow_resharing');
+ $this->deleteServerConfig('files_sharing', 'outgoing_server2server_share_enabled');
+ $this->deleteServerConfig('files_sharing', 'incoming_server2server_share_enabled');
+ $this->deleteServerConfig('core', 'shareapi_enforce_links_password');
+ $this->deleteServerConfig('core', 'shareapi_allow_public_notification');
+ $this->deleteServerConfig('core', 'shareapi_default_expire_date');
+ $this->deleteServerConfig('core', 'shareapi_enforce_expire_date');
+ $this->deleteServerConfig('core', 'shareapi_allow_group_sharing');
}
}
diff --git a/build/integration/features/bootstrap/FederationContext.php b/build/integration/features/bootstrap/FederationContext.php
index 13e0de46187..e119f950a46 100644
--- a/build/integration/features/bootstrap/FederationContext.php
+++ b/build/integration/features/bootstrap/FederationContext.php
@@ -97,7 +97,7 @@ class FederationContext implements Context, SnippetAcceptingContext {
}
protected function resetAppConfigs() {
- $this->modifyServerConfig('files_sharing', 'incoming_server2server_group_share_enabled', 'no');
- $this->modifyServerConfig('files_sharing', 'outgoing_server2server_group_share_enabled', 'no');
+ $this->deleteServerConfig('files_sharing', 'incoming_server2server_group_share_enabled');
+ $this->deleteServerConfig('files_sharing', 'outgoing_server2server_group_share_enabled');
}
}
diff --git a/build/integration/features/bootstrap/ShareesContext.php b/build/integration/features/bootstrap/ShareesContext.php
index 64896a82009..adfc63c0634 100644
--- a/build/integration/features/bootstrap/ShareesContext.php
+++ b/build/integration/features/bootstrap/ShareesContext.php
@@ -36,8 +36,8 @@ class ShareesContext implements Context, SnippetAcceptingContext {
use AppConfiguration;
protected function resetAppConfigs() {
- $this->modifyServerConfig('core', 'shareapi_only_share_with_group_members', 'no');
- $this->modifyServerConfig('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes');
- $this->modifyServerConfig('core', 'shareapi_allow_group_sharing', 'yes');
+ $this->deleteServerConfig('core', 'shareapi_only_share_with_group_members');
+ $this->deleteServerConfig('core', 'shareapi_allow_share_dialog_user_enumeration');
+ $this->deleteServerConfig('core', 'shareapi_allow_group_sharing');
}
}
diff --git a/build/integration/features/bootstrap/SharingContext.php b/build/integration/features/bootstrap/SharingContext.php
index 447b8f1c024..b1a4c1aa48b 100644
--- a/build/integration/features/bootstrap/SharingContext.php
+++ b/build/integration/features/bootstrap/SharingContext.php
@@ -37,7 +37,13 @@ class SharingContext implements Context, SnippetAcceptingContext {
use CommandLine;
protected function resetAppConfigs() {
- $this->modifyServerConfig('core', 'shareapi_default_permissions', '31');
- $this->modifyServerConfig('sharebymail', 'enforcePasswordProtection', 'no');
+ $this->deleteServerConfig('core', 'shareapi_default_permissions');
+ $this->deleteServerConfig('core', 'shareapi_default_internal_expire_date');
+ $this->deleteServerConfig('core', 'shareapi_internal_expire_after_n_days');
+ $this->deleteServerConfig('core', 'internal_defaultExpDays');
+ $this->deleteServerConfig('core', 'shareapi_default_expire_date');
+ $this->deleteServerConfig('core', 'shareapi_expire_after_n_days');
+ $this->deleteServerConfig('core', 'link_defaultExpDays');
+ $this->deleteServerConfig('sharebymail', 'enforcePasswordProtection');
}
}
diff --git a/build/integration/sharing_features/sharing-v1.feature b/build/integration/sharing_features/sharing-v1.feature
index 38eb2d8a812..b5b4f5341af 100644
--- a/build/integration/sharing_features/sharing-v1.feature
+++ b/build/integration/sharing_features/sharing-v1.feature
@@ -391,6 +391,112 @@ Feature: sharing
And Share fields of last share match with
| permissions | 7 |
+ Scenario: Creating a new internal share with default expiration date
+ Given user "user0" exists
+ And user "user1" exists
+ And As an "user0"
+ And parameter "shareapi_default_internal_expire_date" of app "core" is set to "yes"
+ And parameter "shareapi_internal_expire_after_n_days" of app "core" is set to "3"
+ When creating a share with
+ | path | welcome.txt |
+ | shareWith | user1 |
+ | shareType | 0 |
+ And the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Getting info of last share
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Share fields of last share match with
+ | expiration | +3 days |
+
+ Scenario: Creating a new internal share with relaxed default expiration date
+ Given user "user0" exists
+ And user "user1" exists
+ And As an "user0"
+ And parameter "shareapi_default_internal_expire_date" of app "core" is set to "yes"
+ And parameter "shareapi_internal_expire_after_n_days" of app "core" is set to "3"
+ And parameter "internal_defaultExpDays" of app "core" is set to "1"
+ When creating a share with
+ | path | welcome.txt |
+ | shareWith | user1 |
+ | shareType | 0 |
+ And the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Getting info of last share
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Share fields of last share match with
+ | expiration | +1 days |
+
+ Scenario: Creating a new internal share with relaxed default expiration date too large
+ Given user "user0" exists
+ And user "user1" exists
+ And As an "user0"
+ And parameter "shareapi_default_internal_expire_date" of app "core" is set to "yes"
+ And parameter "shareapi_internal_expire_after_n_days" of app "core" is set to "3"
+ And parameter "internal_defaultExpDays" of app "core" is set to "10"
+ When creating a share with
+ | path | welcome.txt |
+ | shareWith | user1 |
+ | shareType | 0 |
+ And the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Getting info of last share
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Share fields of last share match with
+ | expiration | +3 days |
+
+ Scenario: Creating a new link share with default expiration date
+ Given user "user0" exists
+ And As an "user0"
+ And parameter "shareapi_default_expire_date" of app "core" is set to "yes"
+ And parameter "shareapi_expire_after_n_days" of app "core" is set to "3"
+ When creating a share with
+ | path | welcome.txt |
+ | shareType | 3 |
+ And the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Getting info of last share
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Share fields of last share match with
+ | expiration | +3 days |
+
+ Scenario: Creating a new link share with relaxed default expiration date
+ Given user "user0" exists
+ And As an "user0"
+ And parameter "shareapi_default_expire_date" of app "core" is set to "yes"
+ And parameter "shareapi_expire_after_n_days" of app "core" is set to "3"
+ And parameter "link_defaultExpDays" of app "core" is set to "1"
+ When creating a share with
+ | path | welcome.txt |
+ | shareType | 3 |
+ And the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Getting info of last share
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Share fields of last share match with
+ | expiration | +1 days |
+
+ Scenario: Creating a new link share with relaxed default expiration date too large
+ Given user "user0" exists
+ And As an "user0"
+ And parameter "shareapi_default_expire_date" of app "core" is set to "yes"
+ And parameter "shareapi_expire_after_n_days" of app "core" is set to "3"
+ And parameter "link_defaultExpDays" of app "core" is set to "10"
+ When creating a share with
+ | path | welcome.txt |
+ | shareType | 3 |
+ And the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Getting info of last share
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And Share fields of last share match with
+ | expiration | +3 days |
+
Scenario: getting all shares of a user using that user
Given user "user0" exists
And user "user1" exists
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 1b1818a6e48..fad18dd2859 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -409,9 +409,9 @@ class Manager implements IManager {
$expirationDate = new \DateTime();
$expirationDate->setTime(0,0,0);
- $days = (int)$this->config->getAppValue('core', 'internal_defaultExpDays', $this->shareApiLinkDefaultExpireDays());
- if ($days > $this->shareApiLinkDefaultExpireDays()) {
- $days = $this->shareApiLinkDefaultExpireDays();
+ $days = (int)$this->config->getAppValue('core', 'internal_defaultExpDays', (string)$this->shareApiInternalDefaultExpireDays());
+ if ($days > $this->shareApiInternalDefaultExpireDays()) {
+ $days = $this->shareApiInternalDefaultExpireDays();
}
$expirationDate->add(new \DateInterval('P'.$days.'D'));
}
diff --git a/tests/lib/Share20/ManagerTest.php b/tests/lib/Share20/ManagerTest.php
index 58f96c418b8..0e2b244fdc9 100644
--- a/tests/lib/Share20/ManagerTest.php
+++ b/tests/lib/Share20/ManagerTest.php
@@ -764,11 +764,294 @@ class ManagerTest extends \Test\TestCase {
self::invokePrivate($this->manager, 'generalCreateChecks', [$share]);
}
-
- public function testvalidateExpirationDateInPast() {
+ public function testValidateExpirationDateInternalInPast() {
$this->expectException(\OCP\Share\Exceptions\GenericShareException::class);
$this->expectExceptionMessage('Expiration date is in the past');
+ // Expire date in the past
+ $past = new \DateTime();
+ $past->sub(new \DateInterval('P1D'));
+
+ $share = $this->manager->newShare();
+ $share->setExpirationDate($past);
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+ }
+
+ public function testValidateExpirationDateInternalEnforceButNotSet() {
+ $this->expectException(\InvalidArgumentException::class);
+ $this->expectExceptionMessage('Expiration date is enforced');
+
+ $share = $this->manager->newShare();
+ $share->setProviderId('foo')->setId('bar');
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_enforce_internal_expire_date', 'no', 'yes'],
+ ]);
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+ }
+
+ public function testValidateExpirationDateInternalEnforceButNotEnabledAndNotSet() {
+ $share = $this->manager->newShare();
+ $share->setProviderId('foo')->setId('bar');
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_enforce_internal_expire_date', 'no', 'yes'],
+ ]);
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertNull($share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalEnforceButNotSetNewShare() {
+ $share = $this->manager->newShare();
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_enforce_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_internal_expire_after_n_days', '7', '3'],
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ['core', 'internal_defaultExpDays', '3', '3'],
+ ]);
+
+ $expected = new \DateTime();
+ $expected->setTime(0,0,0);
+ $expected->add(new \DateInterval('P3D'));
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertNotNull($share->getExpirationDate());
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalEnforceRelaxedDefaultButNotSetNewShare() {
+ $share = $this->manager->newShare();
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_enforce_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_internal_expire_after_n_days', '7', '3'],
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ['core', 'internal_defaultExpDays', '3', '1'],
+ ]);
+
+ $expected = new \DateTime();
+ $expected->setTime(0,0,0);
+ $expected->add(new \DateInterval('P1D'));
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertNotNull($share->getExpirationDate());
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalEnforceTooFarIntoFuture() {
+ $this->expectException(\OCP\Share\Exceptions\GenericShareException::class);
+ $this->expectExceptionMessage('Can’t set expiration date more than 3 days in the future');
+
+ $future = new \DateTime();
+ $future->add(new \DateInterval('P7D'));
+
+ $share = $this->manager->newShare();
+ $share->setExpirationDate($future);
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_enforce_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_internal_expire_after_n_days', '7', '3'],
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ]);
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+ }
+
+ public function testValidateExpirationDateInternalEnforceValid() {
+ $future = new \DateTime();
+ $future->add(new \DateInterval('P2D'));
+ $future->setTime(1,2,3);
+
+ $expected = clone $future;
+ $expected->setTime(0,0,0);
+
+ $share = $this->manager->newShare();
+ $share->setExpirationDate($future);
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_enforce_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_internal_expire_after_n_days', '7', '3'],
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ]);
+
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($future) {
+ return $data['expirationDate'] == $future;
+ }));
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalNoDefault() {
+ $date = new \DateTime();
+ $date->add(new \DateInterval('P5D'));
+ $date->setTime(1,2,3);
+
+ $expected = clone $date;
+ $expected->setTime(0,0,0);
+
+ $share = $this->manager->newShare();
+ $share->setExpirationDate($date);
+
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
+ return $data['expirationDate'] == $expected && $data['passwordSet'] === false;
+ }));
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalNoDateNoDefault() {
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) {
+ return $data['expirationDate'] === null && $data['passwordSet'] === true;
+ }));
+
+ $share = $this->manager->newShare();
+ $share->setPassword('password');
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertNull($share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalNoDateDefault() {
+ $share = $this->manager->newShare();
+
+ $expected = new \DateTime();
+ $expected->add(new \DateInterval('P3D'));
+ $expected->setTime(0,0,0);
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_internal_expire_after_n_days', '7', '3'],
+ ['core', 'internal_defaultExpDays', '3', '3'],
+ ]);
+
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
+ return $data['expirationDate'] == $expected;
+ }));
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalDefault() {
+ $future = new \DateTime();
+ $future->add(new \DateInterval('P5D'));
+ $future->setTime(1,2,3);
+
+ $expected = clone $future;
+ $expected->setTime(0,0,0);
+
+ $share = $this->manager->newShare();
+ $share->setExpirationDate($future);
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_internal_expire_after_n_days', '7', '3'],
+ ['core', 'internal_defaultExpDays', '3', '1'],
+ ]);
+
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
+ return $data['expirationDate'] == $expected;
+ }));
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalHookModification() {
+ $nextWeek = new \DateTime();
+ $nextWeek->add(new \DateInterval('P7D'));
+ $nextWeek->setTime(0,0,0);
+
+ $save = clone $nextWeek;
+
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->willReturnCallback(function ($data) {
+ $data['expirationDate']->sub(new \DateInterval('P2D'));
+ });
+
+ $share = $this->manager->newShare();
+ $share->setExpirationDate($nextWeek);
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $save->sub(new \DateInterval('P2D'));
+ $this->assertEquals($save, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInternalHookException() {
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('Invalid date!');
+
+ $nextWeek = new \DateTime();
+ $nextWeek->add(new \DateInterval('P7D'));
+ $nextWeek->setTime(0,0,0);
+
+ $share = $this->manager->newShare();
+ $share->setExpirationDate($nextWeek);
+
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->willReturnCallback(function ($data) {
+ $data['accepted'] = false;
+ $data['message'] = 'Invalid date!';
+ });
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+ }
+
+ public function testValidateExpirationDateInternalExistingShareNoDefault() {
+ $share = $this->manager->newShare();
+
+ $share->setId('42')->setProviderId('foo');
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_default_internal_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_internal_expire_after_n_days', '7', '6'],
+ ]);
+
+ self::invokePrivate($this->manager, 'validateExpirationDateInternal', [$share]);
+
+ $this->assertEquals(null, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateInPast() {
+ $this->expectException(\OCP\Share\Exceptions\GenericShareException::class);
+ $this->expectExceptionMessage('Expiration date is in the past');
// Expire date in the past
$past = new \DateTime();
@@ -780,8 +1063,7 @@ class ManagerTest extends \Test\TestCase {
self::invokePrivate($this->manager, 'validateExpirationDate', [$share]);
}
-
- public function testvalidateExpirationDateEnforceButNotSet() {
+ public function testValidateExpirationDateEnforceButNotSet() {
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('Expiration date is enforced');
@@ -797,7 +1079,7 @@ class ManagerTest extends \Test\TestCase {
self::invokePrivate($this->manager, 'validateExpirationDate', [$share]);
}
- public function testvalidateExpirationDateEnforceButNotEnabledAndNotSet() {
+ public function testValidateExpirationDateEnforceButNotEnabledAndNotSet() {
$share = $this->manager->newShare();
$share->setProviderId('foo')->setId('bar');
@@ -811,7 +1093,7 @@ class ManagerTest extends \Test\TestCase {
$this->assertNull($share->getExpirationDate());
}
- public function testvalidateExpirationDateEnforceButNotSetNewShare() {
+ public function testValidateExpirationDateEnforceButNotSetNewShare() {
$share = $this->manager->newShare();
$this->config->method('getAppValue')
@@ -832,8 +1114,31 @@ class ManagerTest extends \Test\TestCase {
$this->assertEquals($expected, $share->getExpirationDate());
}
- public function testvalidateExpirationDateEnforceToFarIntoFuture() {
- // Expire date in the past
+ public function testValidateExpirationDateEnforceRelaxedDefaultButNotSetNewShare() {
+ $share = $this->manager->newShare();
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_enforce_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_expire_after_n_days', '7', '3'],
+ ['core', 'shareapi_default_expire_date', 'no', 'yes'],
+ ['core', 'link_defaultExpDays', 3, '1'],
+ ]);
+
+ $expected = new \DateTime();
+ $expected->setTime(0,0,0);
+ $expected->add(new \DateInterval('P1D'));
+
+ self::invokePrivate($this->manager, 'validateExpirationDate', [$share]);
+
+ $this->assertNotNull($share->getExpirationDate());
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateEnforceTooFarIntoFuture() {
+ $this->expectException(\OCP\Share\Exceptions\GenericShareException::class);
+ $this->expectExceptionMessage('Can’t set expiration date more than 3 days in the future');
+
$future = new \DateTime();
$future->add(new \DateInterval('P7D'));
@@ -844,26 +1149,19 @@ class ManagerTest extends \Test\TestCase {
->willReturnMap([
['core', 'shareapi_enforce_expire_date', 'no', 'yes'],
['core', 'shareapi_expire_after_n_days', '7', '3'],
+ ['core', 'shareapi_default_expire_date', 'no', 'yes'],
]);
- try {
- self::invokePrivate($this->manager, 'validateExpirationDate', [$share]);
- $this->addToAssertionCount(1);
- } catch (\OCP\Share\Exceptions\GenericShareException $e) {
- $this->assertEquals('Cannot set expiration date more than 3 days in the future', $e->getMessage());
- $this->assertEquals('Cannot set expiration date more than 3 days in the future', $e->getHint());
- $this->assertEquals(404, $e->getCode());
- }
+ self::invokePrivate($this->manager, 'validateExpirationDate', [$share]);
}
- public function testvalidateExpirationDateEnforceValid() {
- // Expire date in the past
+ public function testValidateExpirationDateEnforceValid() {
$future = new \DateTime();
$future->add(new \DateInterval('P2D'));
- $future->setTime(0,0,0);
+ $future->setTime(1,2,3);
$expected = clone $future;
- $future->setTime(1,2,3);
+ $expected->setTime(0,0,0);
$share = $this->manager->newShare();
$share->setExpirationDate($future);
@@ -872,11 +1170,12 @@ class ManagerTest extends \Test\TestCase {
->willReturnMap([
['core', 'shareapi_enforce_expire_date', 'no', 'yes'],
['core', 'shareapi_expire_after_n_days', '7', '3'],
+ ['core', 'shareapi_default_expire_date', 'no', 'yes'],
]);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
- \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListner, 'listener');
- $hookListner->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($future) {
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($future) {
return $data['expirationDate'] == $future;
}));
@@ -885,9 +1184,10 @@ class ManagerTest extends \Test\TestCase {
$this->assertEquals($expected, $share->getExpirationDate());
}
- public function testvalidateExpirationDateNoDateNoDefaultNull() {
+ public function testValidateExpirationDateNoDefault() {
$date = new \DateTime();
$date->add(new \DateInterval('P5D'));
+ $date->setTime(1,2,3);
$expected = clone $date;
$expected->setTime(0,0,0);
@@ -895,9 +1195,9 @@ class ManagerTest extends \Test\TestCase {
$share = $this->manager->newShare();
$share->setExpirationDate($date);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
- \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListner, 'listener');
- $hookListner->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
return $data['expirationDate'] == $expected && $data['passwordSet'] === false;
}));
@@ -906,10 +1206,10 @@ class ManagerTest extends \Test\TestCase {
$this->assertEquals($expected, $share->getExpirationDate());
}
- public function testvalidateExpirationDateNoDateNoDefault() {
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
- \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListner, 'listener');
- $hookListner->expects($this->once())->method('listener')->with($this->callback(function ($data) {
+ public function testValidateExpirationDateNoDateNoDefault() {
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) {
return $data['expirationDate'] === null && $data['passwordSet'] === true;
}));
@@ -921,12 +1221,38 @@ class ManagerTest extends \Test\TestCase {
$this->assertNull($share->getExpirationDate());
}
- public function testvalidateExpirationDateNoDateDefault() {
+ public function testValidateExpirationDateNoDateDefault() {
+ $share = $this->manager->newShare();
+
+ $expected = new \DateTime();
+ $expected->add(new \DateInterval('P3D'));
+ $expected->setTime(0,0,0);
+
+ $this->config->method('getAppValue')
+ ->willReturnMap([
+ ['core', 'shareapi_default_expire_date', 'no', 'yes'],
+ ['core', 'shareapi_expire_after_n_days', '7', '3'],
+ ['core', 'link_defaultExpDays', 3, '3'],
+ ]);
+
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
+ return $data['expirationDate'] == $expected;
+ }));
+
+ self::invokePrivate($this->manager, 'validateExpirationDate', [$share]);
+
+ $this->assertEquals($expected, $share->getExpirationDate());
+ }
+
+ public function testValidateExpirationDateDefault() {
$future = new \DateTime();
- $future->add(new \DateInterval('P3D'));
- $future->setTime(0,0,0);
+ $future->add(new \DateInterval('P5D'));
+ $future->setTime(1,2,3);
$expected = clone $future;
+ $expected->setTime(0,0,0);
$share = $this->manager->newShare();
$share->setExpirationDate($future);
@@ -935,11 +1261,12 @@ class ManagerTest extends \Test\TestCase {
->willReturnMap([
['core', 'shareapi_default_expire_date', 'no', 'yes'],
['core', 'shareapi_expire_after_n_days', '7', '3'],
+ ['core', 'link_defaultExpDays', 3, '1'],
]);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
- \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListner, 'listener');
- $hookListner->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->with($this->callback(function ($data) use ($expected) {
return $data['expirationDate'] == $expected;
}));
@@ -955,9 +1282,9 @@ class ManagerTest extends \Test\TestCase {
$save = clone $nextWeek;
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
- \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListner, 'listener');
- $hookListner->expects($this->once())->method('listener')->willReturnCallback(function ($data) {
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->willReturnCallback(function ($data) {
$data['expirationDate']->sub(new \DateInterval('P2D'));
});
@@ -970,7 +1297,6 @@ class ManagerTest extends \Test\TestCase {
$this->assertEquals($save, $share->getExpirationDate());
}
-
public function testValidateExpirationDateHookException() {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Invalid date!');
@@ -982,9 +1308,9 @@ class ManagerTest extends \Test\TestCase {
$share = $this->manager->newShare();
$share->setExpirationDate($nextWeek);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
- \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListner, 'listener');
- $hookListner->expects($this->once())->method('listener')->willReturnCallback(function ($data) {
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['listener'])->getMock();
+ \OCP\Util::connectHook('\OC\Share', 'verifyExpirationDate', $hookListener, 'listener');
+ $hookListener->expects($this->once())->method('listener')->willReturnCallback(function ($data) {
$data['accepted'] = false;
$data['message'] = 'Invalid date!';
});
@@ -1008,7 +1334,6 @@ class ManagerTest extends \Test\TestCase {
$this->assertEquals(null, $share->getExpirationDate());
}
-
public function testUserCreateChecksShareWithGroupMembersOnlyDifferentGroups() {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Sharing is only allowed with group members');
@@ -2606,16 +2931,16 @@ class ManagerTest extends \Test\TestCase {
->with($share)
->willReturn($share);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
$this->rootFolder->method('getUserFolder')->with('newUser')->willReturnSelf();
$this->rootFolder->method('getRelativePath')->with('/newUser/files/myPath')->willReturn('/myPath');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner2, 'post');
- $hookListner2->expects($this->once())->method('post')->with([
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener2, 'post');
+ $hookListener2->expects($this->once())->method('post')->with([
'itemType' => 'file',
'itemSource' => 100,
'shareType' => IShare::TYPE_USER,
@@ -2663,13 +2988,13 @@ class ManagerTest extends \Test\TestCase {
->with($share)
->willReturn($share);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -2725,18 +3050,18 @@ class ManagerTest extends \Test\TestCase {
->with($share)
->willReturn($share);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->once())->method('post')->with([
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->once())->method('post')->with([
'itemType' => 'file',
'itemSource' => 100,
'date' => $tomorrow,
'uidOwner' => 'owner',
]);
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->once())->method('post')->with([
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->once())->method('post')->with([
'itemType' => 'file',
'itemSource' => 100,
'uidOwner' => 'owner',
@@ -2744,9 +3069,9 @@ class ManagerTest extends \Test\TestCase {
'disabled' => false,
]);
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
@@ -2806,17 +3131,17 @@ class ManagerTest extends \Test\TestCase {
$this->defaultProvider->expects($this->never())
->method('update');
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -2875,13 +3200,13 @@ class ManagerTest extends \Test\TestCase {
->with($share, 'password')
->willReturn($share);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->once())->method('post')->with([
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->once())->method('post')->with([
'itemType' => 'file',
'itemSource' => 100,
'uidOwner' => 'owner',
@@ -2889,9 +3214,9 @@ class ManagerTest extends \Test\TestCase {
'disabled' => false,
]);
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -2953,13 +3278,13 @@ class ManagerTest extends \Test\TestCase {
->with($share, 'password')
->willReturn($share);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->once())->method('post')->with([
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->once())->method('post')->with([
'itemType' => 'file',
'itemSource' => 100,
'uidOwner' => 'owner',
@@ -2967,9 +3292,9 @@ class ManagerTest extends \Test\TestCase {
'disabled' => false,
]);
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -3036,13 +3361,13 @@ class ManagerTest extends \Test\TestCase {
->with($share, 'password')
->willReturn($share);
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->once())->method('post')->with([
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->once())->method('post')->with([
'itemType' => 'file',
'itemSource' => 100,
'uidOwner' => 'owner',
@@ -3050,9 +3375,9 @@ class ManagerTest extends \Test\TestCase {
'disabled' => false,
]);
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -3113,17 +3438,17 @@ class ManagerTest extends \Test\TestCase {
$this->defaultProvider->expects($this->never())
->method('update');
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -3185,17 +3510,17 @@ class ManagerTest extends \Test\TestCase {
$this->defaultProvider->expects($this->never())
->method('update');
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -3257,17 +3582,17 @@ class ManagerTest extends \Test\TestCase {
$this->defaultProvider->expects($this->never())
->method('update');
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -3334,17 +3659,17 @@ class ManagerTest extends \Test\TestCase {
$this->defaultProvider->expects($this->never())
->method('update');
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -3410,17 +3735,17 @@ class ManagerTest extends \Test\TestCase {
$this->defaultProvider->expects($this->never())
->method('update');
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}
@@ -3484,17 +3809,17 @@ class ManagerTest extends \Test\TestCase {
$this->defaultProvider->expects($this->never())
->method('update');
- $hookListner = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListner, 'post');
- $hookListner->expects($this->never())->method('post');
+ $hookListener = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_set_expiration_date', $hookListener, 'post');
+ $hookListener->expects($this->never())->method('post');
- $hookListner2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListner2, 'post');
- $hookListner2->expects($this->never())->method('post');
+ $hookListener2 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_password', $hookListener2, 'post');
+ $hookListener2->expects($this->never())->method('post');
- $hookListner3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
- \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListner3, 'post');
- $hookListner3->expects($this->never())->method('post');
+ $hookListener3 = $this->getMockBuilder('Dummy')->setMethods(['post'])->getMock();
+ \OCP\Util::connectHook('OCP\Share', 'post_update_permissions', $hookListener3, 'post');
+ $hookListener3->expects($this->never())->method('post');
$manager->updateShare($share);
}