Пример #1
0
    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)
Пример #2
0
  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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
  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')
Пример #6
0
    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)
Пример #7
0
 def setUp(self):
   """Makes preparations before running an individual test."""
   self._plugin = default.DefaultPlugin()
Пример #8
0
 def setUp(self):
   """Sets up the needed objects used throughout the test."""
   self._plugin = default.DefaultPlugin()
Пример #9
0
    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')