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')
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)
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)
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)
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)
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)
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)
def setUp(self): """Makes preparations before running an individual test.""" self._parser = firefox_cache.FirefoxCache2Parser()