Revert "Add integration test for trashbin"
This commit is contained in:
parent
96ea85d01d
commit
4a9ce18ced
10
.drone.yml
10
.drone.yml
|
@ -423,15 +423,6 @@ pipeline:
|
||||||
when:
|
when:
|
||||||
matrix:
|
matrix:
|
||||||
TESTS: integration-ldap-features
|
TESTS: integration-ldap-features
|
||||||
integration-trashbin:
|
|
||||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
|
||||||
commands:
|
|
||||||
- ./occ maintenance:install --admin-pass=admin
|
|
||||||
- cd build/integration
|
|
||||||
- ./run.sh features/trashbin.feature
|
|
||||||
when:
|
|
||||||
matrix:
|
|
||||||
TESTS: integration-trashbin
|
|
||||||
nodb-codecov:
|
nodb-codecov:
|
||||||
image: nextcloudci/php7.0:php7.0-7
|
image: nextcloudci/php7.0:php7.0-7
|
||||||
commands:
|
commands:
|
||||||
|
@ -500,7 +491,6 @@ matrix:
|
||||||
- TESTS: integration-filesdrop-features
|
- TESTS: integration-filesdrop-features
|
||||||
- TESTS: integration-transfer-ownership-features
|
- TESTS: integration-transfer-ownership-features
|
||||||
- TESTS: integration-ldap-features
|
- TESTS: integration-ldap-features
|
||||||
- TESTS: integration-trashbin
|
|
||||||
- TESTS: jsunit
|
- TESTS: jsunit
|
||||||
- TESTS: check-autoloader
|
- TESTS: check-autoloader
|
||||||
- TESTS: app-check-code
|
- TESTS: app-check-code
|
||||||
|
|
|
@ -35,7 +35,6 @@ require __DIR__ . '/../../vendor/autoload.php';
|
||||||
trait BasicStructure {
|
trait BasicStructure {
|
||||||
|
|
||||||
use Auth;
|
use Auth;
|
||||||
use Trashbin;
|
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
private $currentUser = '';
|
private $currentUser = '';
|
||||||
|
@ -354,6 +353,16 @@ trait BasicStructure {
|
||||||
fclose($file);
|
fclose($file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @When User :user empties trashbin
|
||||||
|
* @param string $user
|
||||||
|
*/
|
||||||
|
public function emptyTrashbin($user) {
|
||||||
|
$body = new \Behat\Gherkin\Node\TableNode([['allfiles', 'true'], ['dir', '%2F']]);
|
||||||
|
$this->sendingToWithDirectUrl('POST', "/index.php/apps/files_trashbin/ajax/delete.php", $body);
|
||||||
|
$this->theHTTPStatusCodeShouldBe('200');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @When Sleep for :seconds seconds
|
* @When Sleep for :seconds seconds
|
||||||
* @param int $seconds
|
* @param int $seconds
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* @author Vincent Petry <pvince81@owncloud.com>
|
|
||||||
*
|
|
||||||
* @copyright Copyright (c) 2017, ownCloud GmbH.
|
|
||||||
* @license AGPL-3.0
|
|
||||||
*
|
|
||||||
* This code is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License, version 3,
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* 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, version 3,
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
use GuzzleHttp\Client;
|
|
||||||
use GuzzleHttp\Message\ResponseInterface;
|
|
||||||
|
|
||||||
require __DIR__ . '/../../vendor/autoload.php';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Trashbin functions
|
|
||||||
*/
|
|
||||||
trait Trashbin {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @When User :user empties trashbin
|
|
||||||
* @param string $user user
|
|
||||||
*/
|
|
||||||
public function emptyTrashbin($user) {
|
|
||||||
$this->asAn($user);
|
|
||||||
$body = new \Behat\Gherkin\Node\TableNode([['allfiles', 'true'], ['dir', '%2F']]);
|
|
||||||
$this->sendingToWithDirectUrl('POST', "/index.php/apps/files_trashbin/ajax/delete.php", $body);
|
|
||||||
$this->theHTTPStatusCodeShouldBe('200');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* List trashbin folder
|
|
||||||
*
|
|
||||||
* @param string $user user
|
|
||||||
* @param string $path path
|
|
||||||
* @return array response
|
|
||||||
*/
|
|
||||||
public function listTrashbinFolder($user, $path){
|
|
||||||
$this->asAn($user);
|
|
||||||
$params = '?dir=' . rawurlencode('/' . trim($path, '/'));
|
|
||||||
$this->sendingToWithDirectUrl('GET', '/index.php/apps/files_trashbin/ajax/list.php' . $params, null);
|
|
||||||
$this->theHTTPStatusCodeShouldBe('200');
|
|
||||||
|
|
||||||
$response = json_decode($this->response->getBody(), true);
|
|
||||||
|
|
||||||
return $response['data']['files'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Then /^as "([^"]*)" the (file|folder|entry) "([^"]*)" exists in trash$/
|
|
||||||
* @param string $user
|
|
||||||
* @param string $entryText
|
|
||||||
* @param string $path
|
|
||||||
*/
|
|
||||||
public function asTheFileOrFolderExistsInTrash($user, $entryText, $path) {
|
|
||||||
$path = trim($path, '/');
|
|
||||||
$sections = explode('/', $path, 2);
|
|
||||||
|
|
||||||
$firstEntry = $this->findFirstTrashedEntry($user, trim($sections[0], '/'));
|
|
||||||
|
|
||||||
PHPUnit_Framework_Assert::assertNotNull($firstEntry);
|
|
||||||
|
|
||||||
// query was on the main element ?
|
|
||||||
if (count($sections) === 1) {
|
|
||||||
// already found, return
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$subdir = trim(dirname($sections[1]), '/');
|
|
||||||
if ($subdir !== '' && $subdir !== '.') {
|
|
||||||
$subdir = $firstEntry . '/' . $subdir;
|
|
||||||
} else {
|
|
||||||
$subdir = $firstEntry;
|
|
||||||
}
|
|
||||||
|
|
||||||
$listing = $this->listTrashbinFolder($user, $subdir);
|
|
||||||
$checkedName = basename($path);
|
|
||||||
|
|
||||||
$found = false;
|
|
||||||
foreach ($listing as $entry) {
|
|
||||||
if ($entry['name'] === $checkedName) {
|
|
||||||
$found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PHPUnit_Framework_Assert::assertTrue($found);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds the first trashed entry matching the given name
|
|
||||||
*
|
|
||||||
* @param string $name
|
|
||||||
* @return string|null real entry name with timestamp suffix or null if not found
|
|
||||||
*/
|
|
||||||
private function findFirstTrashedEntry($user, $name) {
|
|
||||||
$listing = $this->listTrashbinFolder($user, '/');
|
|
||||||
|
|
||||||
foreach ($listing as $entry) {
|
|
||||||
if ($entry['name'] === $name) {
|
|
||||||
return $entry['name'] . '.d' . ((int)$entry['mtime'] / 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -134,16 +134,3 @@ Feature: favorite
|
||||||
| /subfolder/textfile0.txt |
|
| /subfolder/textfile0.txt |
|
||||||
| /subfolder/textfile2.txt |
|
| /subfolder/textfile2.txt |
|
||||||
|
|
||||||
Scenario: moving a favorite file out of a share keeps favorite state
|
|
||||||
Given using old dav path
|
|
||||||
And As an "admin"
|
|
||||||
And user "user0" exists
|
|
||||||
And user "user1" exists
|
|
||||||
And user "user0" created a folder "/shared"
|
|
||||||
And User "user0" moved file "/textfile0.txt" to "/shared/shared_file.txt"
|
|
||||||
And folder "/shared" of user "user0" is shared with user "user1"
|
|
||||||
And user "user1" favorites element "/shared/shared_file.txt"
|
|
||||||
When User "user1" moved file "/shared/shared_file.txt" to "/taken_out.txt"
|
|
||||||
Then user "user1" in folder "/" should have favorited the following elements
|
|
||||||
| /taken_out.txt |
|
|
||||||
|
|
||||||
|
|
|
@ -988,33 +988,3 @@ Feature: sharing
|
||||||
And Updating last share with
|
And Updating last share with
|
||||||
| publicUpload | true |
|
| publicUpload | true |
|
||||||
Then the OCS status code should be "404"
|
Then the OCS status code should be "404"
|
||||||
And the HTTP status code should be "200"
|
|
||||||
|
|
||||||
Scenario: deleting file out of a share as recipient creates a backup for the owner
|
|
||||||
Given As an "admin"
|
|
||||||
And user "user0" exists
|
|
||||||
And user "user1" exists
|
|
||||||
And user "user0" created a folder "/shared"
|
|
||||||
And User "user0" moved file "/textfile0.txt" to "/shared/shared_file.txt"
|
|
||||||
And folder "/shared" of user "user0" is shared with user "user1"
|
|
||||||
When User "user1" deletes file "/shared/shared_file.txt"
|
|
||||||
Then as "user1" the file "/shared/shared_file.txt" does not exist
|
|
||||||
And as "user0" the file "/shared/shared_file.txt" does not exist
|
|
||||||
And as "user0" the file "/shared_file.txt" exists in trash
|
|
||||||
And as "user1" the file "/shared_file.txt" exists in trash
|
|
||||||
|
|
||||||
Scenario: deleting folder out of a share as recipient creates a backup for the owner
|
|
||||||
Given As an "admin"
|
|
||||||
And user "user0" exists
|
|
||||||
And user "user1" exists
|
|
||||||
And user "user0" created a folder "/shared"
|
|
||||||
And user "user0" created a folder "/shared/sub"
|
|
||||||
And User "user0" moved file "/textfile0.txt" to "/shared/sub/shared_file.txt"
|
|
||||||
And folder "/shared" of user "user0" is shared with user "user1"
|
|
||||||
When User "user1" deletes folder "/shared/sub"
|
|
||||||
Then as "user1" the folder "/shared/sub" does not exist
|
|
||||||
And as "user0" the folder "/shared/sub" does not exist
|
|
||||||
And as "user0" the folder "/sub" exists in trash
|
|
||||||
And as "user0" the file "/sub/shared_file.txt" exists in trash
|
|
||||||
And as "user1" the folder "/sub" exists in trash
|
|
||||||
And as "user1" the file "/sub/shared_file.txt" exists in trash
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
Feature: trashbin
|
|
||||||
Background:
|
|
||||||
Given using api version "1"
|
|
||||||
And using old dav path
|
|
||||||
And As an "admin"
|
|
||||||
And app "files_trashbin" is enabled
|
|
||||||
|
|
||||||
Scenario: deleting a file moves it to trashbin
|
|
||||||
Given As an "admin"
|
|
||||||
And user "user0" exists
|
|
||||||
When User "user0" deletes file "/textfile0.txt"
|
|
||||||
Then as "user0" the file "/textfile0.txt" exists in trash
|
|
||||||
|
|
Loading…
Reference in New Issue