Exemplo n.º 1
0
    def testParseCache2Entry(self):
        """Test Firefox cache2 file parsing."""
        parser = firefox_cache.FirefoxCache2Parser()
        path_segments = [
            'firefox_cache', 'cache2',
            '1F4B3A4FC81FB19C530758231FA54313BE8F6FA2'
        ]
        storage_writer = self._ParseFile(path_segments, parser)

        self.assertEqual(storage_writer.number_of_warnings, 0)
        self.assertEqual(storage_writer.number_of_events, 3)

        events = list(storage_writer.GetEvents())

        event = events[0]

        self.CheckTimestamp(event.timestamp, '2015-05-02 15:35:31.000000')

        expected_url = (':https://tiles.cdn.mozilla.net/images/'
                        '8acf9436e1b315f5f04b9435a518bcd1aef131f8.5663.png')
        self.assertEqual(event.url, expected_url)

        self.assertEqual(event.request_method, 'GET')
        self.assertEqual(event.response_code, 'HTTP/1.1 200 OK')
        self.assertEqual(event.fetch_count, 2)

        event = events[1]

        self.CheckTimestamp(event.timestamp, '2015-05-02 15:35:31.000000')

        event = events[2]

        self.CheckTimestamp(event.timestamp, '2016-05-01 15:35:31.000000')
Exemplo n.º 2
0
    def testParseCache2Entry(self):
        """Test Firefox cache2 file parsing."""
        parser_object = firefox_cache.FirefoxCache2Parser()

        test_file = self._GetTestFilePath([
            u'firefox_cache', u'cache2',
            u'1F4B3A4FC81FB19C530758231FA54313BE8F6FA2'
        ])

        event_queue_consumer = self._ParseFile(parser_object, test_file)
        event_objects = self._GetEventObjectsFromQueue(event_queue_consumer)

        self.assertEquals(3, len(event_objects))

        expected_timestamp = timelib.Timestamp.CopyFromString(
            u'2015-05-02 15:35:31')
        self.assertEquals(event_objects[0].timestamp, expected_timestamp)

        expected_timestamp = timelib.Timestamp.CopyFromString(
            u'2015-05-02 15:35:31')
        self.assertEquals(event_objects[1].timestamp, expected_timestamp)

        expected_timestamp = timelib.Timestamp.CopyFromString(
            u'2016-05-01 15:35:31')
        self.assertEquals(event_objects[2].timestamp, expected_timestamp)

        expected_url = (u':https://tiles.cdn.mozilla.net/images/'
                        u'8acf9436e1b315f5f04b9435a518bcd1aef131f8.5663.png')
        self.assertEquals(event_objects[0].url, expected_url)

        self.assertEquals(event_objects[0].request_method, u'GET')
        self.assertEquals(event_objects[0].response_code, u'HTTP/1.1 200 OK')
        self.assertEquals(event_objects[0].fetch_count, 2)
Exemplo n.º 3
0
    def testParseVersion3Entry2(self):
        """Test Firefox version 3 cache2 file parsing."""
        parser = firefox_cache.FirefoxCache2Parser()
        path_segments = [
            'firefox_cache', 'cache2',
            '0EDDF8C091E2FED62E44BEDDDC1723F5BF38FE4F'
        ]

        storage_writer = self._ParseFile(path_segments, parser)

        events = list(storage_writer.GetEvents())

        expected_event_values = {
            'url': '~predictor-origin,:https://www.mozilla.org/',
            'data_type': 'firefox:cache:record',
            'date_time': '2021-08-07 22:42:42'
        }

        self.CheckEventValues(storage_writer, events[0], expected_event_values)

        expected_event_values = {
            'url': '~predictor-origin,:https://www.mozilla.org/',
            'data_type': 'firefox:cache:record',
            'date_time': '2021-08-07 22:42:44'
        }

        self.CheckEventValues(storage_writer, events[1], expected_event_values)
Exemplo n.º 4
0
    def testParseVersion3Entry(self):
        """Test Firefox version 3 cache2 file parsing."""
        parser = firefox_cache.FirefoxCache2Parser()
        path_segments = [
            'firefox_cache', 'cache2',
            '9E599395B8E39ED759C56FC9CD6BBD80FBB426DC'
        ]

        storage_writer = self._ParseFile(path_segments, parser)

        events = list(storage_writer.GetEvents())

        expected_event_values = {
            'url': '~predictor-origin,:http://github.com/',
            'data_type': 'firefox:cache:record',
            'date_time': '2021-07-18 02:52:12'
        }

        self.CheckEventValues(storage_writer, events[0], expected_event_values)

        expected_event_values = {
            'url': '~predictor-origin,:http://github.com/',
            'data_type': 'firefox:cache:record',
            'date_time': '2021-07-18 02:52:12'
        }

        self.CheckEventValues(storage_writer, events[1], expected_event_values)
Exemplo n.º 5
0
  def testParseInvalidCache2Entry(self):
    """Test file with valid filename and invalid content."""
    parser = firefox_cache.FirefoxCache2Parser()
    path_segments = [
        'firefox_cache', 'cache2', 'C966EB70794E44E7E3E8A260106D0C72439AF65B']

    with self.assertRaises(errors.UnableToParseFile):
      self._ParseFile(path_segments, parser)
Exemplo n.º 6
0
    def testParseInvalidCache2Entry(self):
        """Test file with valid filename and invalid content."""
        parser_object = firefox_cache.FirefoxCache2Parser()

        test_file = self._GetTestFilePath([
            u'firefox_cache', u'cache2',
            u'C966EB70794E44E7E3E8A260106D0C72439AF65B'
        ])

        with self.assertRaises(errors.UnableToParseFile):
            self._ParseFile(parser_object, test_file)
Exemplo n.º 7
0
    def testParseCache2Entry(self):
        """Test Firefox cache2 file parsing."""
        parser = firefox_cache.FirefoxCache2Parser()
        path_segments = [
            'firefox_cache', 'cache2',
            '1F4B3A4FC81FB19C530758231FA54313BE8F6FA2'
        ]
        storage_writer = self._ParseFile(path_segments, parser)

        number_of_events = storage_writer.GetNumberOfAttributeContainers(
            'event')
        self.assertEqual(number_of_events, 3)

        number_of_warnings = storage_writer.GetNumberOfAttributeContainers(
            'extraction_warning')
        self.assertEqual(number_of_warnings, 0)

        number_of_warnings = storage_writer.GetNumberOfAttributeContainers(
            'recovery_warning')
        self.assertEqual(number_of_warnings, 0)

        events = list(storage_writer.GetEvents())

        expected_event_values = {
            'data_type':
            'firefox:cache:record',
            'date_time':
            '2015-05-02 15:35:31',
            'fetch_count':
            2,
            'request_method':
            'GET',
            'response_code':
            'HTTP/1.1 200 OK',
            'url': (':https://tiles.cdn.mozilla.net/images/'
                    '8acf9436e1b315f5f04b9435a518bcd1aef131f8.5663.png')
        }

        self.CheckEventValues(storage_writer, events[0], expected_event_values)

        expected_event_values = {
            'data_type': 'firefox:cache:record',
            'date_time': '2015-05-02 15:35:31'
        }

        self.CheckEventValues(storage_writer, events[1], expected_event_values)

        expected_event_values = {
            'data_type': 'firefox:cache:record',
            'date_time': '2016-05-01 15:35:31'
        }

        self.CheckEventValues(storage_writer, events[2], expected_event_values)
Exemplo n.º 8
0
 def setUp(self):
     """Makes preparations before running an individual test."""
     self._parser = firefox_cache.FirefoxCache2Parser()