extend test coverage for replacing file with zero-byte file (tus upload) (#8105)
This commit is contained in:
@@ -39,3 +39,82 @@ Feature: upload resources using TUS protocol
|
|||||||
Then for user "Alice" the space "Alice Hansen" should contain these entries:
|
Then for user "Alice" the space "Alice Hansen" should contain these entries:
|
||||||
| test.txt |
|
| test.txt |
|
||||||
| upload.txt |
|
| upload.txt |
|
||||||
|
|
||||||
|
|
||||||
|
Scenario Outline: upload a zero-byte file inside a shared folder
|
||||||
|
Given using <dav-path-version> DAV path
|
||||||
|
And user "Brian" has been created with default attributes and without skeleton files
|
||||||
|
And user "Alice" has created folder "testFolder"
|
||||||
|
And user "Alice" has shared folder "testFolder" with user "Brian" with permissions "all"
|
||||||
|
When user "Brian" uploads file "filesForUpload/zerobyte.txt" to "Shares/testFolder/textfile.txt" using the TUS protocol on the WebDAV API
|
||||||
|
Then the content of file "Shares/testFolder/textfile.txt" for user "Brian" should be ""
|
||||||
|
And the content of file "testFolder/textfile.txt" for user "Alice" should be ""
|
||||||
|
Examples:
|
||||||
|
| dav-path-version |
|
||||||
|
| old |
|
||||||
|
| new |
|
||||||
|
|
||||||
|
|
||||||
|
Scenario: upload a zero-byte file inside a shared folder (spaces dav path)
|
||||||
|
Given using spaces DAV path
|
||||||
|
And user "Brian" has been created with default attributes and without skeleton files
|
||||||
|
And user "Alice" has created folder "testFolder"
|
||||||
|
And user "Alice" has shared folder "testFolder" with user "Brian" with permissions "all"
|
||||||
|
When user "Brian" uploads a file from "filesForUpload/zerobyte.txt" to "testFolder/textfile.txt" via TUS inside of the space "Shares" using the WebDAV API
|
||||||
|
Then for user "Brian" the content of the file "testFolder/textfile.txt" of the space "Shares" should be ""
|
||||||
|
And for user "Alice" the content of the file "testFolder/textfile.txt" of the space "Personal" should be ""
|
||||||
|
|
||||||
|
|
||||||
|
Scenario: upload a zero-byte file inside a project space
|
||||||
|
Given using spaces DAV path
|
||||||
|
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
|
||||||
|
And user "Alice" has created a space "new-space" with the default quota using the Graph API
|
||||||
|
When user "Alice" uploads a file from "filesForUpload/zerobyte.txt" to "textfile.txt" via TUS inside of the space "new-space" using the WebDAV API
|
||||||
|
Then for user "Alice" the content of the file "textfile.txt" of the space "new-space" should be ""
|
||||||
|
|
||||||
|
@issue-8003
|
||||||
|
Scenario Outline: replace a shared file with zero-byte file
|
||||||
|
Given using <dav-path-version> DAV path
|
||||||
|
And user "Brian" has been created with default attributes and without skeleton files
|
||||||
|
And user "Alice" has uploaded file with content "This is TUS upload" to "textfile.txt"
|
||||||
|
And user "Alice" has shared file "textfile.txt" with user "Brian" with permissions "read,update"
|
||||||
|
When user "Brian" uploads file "filesForUpload/zerobyte.txt" to "Shares/textfile.txt" using the TUS protocol on the WebDAV API
|
||||||
|
Then the content of file "Shares/textfile.txt" for user "Brian" should be ""
|
||||||
|
And the content of file "textfile.txt" for user "Alice" should be ""
|
||||||
|
Examples:
|
||||||
|
| dav-path-version |
|
||||||
|
| old |
|
||||||
|
| new |
|
||||||
|
|
||||||
|
@issue-8003
|
||||||
|
Scenario: replace a shared file with zero-byte file (spaces dav path)
|
||||||
|
Given using spaces DAV path
|
||||||
|
And user "Brian" has been created with default attributes and without skeleton files
|
||||||
|
And user "Alice" has uploaded file with content "This is TUS upload" to "textfile.txt"
|
||||||
|
And user "Alice" has shared file "textfile.txt" with user "Brian" with permissions "read,update"
|
||||||
|
When user "Brian" uploads a file from "filesForUpload/zerobyte.txt" to "textfile.txt" via TUS inside of the space "Shares" using the WebDAV API
|
||||||
|
Then for user "Brian" the content of the file "textfile.txt" of the space "Shares" should be ""
|
||||||
|
And for user "Alice" the content of the file "textfile.txt" of the space "Personal" should be ""
|
||||||
|
|
||||||
|
@issue-8003
|
||||||
|
Scenario: replace a file inside a project space with zero-byte file
|
||||||
|
Given using spaces DAV path
|
||||||
|
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
|
||||||
|
And user "Alice" has created a space "new-space" with the default quota using the Graph API
|
||||||
|
And user "Alice" has uploaded a file inside space "new-space" with content "This is TUS upload" to "textfile.txt"
|
||||||
|
When user "Alice" uploads a file from "filesForUpload/zerobyte.txt" to "textfile.txt" via TUS inside of the space "new-space" using the WebDAV API
|
||||||
|
Then for user "Alice" the content of the file "textfile.txt" of the space "new-space" should be ""
|
||||||
|
|
||||||
|
@issue-8003
|
||||||
|
Scenario: replace a file inside a shared project space with zero-byte file
|
||||||
|
Given using spaces DAV path
|
||||||
|
And user "Brian" has been created with default attributes and without skeleton files
|
||||||
|
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
|
||||||
|
And user "Alice" has created a space "new-space" with the default quota using the Graph API
|
||||||
|
And user "Alice" has uploaded a file inside space "new-space" with content "This is TUS upload" to "textfile.txt"
|
||||||
|
And user "Alice" has shared a space "new-space" with settings:
|
||||||
|
| shareWith | Brian |
|
||||||
|
| role | editor |
|
||||||
|
When user "Brian" uploads a file from "filesForUpload/zerobyte.txt" to "textfile.txt" via TUS inside of the space "new-space" using the WebDAV API
|
||||||
|
Then for user "Brian" the content of the file "textfile.txt" of the space "new-space" should be ""
|
||||||
|
And for user "Alice" the content of the file "textfile.txt" of the space "new-space" should be ""
|
||||||
@@ -209,7 +209,8 @@ class TUSContext implements Context {
|
|||||||
|
|
||||||
$client = new Client(
|
$client = new Client(
|
||||||
$this->featureContext->getBaseUrl(),
|
$this->featureContext->getBaseUrl(),
|
||||||
['verify' => false,
|
[
|
||||||
|
'verify' => false,
|
||||||
'headers' => $headers
|
'headers' => $headers
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
@@ -230,6 +231,8 @@ class TUSContext implements Context {
|
|||||||
|
|
||||||
if ($bytes !== null) {
|
if ($bytes !== null) {
|
||||||
$client->file($sourceFile, $destination)->createWithUpload($client->getKey(), $bytes);
|
$client->file($sourceFile, $destination)->createWithUpload($client->getKey(), $bytes);
|
||||||
|
} elseif (\filesize($sourceFile) === 0) {
|
||||||
|
$client->file($sourceFile, $destination)->createWithUpload($client->getKey(), 0);
|
||||||
} elseif ($noOfChunks === 1) {
|
} elseif ($noOfChunks === 1) {
|
||||||
$client->file($sourceFile, $destination)->upload();
|
$client->file($sourceFile, $destination)->upload();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -208,3 +208,39 @@ Feature: upload file
|
|||||||
| spaces | "filewithLF-and-CR\r\n" | ZmlsZXdpdGhMRi1hbmQtQ1INCgo= |
|
| spaces | "filewithLF-and-CR\r\n" | ZmlsZXdpdGhMRi1hbmQtQ1INCgo= |
|
||||||
| spaces | "folder/file" | Zm9sZGVyL2ZpbGU= |
|
| spaces | "folder/file" | Zm9sZGVyL2ZpbGU= |
|
||||||
| spaces | "my\\file" | bXkMaWxl |
|
| spaces | "my\\file" | bXkMaWxl |
|
||||||
|
|
||||||
|
|
||||||
|
Scenario Outline: upload a zero-byte file
|
||||||
|
Given using <dav-path-version> DAV path
|
||||||
|
When user "Alice" uploads file "filesForUpload/zerobyte.txt" to "textfile.txt" using the TUS protocol on the WebDAV API
|
||||||
|
Then the content of file "textfile.txt" for user "Alice" should be ""
|
||||||
|
Examples:
|
||||||
|
| dav-path-version |
|
||||||
|
| old |
|
||||||
|
| new |
|
||||||
|
| spaces |
|
||||||
|
|
||||||
|
@issue-8003
|
||||||
|
Scenario Outline: replace a file with zero-byte file
|
||||||
|
Given using <dav-path-version> DAV path
|
||||||
|
And user "Alice" has uploaded file with content "This is TUS upload" to "textfile.txt"
|
||||||
|
When user "Alice" uploads file "filesForUpload/zerobyte.txt" to "textfile.txt" using the TUS protocol on the WebDAV API
|
||||||
|
Then the content of file "textfile.txt" for user "Alice" should be ""
|
||||||
|
Examples:
|
||||||
|
| dav-path-version |
|
||||||
|
| old |
|
||||||
|
| new |
|
||||||
|
| spaces |
|
||||||
|
|
||||||
|
@issue-8003
|
||||||
|
Scenario Outline: replace a file inside a folder with zero-byte file
|
||||||
|
Given using <dav-path-version> DAV path
|
||||||
|
And user "Alice" has created folder "testFolder"
|
||||||
|
And user "Alice" has uploaded file with content "This is TUS upload" to "testFolder/textfile.txt"
|
||||||
|
When user "Alice" uploads file "filesForUpload/zerobyte.txt" to "testFolder/textfile.txt" using the TUS protocol on the WebDAV API
|
||||||
|
Then the content of file "testFolder/textfile.txt" for user "Alice" should be ""
|
||||||
|
Examples:
|
||||||
|
| dav-path-version |
|
||||||
|
| old |
|
||||||
|
| new |
|
||||||
|
| spaces |
|
||||||
|
|||||||
Reference in New Issue
Block a user