diff options
author | Morris Jobke <hey@morrisjobke.de> | 2020-05-29 21:35:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-29 21:35:57 +0200 |
commit | 555108dc65501ba08d0b70c05e0eaebd6379c4b1 (patch) | |
tree | a862562dc159c0f14178c9116d577e2304cbfc90 /build | |
parent | c31b2d6ce15a71b681eabadcc4fce6d0f98f5cb2 (diff) | |
download | nextcloud-server-555108dc65501ba08d0b70c05e0eaebd6379c4b1.tar.gz nextcloud-server-555108dc65501ba08d0b70c05e0eaebd6379c4b1.zip |
Revert "[stable18] Fix password changes in link and mail shares"
Diffstat (limited to 'build')
9 files changed, 11 insertions, 905 deletions
diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml index 79ffe58f6b6..27d7daa4818 100644 --- a/build/integration/config/behat.yml +++ b/build/integration/config/behat.yml @@ -65,7 +65,6 @@ default: - admin - admin regular_user_password: 123456 - - TalkContext setup: paths: - "%paths.base%/../setup_features" diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php index 20d5727a86c..03cdd58833e 100644 --- a/build/integration/features/bootstrap/BasicStructure.php +++ b/build/integration/features/bootstrap/BasicStructure.php @@ -46,7 +46,6 @@ trait BasicStructure { use Auth; use Download; - use Mail; use Trashbin; /** @var string */ diff --git a/build/integration/features/bootstrap/FakeSMTPHelper.php b/build/integration/features/bootstrap/FakeSMTPHelper.php deleted file mode 100644 index 9a64b6d31de..00000000000 --- a/build/integration/features/bootstrap/FakeSMTPHelper.php +++ /dev/null @@ -1,159 +0,0 @@ -<?php - -// Code below modified from https://github.com/axllent/fake-smtp/blob/f0856f8a0df6f4ca5a573cf31428c09ebc5b9ea3/fakeSMTP.php, -// which is under the MIT license (https://github.com/axllent/fake-smtp/blob/f0856f8a0df6f4ca5a573cf31428c09ebc5b9ea3/LICENSE) - -/** - * fakeSMTP - A PHP / inetd fake smtp server. - * Allows client<->server interaction - * The comunication is based upon the SMPT standards defined in http://www.lesnikowski.com/mail/Rfc/rfc2821.txt - */ - -class fakeSMTP { - public $logFile = false; - public $serverHello = 'fakeSMTP ESMTP PHP Mail Server Ready'; - - public function __construct($fd) { - $this->mail = []; - $this->mail['ipaddress'] = false; - $this->mail['emailSender'] = ''; - $this->mail['emailRecipients'] = []; - $this->mail['emailSubject'] = false; - $this->mail['rawEmail'] = false; - $this->mail['emailHeaders'] = false; - $this->mail['emailBody'] = false; - - $this->fd = $fd; - } - - public function receive() { - $hasValidFrom = false; - $hasValidTo = false; - $receivingData = false; - $header = true; - $this->reply('220 '.$this->serverHello); - $this->mail['ipaddress'] = $this->detectIP(); - while ($data = fgets($this->fd)) { - $data = preg_replace('@\r\n@', "\n", $data); - - if (!$receivingData) { - $this->log($data); - } - - if (!$receivingData && preg_match('/^MAIL FROM:\s?<(.*)>/i', $data, $match)) { - if (preg_match('/(.*)@\[.*\]/i', $match[1]) || $match[1] != '' || $this->validateEmail($match[1])) { - $this->mail['emailSender'] = $match[1]; - $this->reply('250 2.1.0 Ok'); - $hasValidFrom = true; - } else { - $this->reply('551 5.1.7 Bad sender address syntax'); - } - } elseif (!$receivingData && preg_match('/^RCPT TO:\s?<(.*)>/i', $data, $match)) { - if (!$hasValidFrom) { - $this->reply('503 5.5.1 Error: need MAIL command'); - } else { - if (preg_match('/postmaster@\[.*\]/i', $match[1]) || $this->validateEmail($match[1])) { - array_push($this->mail['emailRecipients'], $match[1]); - $this->reply('250 2.1.5 Ok'); - $hasValidTo = true; - } else { - $this->reply('501 5.1.3 Bad recipient address syntax '.$match[1]); - } - } - } elseif (!$receivingData && preg_match('/^RSET$/i', trim($data))) { - $this->reply('250 2.0.0 Ok'); - $hasValidFrom = false; - $hasValidTo = false; - } elseif (!$receivingData && preg_match('/^NOOP$/i', trim($data))) { - $this->reply('250 2.0.0 Ok'); - } elseif (!$receivingData && preg_match('/^VRFY (.*)/i', trim($data), $match)) { - $this->reply('250 2.0.0 '.$match[1]); - } elseif (!$receivingData && preg_match('/^DATA/i', trim($data))) { - if (!$hasValidTo) { - $this->reply('503 5.5.1 Error: need RCPT command'); - } else { - $this->reply('354 Ok Send data ending with <CRLF>.<CRLF>'); - $receivingData = true; - } - } elseif (!$receivingData && preg_match('/^(HELO|EHLO)/i', $data)) { - $this->reply('250 HELO '.$this->mail['ipaddress']); - } elseif (!$receivingData && preg_match('/^QUIT/i', trim($data))) { - break; - } elseif (!$receivingData) { - //~ $this->reply('250 Ok'); - $this->reply('502 5.5.2 Error: command not recognized'); - } elseif ($receivingData && $data == ".\n") { - /* Email Received, now let's look at it */ - $receivingData = false; - $this->reply('250 2.0.0 Ok: queued as '.$this->generateRandom(10)); - $splitmail = explode("\n\n", $this->mail['rawEmail'], 2); - if (count($splitmail) == 2) { - $this->mail['emailHeaders'] = $splitmail[0]; - $this->mail['emailBody'] = $splitmail[1]; - $headers = preg_replace("/ \s+/", ' ', preg_replace("/\n\s/", ' ', $this->mail['emailHeaders'])); - $headerlines = explode("\n", $headers); - for ($i=0; $i<count($headerlines); $i++) { - if (preg_match('/^Subject: (.*)/i', $headerlines[$i], $matches)) { - $this->mail['emailSubject'] = trim($matches[1]); - } - } - } else { - $this->mail['emailBody'] = $splitmail[0]; - } - set_time_limit(5); // Just run the exit to prevent open threads / abuse - } elseif ($receivingData) { - $this->mail['rawEmail'] .= $data; - } - } - /* Say good bye */ - $this->reply('221 2.0.0 Bye '.$this->mail['ipaddress']); - - fclose($this->fd); - } - - public function log($s) { - if ($this->logFile) { - file_put_contents($this->logFile, trim($s)."\n", FILE_APPEND); - } - } - - private function reply($s) { - $this->log("REPLY:$s"); - fwrite($this->fd, $s . "\r\n"); - } - - private function detectIP() { - $raw = explode(':', stream_socket_get_name($this->fd, true)); - return $raw[0]; - } - - private function validateEmail($email) { - return preg_match('/^[_a-z0-9-+]+(\.[_a-z0-9-+]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/', strtolower($email)); - } - - private function generateRandom($length=8) { - $password = ''; - $possible = '2346789BCDFGHJKLMNPQRTVWXYZ'; - $maxlength = strlen($possible); - $i = 0; - for ($i=0; $i < $length; $i++) { - $char = substr($possible, mt_rand(0, $maxlength-1), 1); - if (!strstr($password, $char)) { - $password .= $char; - } - } - return $password; - } -} - -$socket = stream_socket_server('tcp://127.0.0.1:2525', $errno, $errstr); -if (!$socket) { - exit(); -} - -while ($fd = stream_socket_accept($socket)) { - $fakeSMTP = new fakeSMTP($fd); - $fakeSMTP->receive(); -} - -fclose($socket); diff --git a/build/integration/features/bootstrap/Mail.php b/build/integration/features/bootstrap/Mail.php deleted file mode 100644 index d347636c8aa..00000000000 --- a/build/integration/features/bootstrap/Mail.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2020, Daniel Calviño Sánchez (danxuliu@gmail.com) - * - * @author Daniel Calviño Sánchez <danxuliu@gmail.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -trait Mail { - - // CommandLine trait is expected to be used in the class that uses this - // trait. - - /** - * @var string - */ - private $fakeSmtpServerPid; - - /** - * @AfterScenario - */ - public function killDummyMailServer() { - if (!$this->fakeSmtpServerPid) { - return; - } - - exec("kill " . $this->fakeSmtpServerPid); - - $this->invokingTheCommand('config:system:delete mail_smtpport'); - } - - /** - * @Given /^dummy mail server is listening$/ - */ - public function dummyMailServerIsListening() { - // Default smtpport (25) is restricted for regular users, so the - // FakeSMTP uses 2525 instead. - $this->invokingTheCommand('config:system:set mail_smtpport --value=2525 --type integer'); - - $this->fakeSmtpServerPid = exec("php features/bootstrap/FakeSMTPHelper.php >/dev/null 2>&1 & echo $!"); - } -} diff --git a/build/integration/features/bootstrap/Sharing.php b/build/integration/features/bootstrap/Sharing.php index fee8f7d2692..66b15436438 100644 --- a/build/integration/features/bootstrap/Sharing.php +++ b/build/integration/features/bootstrap/Sharing.php @@ -150,9 +150,11 @@ trait Sharing { } /** - * @Then /^last link share can be downloaded$/ + * @Then /^Public shared file "([^"]*)" can be downloaded$/ */ - public function lastLinkShareCanBeDownloaded() { + public function checkPublicSharedFile($filename) { + $client = new Client(); + $options = []; if (count($this->lastShareData->data->element) > 0){ $url = $this->lastShareData->data[0]->url; } @@ -164,23 +166,10 @@ trait Sharing { } /** - * @Then /^last share can be downloaded$/ + * @Then /^Public shared file "([^"]*)" with password "([^"]*)" can be downloaded$/ */ - public function lastShareCanBeDownloaded() { - if (count($this->lastShareData->data->element) > 0) { - $token = $this->lastShareData->data[0]->token; - } else { - $token = $this->lastShareData->data->token; - } - - $fullUrl = substr($this->baseUrl, 0, -4) . "index.php/s/" . $token . "/download"; - $this->checkDownload($fullUrl, null, 'text/plain'); - } - - /** - * @Then /^last share with password "([^"]*)" can be downloaded$/ - */ - public function lastShareWithPasswordCanBeDownloaded($password) { + public function checkPublicSharedFileWithPassword($filename, $password) { + $options = []; if (count($this->lastShareData->data->element) > 0){ $token = $this->lastShareData->data[0]->token; } diff --git a/build/integration/features/bootstrap/SharingContext.php b/build/integration/features/bootstrap/SharingContext.php index 1c2ce694e0f..cace64e4f8a 100644 --- a/build/integration/features/bootstrap/SharingContext.php +++ b/build/integration/features/bootstrap/SharingContext.php @@ -34,9 +34,6 @@ require __DIR__ . '/../../vendor/autoload.php'; class SharingContext implements Context, SnippetAcceptingContext { use Sharing; use AppConfiguration; - use CommandLine; - protected function resetAppConfigs() { - $this->modifyServerConfig('sharebymail', 'enforcePasswordProtection', 'no'); - } + protected function resetAppConfigs() {} } diff --git a/build/integration/features/bootstrap/TalkContext.php b/build/integration/features/bootstrap/TalkContext.php deleted file mode 100644 index bc61c87ebab..00000000000 --- a/build/integration/features/bootstrap/TalkContext.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2020, Daniel Calviño Sánchez (danxuliu@gmail.com) - * - * @author Daniel Calviño Sánchez <danxuliu@gmail.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -use Behat\Behat\Context\Context; - -class TalkContext implements Context { - - /** - * @BeforeFeature @Talk - * @BeforeScenario @Talk - */ - public static function skipTestsIfTalkIsNotInstalled() { - if (!TalkContext::isTalkInstalled()) { - throw new Exception('Talk needs to be installed to run features or scenarios tagged with @Talk'); - } - } - - /** - * @AfterScenario @Talk - */ - public static function disableTalk() { - TalkContext::runOcc(['app:disable', 'spreed']); - } - - private static function isTalkInstalled(): bool { - $appList = TalkContext::runOcc(['app:list']); - - return strpos($appList, 'spreed') !== false; - } - - private static function runOcc(array $args): string { - // Based on "runOcc" from CommandLine trait (which can not be used due - // to not being static and being already used in other sibling - // contexts). - $args = array_map(function ($arg) { - return escapeshellarg($arg); - }, $args); - $args[] = '--no-ansi --no-warnings'; - $args = implode(' ', $args); - - $descriptor = [ - 0 => ['pipe', 'r'], - 1 => ['pipe', 'w'], - 2 => ['pipe', 'w'], - ]; - $process = proc_open('php console.php ' . $args, $descriptor, $pipes, $ocPath = '../..'); - $lastStdOut = stream_get_contents($pipes[1]); - proc_close($process); - - return $lastStdOut; - } -} diff --git a/build/integration/sharing_features/sharing-v1-video-verification.feature b/build/integration/sharing_features/sharing-v1-video-verification.feature deleted file mode 100644 index e57ec9a9f98..00000000000 --- a/build/integration/sharing_features/sharing-v1-video-verification.feature +++ /dev/null @@ -1,504 +0,0 @@ -@Talk -Feature: sharing - Background: - Given using api version "1" - Given using old dav path - Given invoking occ with "app:enable spreed" - - Scenario: Creating a link share with send password by Talk - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk with different password in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded - - Scenario: Enabling send password by Talk with different password set after creation in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | password | secret | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded - - Scenario: Enabling send password by Talk with same password in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk with same password set after creation in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | password | secret | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk without updating password in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk without updating password set after creation in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | password | secret | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk with no password in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share can be downloaded - - Scenario: Enabling send password by Talk with no password removed after creation in a link share - Given user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - And Updating last share with - | password | | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share can be downloaded - - Scenario: Disabling send password by Talk without setting new password in a link share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk without setting new password set after creation in a link share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk setting same password in a link share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk setting same password set after creation in a link share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk setting new password in a link share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded - - Scenario: Disabling send password by Talk setting new password set after creation in a link share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 3 | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded - - - - - - Scenario: Creating a mail share with send password by Talk - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk with different password in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded - - Scenario: Enabling send password by Talk with different password set after creation in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | password | secret | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded - - Scenario: Enabling send password by Talk with same password in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk with same password set after creation in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | password | secret | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk without updating password in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk without updating password set after creation in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | password | secret | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Enabling send password by Talk with no password in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share can be downloaded - - Scenario: Enabling send password by Talk with no password removed after creation in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - And Updating last share with - | password | | - And Updating last share with - | sendPasswordByTalk | true | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share can be downloaded - - Scenario: Disabling send password by Talk without setting new password in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | sendPasswordByTalk | false | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk without setting new password set after creation in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | sendPasswordByTalk | false | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk setting same password in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk setting same password set after creation in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "400" - And the HTTP status code should be "200" - And last share with password "secret" can be downloaded - - Scenario: Disabling send password by Talk setting new password in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded - - Scenario: Disabling send password by Talk setting new password set after creation in a mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dummy@test.com | - And Updating last share with - | password | secret | - | sendPasswordByTalk | true | - And Updating last share with - | password | another secret | - | sendPasswordByTalk | false | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another secret" can be downloaded diff --git a/build/integration/sharing_features/sharing-v1.feature b/build/integration/sharing_features/sharing-v1.feature index 764cd857a3e..51a627dc6de 100644 --- a/build/integration/sharing_features/sharing-v1.feature +++ b/build/integration/sharing_features/sharing-v1.feature @@ -56,92 +56,6 @@ Feature: sharing Then the OCS status code should be "403" And the HTTP status code should be "401" - Scenario: Creating a new mail share - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dumy@test.com | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share can be downloaded - - Scenario: Creating a new mail share with password - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dumy@test.com | - | password | publicpw | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "publicpw" can be downloaded - - Scenario: Creating a new mail share with password when password protection is enforced - Given dummy mail server is listening - And As an "admin" - And parameter "enforcePasswordProtection" of app "sharebymail" is set to "yes" - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dumy@test.com | - | password | publicpw | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "publicpw" can be downloaded - - Scenario: Creating a new mail share and setting a password - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dumy@test.com | - And Updating last share with - | password | publicpw | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "publicpw" can be downloaded - - Scenario: Creating a new mail share and setting a password twice - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dumy@test.com | - And Updating last share with - | password | publicpw | - And Updating last share with - | password | another publicpw | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "another publicpw" can be downloaded - - Scenario: Creating a new mail share and setting the same password twice - Given dummy mail server is listening - And user "user0" exists - And As an "user0" - When creating a share with - | path | welcome.txt | - | shareType | 4 | - | shareWith | dumy@test.com | - And Updating last share with - | password | publicpw | - And Updating last share with - | password | publicpw | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And last share with password "publicpw" can be downloaded - Scenario: Creating a new public share Given user "user0" exists And As an "user0" @@ -150,7 +64,7 @@ Feature: sharing | shareType | 3 | Then the OCS status code should be "100" And the HTTP status code should be "200" - And last link share can be downloaded + And Public shared file "welcome.txt" can be downloaded Scenario: Creating a new public share with password Given user "user0" exists @@ -161,7 +75,7 @@ Feature: sharing | password | publicpw | Then the OCS status code should be "100" And the HTTP status code should be "200" - And last share with password "publicpw" can be downloaded + And Public shared file "welcome.txt" with password "publicpw" can be downloaded Scenario: Creating a new public share of a folder Given user "user0" exists @@ -194,7 +108,7 @@ Feature: sharing | expireDate | +3 days | Then the OCS status code should be "100" And the HTTP status code should be "200" - And last share with password "publicpw" can be downloaded + And Public shared file "welcome.txt" with password "publicpw" can be downloaded Scenario: Creating a new public share, updating its expiration date and getting its info Given user "user0" exists |