def testCorrectlyDisplaysCollectedResult(self): flow_args = rdf_file_finder.CollectSingleFileArgs(path="/etc/hosts") flow_test_lib.StartFlow(file.CollectSingleFile, creator=self.test_username, client_id=self.client_id, flow_args=flow_args) with flow_test_lib.FlowProgressOverride( file.CollectSingleFile, rdf_file_finder.CollectSingleFileProgress( status=rdf_file_finder.CollectSingleFileProgress.Status. COLLECTED, result=self._GenSampleResult())): self.Open(f"/v2/clients/{self.client_id}") self.WaitUntil( self.IsElementPresent, "css=collect-single-file-details .collected-result:contains('/etc/hosts')" ) self.WaitUntil( self.IsElementPresent, "css=collect-single-file-details .collected-result:contains('4.14 KiB')" ) self.WaitUntilNot( self.IsElementPresent, "css=collect-single-file-details .requested-path")
def Start(self): super().Start(file_size=self.args.max_size_bytes) self.state.progress = rdf_file_finder.CollectSingleFileProgress( status=rdf_file_finder.CollectSingleFileProgress.Status.IN_PROGRESS) pathspec = rdf_paths.PathSpec.OS(path=self.args.path) self.StartFileFetch(pathspec)
def testCorrectlyDisplaysNotFoundResult(self): flow_args = rdf_file_finder.CollectSingleFileArgs(path="/etc/hosts") flow_test_lib.StartFlow( file.CollectSingleFile, creator=self.token.username, client_id=self.client_id, flow_args=flow_args) with flow_test_lib.FlowProgressOverride( file.CollectSingleFile, rdf_file_finder.CollectSingleFileProgress( status=rdf_file_finder.CollectSingleFileProgress.Status.NOT_FOUND)): self.Open(f"/v2/clients/{self.client_id}") self.WaitUntil( self.IsElementPresent, "css=collect-single-file-details .error:contains('Not found')")
def testCorrectlyDisplaysError(self): flow_args = rdf_file_finder.CollectSingleFileArgs(path="/etc/hosts") flow_id = flow_test_lib.StartFlow(file.CollectSingleFile, creator=self.test_username, client_id=self.client_id, flow_args=flow_args) flow_test_lib.MarkFlowAsFailed(self.client_id, flow_id) with flow_test_lib.FlowProgressOverride( file.CollectSingleFile, rdf_file_finder.CollectSingleFileProgress( status=rdf_file_finder.CollectSingleFileProgress.Status. FAILED, error_description="Something went wrong")): self.Open(f"/v2/clients/{self.client_id}") self.WaitUntil( self.IsElementPresent, "css=flow-details :contains('Something went wrong')")
def testCorrectlyDisplaysInProgressStatus(self): flow_args = rdf_file_finder.CollectSingleFileArgs(path="/etc/hosts") flow_test_lib.StartFlow(file.CollectSingleFile, creator=self.test_username, client_id=self.client_id, flow_args=flow_args) with flow_test_lib.FlowProgressOverride( file.CollectSingleFile, rdf_file_finder.CollectSingleFileProgress( status=rdf_file_finder.CollectSingleFileProgress.Status. IN_PROGRESS)): self.Open(f"/v2/clients/{self.client_id}") self.WaitUntil(self.IsElementPresent, "css=.flow-title:contains('File content')") self.WaitUntil( self.IsElementPresent, "css=collect-single-file-details .requested-path:contains('/etc/hosts')" ) self.WaitUntilNot( self.IsElementPresent, "css=collect-single-file-details .collected-result")
def testCorrectlyDisplaysNonStandardPathTypeNote(self): flow_args = rdf_file_finder.CollectSingleFileArgs(path="/etc/hosts") flow_test_lib.StartFlow( file.CollectSingleFile, creator=self.token.username, client_id=self.client_id, flow_args=flow_args) with flow_test_lib.FlowProgressOverride( file.CollectSingleFile, rdf_file_finder.CollectSingleFileProgress( status=rdf_file_finder.CollectSingleFileProgress.Status.COLLECTED, result=self._GenSampleResult(use_ntfs=True))): self.Open(f"/v2/clients/{self.client_id}") self.WaitUntil( self.IsElementPresent, "css=collect-single-file-details .collected-result:contains('/etc/hosts')" ) self.WaitUntil( self.IsElementPresent, "css=collect-single-file-details .path-type-note:contains(" "'File was fetched by parsing the raw disk image with libfsntfs')")
def testCorrectlyDisplaysDownloadButtonOnSuccess(self): flow_args = rdf_file_finder.CollectSingleFileArgs(path="/etc/hosts") flow_id = flow_test_lib.StartFlow(file.CollectSingleFile, creator=self.test_username, client_id=self.client_id, flow_args=flow_args) self.Open(f"/v2/clients/{self.client_id}") self.WaitUntil( self.IsElementPresent, "css=collect-single-file-details .requested-path:contains('/etc/hosts')" ) self.WaitUntilNot(self.IsElementPresent, "css=a[mat-stroked-button]:contains('Download')") flow_test_lib.MarkFlowAsFinished(self.client_id, flow_id) with flow_test_lib.FlowProgressOverride( file.CollectSingleFile, rdf_file_finder.CollectSingleFileProgress( status=rdf_file_finder.CollectSingleFileProgress.Status. COLLECTED, result=self._GenSampleResult())): with flow_test_lib.FlowResultMetadataOverride( file.CollectSingleFile, rdf_flow_objects.FlowResultMetadata( is_metadata_set=True, num_results_per_type_tag=[ rdf_flow_objects.FlowResultCount( type=rdf_file_finder.CollectSingleFileResult. __name__, count=1) ])): self.WaitUntil( self.IsElementPresent, "css=a[mat-stroked-button]:contains('Download')")