def testProcessSingle(self): """Tests Process on a plist containing a root, value and timestamp.""" plugin = default.DefaultPlugin() storage_writer = self._ParsePlistWithPlugin( plugin, 'single', self._TOP_LEVEL_DICT_SINGLE_KEY) self.assertEqual(storage_writer.number_of_warnings, 0) self.assertEqual(storage_writer.number_of_events, 1) # The order in which PlistParser generates events is nondeterministic # hence we sort the events. events = list(storage_writer.GetSortedEvents()) expected_event_values = { 'key': 'LastUsed', 'root': '/DE-00-AD-00-BE-EF', 'timestamp': '2012-11-02 01:21:38.997672' } self.CheckEventValues(storage_writer, events[0], expected_event_values) expected_string = '/DE-00-AD-00-BE-EF/LastUsed' event_data = self._GetEventDataOfEvent(storage_writer, events[0]) self._TestGetMessageStrings(event_data, expected_string, expected_string)
def testProcessSingle(self): """Tests Process on a plist containing a root, value and timestamp.""" top_level_dict_single = { 'DE-00-AD-00-BE-EF': { 'Name': 'DBF Industries Slideshow Lazer', 'LastUsed': datetime.datetime( 2012, 11, 2, 1, 21, 38, 997672, tzinfo=pytz.UTC)}} plugin = default.DefaultPlugin() storage_writer = self._ParsePlistWithPlugin( plugin, 'single', top_level_dict_single) self.assertEqual(storage_writer.number_of_warnings, 0) self.assertEqual(storage_writer.number_of_events, 1) # The order in which PlistParser generates events is nondeterministic # hence we sort the events. events = list(storage_writer.GetSortedEvents()) event = events[0] self.CheckTimestamp(event.timestamp, '2012-11-02 01:21:38.997672') event_data = self._GetEventDataOfEvent(storage_writer, event) self.assertEqual(event_data.root, '/DE-00-AD-00-BE-EF') self.assertEqual(event_data.key, 'LastUsed') expected_string = ( '/DE-00-AD-00-BE-EF/LastUsed') self._TestGetMessageStrings(event, expected_string, expected_string)
def testProcessMulti(self): """Tests Process on a plist containing five keys with date values.""" plugin = default.DefaultPlugin() storage_writer = self._ParsePlistWithPlugin( plugin, 'nested', self._TOP_LEVEL_DICT_MULTIPLE_KEYS) number_of_events = storage_writer.GetNumberOfAttributeContainers( 'event') self.assertEqual(number_of_events, 5) 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) # The order in which PlistParser generates events is nondeterministic # hence we sort the events. events = list(storage_writer.GetSortedEvents()) expected_event_values = { 'data_type': 'plist:key', 'date_time': '2011-04-07 17:56:53.524275', 'key': 'LastNameUpdate', 'root': '/DeviceCache/44-00-00-00-00-02' } self.CheckEventValues(storage_writer, events[0], expected_event_values)
def testProcessSingle(self): """Tests Process on a plist containing a root, value and timestamp.""" plugin = default.DefaultPlugin() storage_writer = self._ParsePlistWithPlugin( plugin, 'single', self._TOP_LEVEL_DICT_SINGLE_KEY) number_of_events = storage_writer.GetNumberOfAttributeContainers( 'event') self.assertEqual(number_of_events, 1) 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) # The order in which PlistParser generates events is nondeterministic # hence we sort the events. events = list(storage_writer.GetSortedEvents()) expected_event_values = { 'data_type': 'plist:key', 'date_time': '2012-11-02 01:21:38.997672', 'key': 'LastUsed', 'root': '/DE-00-AD-00-BE-EF' } self.CheckEventValues(storage_writer, events[0], expected_event_values)
def testProcessMulti(self): """Tests Process on a plist containing five keys with date values.""" top_level_dict_many_keys = { 'DeviceCache': { '44-00-00-00-00-04': { 'Name': 'Apple Magic Trackpad 2', 'LMPSubversion': 796, 'LMPVersion': 3, 'PageScanMode': 0, 'ClassOfDevice': 9620, 'SupportedFeatures': b'\x00\x00\x00\x00', 'Manufacturer': 76, 'PageScanPeriod': 0, 'ClockOffset': 17981, 'LastNameUpdate': datetime.datetime( 2012, 11, 2, 1, 21, 38, 997672, tzinfo=pytz.UTC), 'InquiryRSSI': 198, 'PageScanRepetitionMode': 1, 'LastServicesUpdate': datetime.datetime(2012, 11, 2, 1, 13, 23, tzinfo=pytz.UTC), 'displayName': 'Apple Magic Trackpad 2', 'LastInquiryUpdate': datetime.datetime( 2012, 11, 2, 1, 13, 17, 324095, tzinfo=pytz.UTC), 'Services': '', 'BatteryPercent': 0.61}, '44-00-00-00-00-02': { 'Name': 'test-macpro', 'ClockOffset': 28180, 'ClassOfDevice': 3670276, 'PageScanMode': 0, 'LastNameUpdate': datetime.datetime( 2011, 4, 7, 17, 56, 53, 524275, tzinfo=pytz.UTC), 'PageScanPeriod': 2, 'PageScanRepetitionMode': 1, 'LastInquiryUpdate': datetime.datetime( 2012, 7, 10, 22, 5, 0, 20116, tzinfo=pytz.UTC)}}} plugin = default.DefaultPlugin() storage_writer = self._ParsePlistWithPlugin( plugin, 'nested', top_level_dict_many_keys) self.assertEqual(storage_writer.number_of_warnings, 0) self.assertEqual(storage_writer.number_of_events, 5) # The order in which PlistParser generates events is nondeterministic # hence we sort the events. events = list(storage_writer.GetSortedEvents()) event = events[0] self.CheckTimestamp(event.timestamp, '2011-04-07 17:56:53.524275') event_data = self._GetEventDataOfEvent(storage_writer, event) self.assertEqual(event_data.root, '/DeviceCache/44-00-00-00-00-02') self.assertEqual(event_data.key, 'LastNameUpdate')
def testProcessSingle(self): """Tests Process on a plist containing a root, value and timestamp.""" top_level_dict_single = { u'DE-00-AD-00-BE-EF': { u'Name': u'DBF Industries Slideshow Lazer', u'LastUsed': datetime.datetime(2012, 11, 2, 1, 21, 38, 997672, tzinfo=pytz.UTC) } } plugin_object = default.DefaultPlugin() storage_writer = self._ParsePlistWithPlugin(plugin_object, u'single', top_level_dict_single) self.assertEqual(len(storage_writer.events), 1) # The order in which PlistParser generates events is nondeterministic # hence we sort the events. events = self._GetSortedEvents(storage_writer.events) event_object = events[0] expected_timestamp = timelib.Timestamp.CopyFromString( u'2012-11-02 01:21:38.997672') self.assertEqual(event_object.timestamp, expected_timestamp) self.assertEqual(event_object.root, u'/DE-00-AD-00-BE-EF') self.assertEqual(event_object.key, u'LastUsed') expected_string = (u'/DE-00-AD-00-BE-EF/LastUsed') self._TestGetMessageStrings(event_object, expected_string, expected_string)
def setUp(self): """Makes preparations before running an individual test.""" self._plugin = default.DefaultPlugin()
def setUp(self): """Sets up the needed objects used throughout the test.""" self._plugin = default.DefaultPlugin()
def testProcessMulti(self): """Tests Process on a plist containing five keys with date values.""" top_level_dict_many_keys = { u'DeviceCache': { u'44-00-00-00-00-04': { u'Name': u'Apple Magic Trackpad 2', u'LMPSubversion': 796, u'LMPVersion': 3, u'PageScanMode': 0, u'ClassOfDevice': 9620, u'SupportedFeatures': b'\x00\x00\x00\x00', u'Manufacturer': 76, u'PageScanPeriod': 0, u'ClockOffset': 17981, u'LastNameUpdate': datetime.datetime(2012, 11, 2, 1, 21, 38, 997672, tzinfo=pytz.UTC), u'InquiryRSSI': 198, u'PageScanRepetitionMode': 1, u'LastServicesUpdate': datetime.datetime(2012, 11, 2, 1, 13, 23, tzinfo=pytz.UTC), u'displayName': u'Apple Magic Trackpad 2', u'LastInquiryUpdate': datetime.datetime(2012, 11, 2, 1, 13, 17, 324095, tzinfo=pytz.UTC), u'Services': u'', u'BatteryPercent': 0.61 }, u'44-00-00-00-00-02': { u'Name': u'test-macpro', u'ClockOffset': 28180, u'ClassOfDevice': 3670276, u'PageScanMode': 0, u'LastNameUpdate': datetime.datetime(2011, 4, 7, 17, 56, 53, 524275, tzinfo=pytz.UTC), u'PageScanPeriod': 2, u'PageScanRepetitionMode': 1, u'LastInquiryUpdate': datetime.datetime(2012, 7, 10, 22, 5, 0, 20116, tzinfo=pytz.UTC) } } } plugin_object = default.DefaultPlugin() storage_writer = self._ParsePlistWithPlugin(plugin_object, u'nested', top_level_dict_many_keys) self.assertEqual(len(storage_writer.events), 5) # The order in which PlistParser generates events is nondeterministic # hence we sort the events. events = self._GetSortedEvents(storage_writer.events) event_object = events[0] expected_timestamp = timelib.Timestamp.CopyFromString( u'2011-04-07 17:56:53.524275') self.assertEqual(event_object.timestamp, expected_timestamp) self.assertEqual(event_object.root, u'/DeviceCache/44-00-00-00-00-02') self.assertEqual(event_object.key, u'LastNameUpdate')