summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorThomas Müller <DeepDiver1975@users.noreply.github.com>2016-04-13 14:37:10 +0200
committerThomas Müller <DeepDiver1975@users.noreply.github.com>2016-04-13 14:37:10 +0200
commit3c0a1d4241c16c13b3fd93406402320284d153d9 (patch)
treefd79c48c483c5e03437480665cd93996d9a2e304 /build
parent15397a9c910925ac368001545ab96509a12cb0ad (diff)
parente21642ca31d69f2f9c5328c7eb804fb45a8c4c23 (diff)
downloadnextcloud-server-3c0a1d4241c16c13b3fd93406402320284d153d9.tar.gz
nextcloud-server-3c0a1d4241c16c13b3fd93406402320284d153d9.zip
Merge pull request #20118 from owncloud/chunked-upload-dav
Initial implementation of the new chunked upload
Diffstat (limited to 'build')
-rw-r--r--build/integration/features/bootstrap/WebDav.php32
-rw-r--r--build/integration/features/webdav-related.feature36
2 files changed, 68 insertions, 0 deletions
diff --git a/build/integration/features/bootstrap/WebDav.php b/build/integration/features/bootstrap/WebDav.php
index 2ef5f252f11..0ca2a411c75 100644
--- a/build/integration/features/bootstrap/WebDav.php
+++ b/build/integration/features/bootstrap/WebDav.php
@@ -373,5 +373,37 @@ trait WebDav {
$this->makeDavRequest($user, 'PUT', $file, ['OC-Chunked' => '1'], $data);
}
+ /**
+ * @Given user :user creates a new chunking upload with id :id
+ */
+ public function userCreatesANewChunkingUploadWithId($user, $id)
+ {
+ $destination = '/uploads/'.$user.'/'.$id;
+ $this->makeDavRequest($user, 'MKCOL', $destination, []);
+ }
+
+ /**
+ * @Given user :user uploads new chunk file :num with :data to id :id
+ */
+ public function userUploadsNewChunkFileOfWithToId($user, $num, $data, $id)
+ {
+ $data = \GuzzleHttp\Stream\Stream::factory($data);
+ $destination = '/uploads/'.$user.'/'.$id.'/'.$num;
+ $this->makeDavRequest($user, 'PUT', $destination, [], $data);
+ }
+
+ /**
+ * @Given user :user moves new chunk file with id :id to :dest
+ */
+ public function userMovesNewChunkFileWithIdToMychunkedfile($user, $id, $dest)
+ {
+ $source = '/uploads/'.$user.'/'.$id.'/.file';
+ $destination = substr($this->baseUrl, 0, -4) . $this->davPath . '/files/'.$user.$dest;
+ $this->makeDavRequest($user, 'MOVE', $source, [
+ 'Destination' => $destination
+ ]);
+ }
+
+
}
diff --git a/build/integration/features/webdav-related.feature b/build/integration/features/webdav-related.feature
index ee841f9eb5b..6fc437773c6 100644
--- a/build/integration/features/webdav-related.feature
+++ b/build/integration/features/webdav-related.feature
@@ -241,3 +241,39 @@ Feature: webdav-related
| 0 |
| 1 |
| 3 |
+
+ Scenario: Upload chunked file asc with new chunking
+ Given using dav path "remote.php/dav"
+ And user "user0" exists
+ And user "user0" creates a new chunking upload with id "chunking-42"
+ And user "user0" uploads new chunk file "1" with "AAAAA" to id "chunking-42"
+ And user "user0" uploads new chunk file "2" with "BBBBB" to id "chunking-42"
+ And user "user0" uploads new chunk file "3" with "CCCCC" to id "chunking-42"
+ And user "user0" moves new chunk file with id "chunking-42" to "/myChunkedFile.txt"
+ When As an "user0"
+ And Downloading file "/files/user0/myChunkedFile.txt"
+ Then Downloaded content should be "AAAAABBBBBCCCCC"
+
+ Scenario: Upload chunked file desc with new chunking
+ Given using dav path "remote.php/dav"
+ And user "user0" exists
+ And user "user0" creates a new chunking upload with id "chunking-42"
+ And user "user0" uploads new chunk file "3" with "CCCCC" to id "chunking-42"
+ And user "user0" uploads new chunk file "2" with "BBBBB" to id "chunking-42"
+ And user "user0" uploads new chunk file "1" with "AAAAA" to id "chunking-42"
+ And user "user0" moves new chunk file with id "chunking-42" to "/myChunkedFile.txt"
+ When As an "user0"
+ And Downloading file "/files/user0/myChunkedFile.txt"
+ Then Downloaded content should be "AAAAABBBBBCCCCC"
+
+ Scenario: Upload chunked file random with new chunking
+ Given using dav path "remote.php/dav"
+ And user "user0" exists
+ And user "user0" creates a new chunking upload with id "chunking-42"
+ And user "user0" uploads new chunk file "2" with "BBBBB" to id "chunking-42"
+ And user "user0" uploads new chunk file "3" with "CCCCC" to id "chunking-42"
+ And user "user0" uploads new chunk file "1" with "AAAAA" to id "chunking-42"
+ And user "user0" moves new chunk file with id "chunking-42" to "/myChunkedFile.txt"
+ When As an "user0"
+ And Downloading file "/files/user0/myChunkedFile.txt"
+ Then Downloaded content should be "AAAAABBBBBCCCCC"