Skip to content

Commit 3a7bb60

Browse files
add test to download files and folders as archive
Signed-off-by: prashant-gurung899 <prasantgrg777@gmail.com>
1 parent 9e6ce76 commit 3a7bb60

File tree

2 files changed

+57
-2
lines changed

2 files changed

+57
-2
lines changed

tests/acceptance/bootstrap/ArchiverContext.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class ArchiverContext implements Context {
4343
* @var FeatureContext
4444
*/
4545
private FeatureContext $featureContext;
46+
private SpacesContext $spacesContext;
4647

4748
/**
4849
* @BeforeScenario
@@ -58,6 +59,7 @@ public function before(BeforeScenarioScope $scope): void {
5859
$environment = $scope->getEnvironment();
5960
// Get all the contexts you need in this context
6061
$this->featureContext = BehatHelper::getContext($scope, $environment, 'FeatureContext');
62+
$this->spacesContext = BehatHelper::getContext($scope, $environment, 'SpacesContext');
6163
}
6264

6365
/**
@@ -120,13 +122,15 @@ private function getArchiverQueryString(
120122
case 'id':
121123
case 'ids':
122124
return 'id=' . $this->featureContext->getFileIdForPath($user, $resource);
125+
case 'remoteItemIds':
126+
return 'id=' . $this->spacesContext->getSharesRemoteItemId($user, $resource);
123127
case 'path':
124128
case 'paths':
125129
return 'path=' . $resource;
126130
default:
127131
throw new Exception(
128132
'"' . $addressType .
129-
'" is not a legal value for $addressType, must be id|ids|path|paths'
133+
'" is not a legal value for $addressType, must be id|ids|remoteItemIds|path|paths'
130134
);
131135
}
132136
}
@@ -276,7 +280,7 @@ public function theDownloadedArchiveShouldContainTheseFiles(string $type, TableN
276280
$tar = $this->getArchiveClass($type);
277281
$tar->open($tempFile);
278282
$archiveData = $tar->contents();
279-
283+
280284
// extract the archive
281285
$tar->open($tempFile);
282286
$tar->extract($tempExtractFolder);

tests/acceptance/features/apiOcm/share.feature

+51
Original file line numberDiff line numberDiff line change
@@ -910,3 +910,54 @@ Feature: an user shares resources using ScienceMesh application
910910
| Viewer | Uploader |
911911
| Viewer | Editor |
912912
| Viewer | Viewer |
913+
914+
@issue-10272
915+
Scenario: federated user downloads multiple files and folders as archive
916+
Given using spaces DAV path
917+
And using server "REMOTE"
918+
And "Brian" has created the federation share invitation
919+
And using server "LOCAL"
920+
And "Alice" has accepted invitation
921+
And user "Alice" has uploaded file with content "some data" to "textfile0.txt"
922+
And user "Alice" has uploaded file with content "other data" to "textfile1.txt"
923+
And user "Alice" has created folder "my_data"
924+
And user "Alice" has uploaded file with content "some data" to "/my_data/textfile2.txt"
925+
And user "Alice" has created folder "more_data"
926+
And user "Alice" has uploaded file with content "more data" to "/more_data/an_other_file.txt"
927+
And user "Alice" has sent the following resource share invitation to federated user:
928+
| resource | textfile0.txt |
929+
| space | Personal |
930+
| sharee | Brian |
931+
| shareType | user |
932+
| permissionsRole | Viewer |
933+
And user "Alice" has sent the following resource share invitation to federated user:
934+
| resource | textfile1.txt |
935+
| space | Personal |
936+
| sharee | Brian |
937+
| shareType | user |
938+
| permissionsRole | Viewer |
939+
And user "Alice" has sent the following resource share invitation to federated user:
940+
| resource | my_data |
941+
| space | Personal |
942+
| sharee | Brian |
943+
| shareType | user |
944+
| permissionsRole | Viewer |
945+
And user "Alice" has sent the following resource share invitation to federated user:
946+
| resource | more_data |
947+
| space | Personal |
948+
| sharee | Brian |
949+
| shareType | user |
950+
| permissionsRole | Viewer |
951+
And using server "REMOTE"
952+
When user "Brian" downloads the archive of these items using the resource remoteItemIds
953+
| textfile0.txt |
954+
| textfile1.txt |
955+
| my_data |
956+
| more_data |
957+
Then the HTTP status code should be "200"
958+
And the downloaded zip archive should contain these files:
959+
| name | content |
960+
| textfile0.txt | some data |
961+
| textfile1.txt | other data |
962+
| my_data/textfile2.txt | some data |
963+
| more_data/an_other_file.txt | more data |

0 commit comments

Comments
 (0)