@@ -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 );
@@ -291,13 +295,22 @@ public function theDownloadedArchiveShouldContainTheseFiles(string $type, TableN
291295
292296 if ($ expectedPath === $ actualPath ) {
293297 if (!$ info ->getIsdir ()) {
294- $ fileContent = \file_get_contents ("$ tempExtractFolder/ $ actualPath " );
295- Assert::assertEquals (
296- $ expectedItem ['content ' ],
297- $ fileContent ,
298- __METHOD__ .
299- " content of ' " . $ expectedPath . "' not as expected "
300- );
298+ $ fileFullPath = "$ tempExtractFolder/ $ actualPath " ;
299+ $ fileMimeType = \mime_content_type ($ fileFullPath );
300+
301+ if ($ fileMimeType === "text/plain " ) {
302+ $ fileContent = \file_get_contents ($ fileFullPath );
303+ Assert::assertEquals (
304+ $ expectedItem ['content ' ],
305+ $ fileContent ,
306+ __METHOD__ . " content of ' " . $ expectedPath . "' not as expected "
307+ );
308+ } else {
309+ Assert::assertFileExists (
310+ $ fileFullPath ,
311+ __METHOD__ . " File ' " . $ expectedPath . "' is not in the downloaded archive. "
312+ );
313+ }
301314 }
302315 $ found = true ;
303316 break ;
0 commit comments