Skip to content

Commit 6a43663

Browse files
authored
Merge pull request #10990 from owncloud/tests/add-step-header-check
[full-ci][tests-only] Add step for checking the status code and headers in TUS upload
2 parents 9857444 + 01fae6e commit 6a43663

14 files changed

+189
-98
lines changed

tests/acceptance/bootstrap/SpacesTUSContext.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,13 @@ public function userUploadsAFileWithContentToViaTusInsideOfTheSpaceUsingTheWebda
246246
string $resource,
247247
string $spaceName
248248
): void {
249+
$isSpacesDavPathVersion = $this->featureContext->getDavPathVersion() === WebDavHelper::DAV_VERSION_SPACES;
250+
$resource = \ltrim($resource, "/");
251+
if (!$isSpacesDavPathVersion && $spaceName === 'Shares' && !\str_starts_with($resource, "Shares/")) {
252+
$resource = 'Shares/' . $resource;
253+
} elseif ($isSpacesDavPathVersion && \str_starts_with($resource, "Shares/")) {
254+
$resource = \preg_replace("/^Shares\//", "", $resource);
255+
}
249256
$this->featureContext->setResponse($this->uploadFileViaTus($user, $content, $resource, $spaceName));
250257
}
251258

tests/acceptance/bootstrap/TUSContext.php

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -442,17 +442,13 @@ public function userUploadsAFileWithContentToUsingTus(
442442
string $destination
443443
): void {
444444
$temporaryFileName = $this->writeDataToTempFile($content);
445-
try {
446-
$this->uploadFileUsingTus(
447-
$user,
448-
\basename($temporaryFileName),
449-
$destination
450-
);
451-
$this->featureContext->setLastUploadDeleteTime(\time());
452-
} catch (Exception $e) {
453-
Assert::assertStringContainsString('TusPhp\Exception\FileException: Unable to create resource', (string)$e);
454-
}
445+
$response = $this->uploadFileUsingTus(
446+
$user,
447+
\basename($temporaryFileName),
448+
$destination
449+
);
455450
\unlink($temporaryFileName);
451+
$this->featureContext->setResponse($response);
456452
}
457453

458454
/**
@@ -479,7 +475,7 @@ public function userUploadsAFileWithContentInChunksUsingTus(
479475
string $destination
480476
): void {
481477
$temporaryFileName = $this->writeDataToTempFile($content);
482-
$this->uploadFileUsingTus(
478+
$response = $this->uploadFileUsingTus(
483479
$user,
484480
\basename($temporaryFileName),
485481
$destination,
@@ -489,6 +485,7 @@ public function userUploadsAFileWithContentInChunksUsingTus(
489485
);
490486
$this->featureContext->setLastUploadDeleteTime(\time());
491487
\unlink($temporaryFileName);
488+
$this->featureContext->setResponse($response);
492489
}
493490

494491
/**
@@ -512,14 +509,19 @@ public function userHasUploadedFileWithMtimeUsingTUS(
512509
$mtime = new DateTime($mtime);
513510
$mtime = $mtime->format('U');
514511
$user = $this->featureContext->getActualUsername($user);
515-
$this->uploadFileUsingTus(
512+
$response = $this->uploadFileUsingTus(
516513
$user,
517514
$source,
518515
$destination,
519516
null,
520517
['mtime' => $mtime]
521518
);
522519
$this->featureContext->setLastUploadDeleteTime(\time());
520+
$this->featureContext->theHTTPStatusCodeShouldBe(
521+
["201", "204"],
522+
"Failed to upload file '$source' for user '$user'",
523+
$response
524+
);
523525
}
524526

525527
/**
@@ -543,14 +545,15 @@ public function userUploadsFileWithContentToWithMtimeUsingTUS(
543545
$mtime = new DateTime($mtime);
544546
$mtime = $mtime->format('U');
545547
$user = $this->featureContext->getActualUsername($user);
546-
$this->uploadFileUsingTus(
548+
$response = $this->uploadFileUsingTus(
547549
$user,
548550
$source,
549551
$destination,
550552
null,
551553
['mtime' => $mtime]
552554
);
553555
$this->featureContext->setLastUploadDeleteTime(\time());
556+
$this->featureContext->setResponse($response);
554557
}
555558

556559
/**
@@ -628,7 +631,7 @@ public function userUploadsWithCreatesWithUpload(
628631
string $content
629632
): void {
630633
$temporaryFileName = $this->writeDataToTempFile($content);
631-
$this->uploadFileUsingTus(
634+
$response = $this->uploadFileUsingTus(
632635
$user,
633636
\basename($temporaryFileName),
634637
$source,
@@ -639,6 +642,7 @@ public function userUploadsWithCreatesWithUpload(
639642
);
640643
$this->featureContext->setLastUploadDeleteTime(\time());
641644
\unlink($temporaryFileName);
645+
$this->featureContext->setResponse($response);
642646
}
643647

644648
/**

tests/acceptance/config/behat.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,7 @@ default:
804804
- FilesVersionsContext:
805805
- ChecksumContext:
806806
- SharingNgContext:
807+
- SpacesTUSContext:
807808

808809
coreApiWebdavEtagPropagation1:
809810
paths:

tests/acceptance/expected-failures-API-on-OCIS-storage.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,12 +137,12 @@ _ocdav: api compatibility, return correct status code_
137137
- [coreApiWebdavUploadTUS/checksums.feature:243](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/checksums.feature#L243)
138138
- [coreApiWebdavUploadTUS/checksums.feature:244](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/checksums.feature#L244)
139139
- [coreApiWebdavUploadTUS/checksums.feature:245](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/checksums.feature#L245)
140-
- [coreApiWebdavUploadTUS/uploadToShare.feature:255](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L255)
141-
- [coreApiWebdavUploadTUS/uploadToShare.feature:256](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L256)
142-
- [coreApiWebdavUploadTUS/uploadToShare.feature:279](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L279)
143-
- [coreApiWebdavUploadTUS/uploadToShare.feature:280](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L280)
144-
- [coreApiWebdavUploadTUS/uploadToShare.feature:375](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L375)
145-
- [coreApiWebdavUploadTUS/uploadToShare.feature:376](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L376)
140+
- [coreApiWebdavUploadTUS/uploadToShare.feature:264](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L264)
141+
- [coreApiWebdavUploadTUS/uploadToShare.feature:265](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L265)
142+
- [coreApiWebdavUploadTUS/uploadToShare.feature:288](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L288)
143+
- [coreApiWebdavUploadTUS/uploadToShare.feature:289](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L289)
144+
- [coreApiWebdavUploadTUS/uploadToShare.feature:385](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L385)
145+
- [coreApiWebdavUploadTUS/uploadToShare.feature:386](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L386)
146146

147147
#### [Renaming resource to banned name is allowed in spaces webdav](https://github.com/owncloud/ocis/issues/3099)
148148

@@ -200,9 +200,9 @@ _ocdav: api compatibility, return correct status code_
200200
- [coreApiWebdavUpload/uploadFile.feature:400](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload/uploadFile.feature#L400)
201201
- [coreApiWebdavUpload/uploadFile.feature:401](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload/uploadFile.feature#L401)
202202
- [coreApiWebdavUpload/uploadFile.feature:402](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload/uploadFile.feature#L402)
203-
- [coreApiWebdavUploadTUS/uploadFileMtime.feature:79](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L79)
204-
- [coreApiWebdavUploadTUS/uploadFileMtime.feature:80](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L80)
205-
- [coreApiWebdavUploadTUS/uploadFileMtime.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L81)
203+
- [coreApiWebdavUploadTUS/uploadFileMtime.feature:84](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L84)
204+
- [coreApiWebdavUploadTUS/uploadFileMtime.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L85)
205+
- [coreApiWebdavUploadTUS/uploadFileMtime.feature:86](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L86)
206206

207207
### Won't fix
208208

0 commit comments

Comments
 (0)