Ejemplo n.º 1
0
    def testCollectsChromeInternetExplorerAndSafariArtifacts(self):
        with mock.patch.object(collectors, "ArtifactCollectorFlow",
                               MockArtifactCollectorFlow):
            flow_id, results, progress = self._RunCollectBrowserHistory(
                browsers=[
                    webhistory.Browser.CHROME, webhistory.Browser.
                    INTERNET_EXPLORER, webhistory.Browser.SAFARI
                ])

        # MockArtifactCollectorFlow will produce a single stat entry with a
        # pathspec /home/foo/<artifact name> for each artifact scheduled for
        # collection. Hence, by looking at results we can make sure that
        # all artifacts were scheduled for collection.
        pathspecs = [r.stat_entry.pathspec for r in results]
        self.assertCountEqual(
            ["ChromeHistory", "InternetExplorerHistory", "SafariHistory"],
            [p.Basename() for p in pathspecs])
        # Check that tags for all browsers are present in the results set.
        self.assertCountEqual(
            flow_test_lib.GetFlowResultsByTag(self.client_id, flow_id).keys(),
            ["CHROME", "INTERNET_EXPLORER", "SAFARI"])

        self.assertLen(progress.browsers, 3)
        self.assertCountEqual([
            webhistory.Browser.CHROME, webhistory.Browser.INTERNET_EXPLORER,
            webhistory.Browser.SAFARI
        ], [bp.browser for bp in progress.browsers])
        for bp in progress.browsers:
            self.assertEqual(bp.status,
                             webhistory.BrowserProgress.Status.SUCCESS)
            self.assertEqual(bp.num_collected_files, 1)
Ejemplo n.º 2
0
  def testCollectsChromeArtifacts(self):
    with mock.patch.object(collectors, "ArtifactCollectorFlow",
                           MockArtifactCollectorFlow):
      flow_id, results, progress = self._RunCollectBrowserHistory(
          browsers=[webhistory.Browser.CHROME])

    self.assertLen(results, 1)
    self.assertEqual(results[0].browser, webhistory.Browser.CHROME)
    self.assertEqual(["/home/foo/ChromeHistory"],
                     [r.stat_entry.pathspec.path for r in results])
    self.assertEqual(
        list(flow_test_lib.GetFlowResultsByTag(self.client_id, flow_id).keys()),
        ["CHROME"])

    self.assertLen(progress.browsers, 1)
    self.assertEqual(progress.browsers[0].browser, webhistory.Browser.CHROME)
    self.assertEqual(progress.browsers[0].status,
                     webhistory.BrowserProgress.Status.SUCCESS)
    self.assertEqual(progress.browsers[0].num_collected_files, 1)
Ejemplo n.º 3
0
  def testRunGrrClientActionArtifactSplit(self):
    """Test that artifacts get split into separate collections."""
    client_id = self.SetupClient(0, system="Linux")
    with utils.Stubber(psutil, "process_iter", ProcessIter):
      client_mock = action_mocks.ActionMock(standard.ListProcesses)

      coll1 = rdf_artifacts.ArtifactSource(
          type=rdf_artifacts.ArtifactSource.SourceType.GRR_CLIENT_ACTION,
          attributes={"client_action": standard.ListProcesses.__name__})
      self.fakeartifact.sources.append(coll1)
      self.fakeartifact2.sources.append(coll1)
      artifact_list = ["FakeArtifact", "FakeArtifact2"]
      session_id = flow_test_lib.TestFlowHelper(
          collectors.ArtifactCollectorFlow.__name__,
          client_mock,
          artifact_list=artifact_list,
          token=self.token,
          client_id=client_id,
          split_output_by_artifact=True)
      results_by_tag = flow_test_lib.GetFlowResultsByTag(client_id, session_id)
      self.assertCountEqual(results_by_tag.keys(),
                            ["artifact:FakeArtifact", "artifact:FakeArtifact2"])