Skip to content

Commit 91a814c

Browse files
add test to download files and folders as archive
Signed-off-by: prashant-gurung899 <prasantgrg777@gmail.com>
1 parent 0832c9b commit 91a814c

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
@@ -1297,3 +1297,54 @@ Feature: an user shares resources using ScienceMesh application
12971297
| Viewer |
12981298
| Uploader |
12991299
| Editor |
1300+
1301+
@issue-10272
1302+
Scenario: federated user downloads shared resources as an archive
1303+
Given using spaces DAV path
1304+
And using server "REMOTE"
1305+
And "Brian" has created the federation share invitation
1306+
And using server "LOCAL"
1307+
And "Alice" has accepted invitation
1308+
And user "Alice" has uploaded file with content "some data" to "textfile0.txt"
1309+
And user "Alice" has uploaded file with content "other data" to "textfile1.txt"
1310+
And user "Alice" has created folder "my_data"
1311+
And user "Alice" has uploaded file with content "some data" to "/my_data/textfile2.txt"
1312+
And user "Alice" has created folder "more_data"
1313+
And user "Alice" has uploaded file with content "more data" to "/more_data/an_other_file.txt"
1314+
And user "Alice" has sent the following resource share invitation to federated user:
1315+
| resource | textfile0.txt |
1316+
| space | Personal |
1317+
| sharee | Brian |
1318+
| shareType | user |
1319+
| permissionsRole | Viewer |
1320+
And user "Alice" has sent the following resource share invitation to federated user:
1321+
| resource | textfile1.txt |
1322+
| space | Personal |
1323+
| sharee | Brian |
1324+
| shareType | user |
1325+
| permissionsRole | Viewer |
1326+
And user "Alice" has sent the following resource share invitation to federated user:
1327+
| resource | my_data |
1328+
| space | Personal |
1329+
| sharee | Brian |
1330+
| shareType | user |
1331+
| permissionsRole | Viewer |
1332+
And user "Alice" has sent the following resource share invitation to federated user:
1333+
| resource | more_data |
1334+
| space | Personal |
1335+
| sharee | Brian |
1336+
| shareType | user |
1337+
| permissionsRole | Viewer |
1338+
And using server "REMOTE"
1339+
When user "Brian" downloads the archive of these items using the resource remoteItemIds
1340+
| textfile0.txt |
1341+
| textfile1.txt |
1342+
| my_data |
1343+
| more_data |
1344+
Then the HTTP status code should be "200"
1345+
And the downloaded zip archive should contain these files:
1346+
| name | content |
1347+
| textfile0.txt | some data |
1348+
| textfile1.txt | other data |
1349+
| my_data/textfile2.txt | some data |
1350+
| more_data/an_other_file.txt | more data |

0 commit comments

Comments
 (0)