Skip to content

Commit fb79455

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

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
@@ -1229,3 +1229,54 @@ Feature: an user shares resources using ScienceMesh application
12291229
}
12301230
}
12311231
"""
1232+
1233+
@issue-10272
1234+
Scenario: federated user downloads shared resources as an archive
1235+
Given using spaces DAV path
1236+
And using server "REMOTE"
1237+
And "Brian" has created the federation share invitation
1238+
And using server "LOCAL"
1239+
And "Alice" has accepted invitation
1240+
And user "Alice" has uploaded file with content "some data" to "textfile0.txt"
1241+
And user "Alice" has uploaded file with content "other data" to "textfile1.txt"
1242+
And user "Alice" has created folder "my_data"
1243+
And user "Alice" has uploaded file with content "some data" to "/my_data/textfile2.txt"
1244+
And user "Alice" has created folder "more_data"
1245+
And user "Alice" has uploaded file with content "more data" to "/more_data/an_other_file.txt"
1246+
And user "Alice" has sent the following resource share invitation to federated user:
1247+
| resource | textfile0.txt |
1248+
| space | Personal |
1249+
| sharee | Brian |
1250+
| shareType | user |
1251+
| permissionsRole | Viewer |
1252+
And user "Alice" has sent the following resource share invitation to federated user:
1253+
| resource | textfile1.txt |
1254+
| space | Personal |
1255+
| sharee | Brian |
1256+
| shareType | user |
1257+
| permissionsRole | Viewer |
1258+
And user "Alice" has sent the following resource share invitation to federated user:
1259+
| resource | my_data |
1260+
| space | Personal |
1261+
| sharee | Brian |
1262+
| shareType | user |
1263+
| permissionsRole | Viewer |
1264+
And user "Alice" has sent the following resource share invitation to federated user:
1265+
| resource | more_data |
1266+
| space | Personal |
1267+
| sharee | Brian |
1268+
| shareType | user |
1269+
| permissionsRole | Viewer |
1270+
And using server "REMOTE"
1271+
When user "Brian" downloads the archive of these items using the resource remoteItemIds
1272+
| textfile0.txt |
1273+
| textfile1.txt |
1274+
| my_data |
1275+
| more_data |
1276+
Then the HTTP status code should be "200"
1277+
And the downloaded zip archive should contain these files:
1278+
| name | content |
1279+
| textfile0.txt | some data |
1280+
| textfile1.txt | other data |
1281+
| my_data/textfile2.txt | some data |
1282+
| more_data/an_other_file.txt | more data |

0 commit comments

Comments
 (0)