Esempio n. 1
0
    def testProcess(self):
        """Test the Process function on a Twitter iOS file."""
        plugin = twitter_ios.TwitterIOSPlugin()
        storage_writer = self._ParseDatabaseFileWithPlugin(['twitter_ios.db'],
                                                           plugin)

        # We should have 184 events in total.
        #  - 25 Contacts creation events.
        #  - 25 Contacts update events.
        #  - 67 Status creation events.
        #  - 67 Status update events.
        self.assertEqual(184, storage_writer.number_of_events)

        events = list(storage_writer.GetEvents())

        # Test the first contact creation event.
        event = events[0]

        self.CheckTimestamp(event.timestamp, '2007-04-22 14:42:37.000000')

        self.assertEqual(event.timestamp_desc,
                         definitions.TIME_DESCRIPTION_CREATION)

        self.assertEqual(event.screen_name, 'BBCBreaking')
        self.assertEqual(event.name, 'BBC Breaking News')
        self.assertEqual(event.location, 'London, UK')
        self.assertEqual(event.following, 0)
        self.assertEqual(event.followers_count, 19466932)
        self.assertEqual(event.following_count, 3)
        self.assertEqual(event.url, 'http://www.bbc.co.uk/news')

        expected_description = (
            'Breaking news alerts and updates from the BBC. For news, features, '
            'analysis follow @BBCWorld (international) or @BBCNews (UK). Latest '
            'sport news @BBCSport.')

        self.assertEqual(event.description, expected_description)

        expected_profile_url = ('https://pbs.twimg.com/profile_images/'
                                '460740982498013184/wIPwMwru_normal.png')

        self.assertEqual(event.profile_url, expected_profile_url)

        expected_message = (
            'Screen name: BBCBreaking Profile picture URL: '
            'https://pbs.twimg.com/profile_images/460740982498013184/'
            'wIPwMwru_normal.png Name: BBC Breaking News Location: London, UK '
            'Description: Breaking news alerts and updates from the BBC. For '
            'news, features, analysis follow @BBCWorld (international) or '
            '@BBCNews (UK). Latest sport news @BBCSport. URL: '
            'http://www.bbc.co.uk/news Following: No Number of followers: '
            '19466932 Number of following: 3')

        expected_short_message = (
            'Screen name: BBCBreaking Description: Breaking news alerts and '
            'updates from t...')

        self._TestGetMessageStrings(event, expected_message,
                                    expected_short_message)

        # Test first contact modification event.
        event = events[1]

        self.CheckTimestamp(event.timestamp, '2015-12-02 15:35:44.000000')

        self.assertEqual(event.timestamp_desc,
                         definitions.TIME_DESCRIPTION_UPDATE)

        self.assertEqual(event.screen_name, 'BBCBreaking')
        self.assertEqual(event.name, 'BBC Breaking News')
        self.assertEqual(event.location, 'London, UK')
        self.assertEqual(event.following, 0)
        self.assertEqual(event.followers_count, 19466932)
        self.assertEqual(event.following_count, 3)
        self.assertEqual(event.url, 'http://www.bbc.co.uk/news')

        expected_description = (
            'Breaking news alerts and updates from the BBC. For news, features, '
            'analysis follow @BBCWorld (international) or @BBCNews (UK). Latest '
            'sport news @BBCSport.')

        self.assertEqual(event.description, expected_description)

        expected_profile_url = ('https://pbs.twimg.com/profile_images/'
                                '460740982498013184/wIPwMwru_normal.png')

        self.assertEqual(event.profile_url, expected_profile_url)

        expected_message = (
            'Screen name: BBCBreaking Profile picture URL: '
            'https://pbs.twimg.com/profile_images/460740982498013184/'
            'wIPwMwru_normal.png Name: BBC Breaking News Location: London, UK '
            'Description: Breaking news alerts and updates from the BBC. For '
            'news, features, analysis follow @BBCWorld (international) or '
            '@BBCNews (UK). Latest sport news @BBCSport. URL: '
            'http://www.bbc.co.uk/news Following: No Number of followers: '
            '19466932 Number of following: 3')

        expected_short_message = (
            'Screen name: BBCBreaking Description: Breaking news alerts and '
            'updates from t...')

        self._TestGetMessageStrings(event, expected_message,
                                    expected_short_message)

        # Test first status creation event.
        event = events[50]

        self.CheckTimestamp(event.timestamp, '2014-09-11 11:46:16.000000')

        self.assertEqual(event.timestamp_desc,
                         definitions.TIME_DESCRIPTION_CREATION)

        self.assertEqual(event.text, 'Never forget. http://t.co/L7bjWue1A2')
        self.assertEqual(event.user_id, 475222380)
        self.assertEqual(event.name, 'Heather Mahalik')
        self.assertEqual(event.retweet_count, 2)
        self.assertEqual(event.favorite_count, 3)
        self.assertEqual(event.favorited, 0)

        expected_message = (
            'Name: Heather Mahalik User Id: 475222380 Message: Never forget. '
            'http://t.co/L7bjWue1A2 Favorite: No Retweet Count: 2 Favorite '
            'Count: 3')

        expected_short_message = (
            'Name: Heather Mahalik Message: Never forget. http://t.co/L7bjWue1A2'
        )

        self._TestGetMessageStrings(event, expected_message,
                                    expected_short_message)

        # Test first status update event.
        event = events[51]

        self.CheckTimestamp(event.timestamp, '2015-12-02 15:39:37.000000')

        self.assertEqual(event.timestamp_desc,
                         definitions.TIME_DESCRIPTION_UPDATE)

        self.assertEqual(event.text, 'Never forget. http://t.co/L7bjWue1A2')
        self.assertEqual(event.user_id, 475222380)
        self.assertEqual(event.name, 'Heather Mahalik')
        self.assertEqual(event.retweet_count, 2)
        self.assertEqual(event.favorite_count, 3)
        self.assertEqual(event.favorited, 0)

        expected_message = (
            'Name: Heather Mahalik User Id: 475222380 Message: Never forget. '
            'http://t.co/L7bjWue1A2 Favorite: No Retweet Count: 2 Favorite '
            'Count: 3')

        expected_short_message = (
            'Name: Heather Mahalik Message: Never forget. http://t.co/L7bjWue1A2'
        )

        self._TestGetMessageStrings(event, expected_message,
                                    expected_short_message)
Esempio n. 2
0
    def testProcess(self):
        """Test the Process function on a Twitter iOS file."""
        plugin = twitter_ios.TwitterIOSPlugin()
        storage_writer = self._ParseDatabaseFileWithPlugin(['twitter_ios.db'],
                                                           plugin)

        # We should have 184 events in total.
        # * 25 Contacts creation events.
        # * 25 Contacts update events.
        # * 67 Status creation events.
        # * 67 Status update events.

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

        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())

        # Test the first contact creation event.
        expected_event_values = {
            'data_type':
            'twitter:ios:contact',
            'date_time':
            '2007-04-22 14:42:37',
            'description':
            ('Breaking news alerts and updates from the BBC. For news, '
             'features, analysis follow @BBCWorld (international) or @BBCNews '
             '(UK). Latest sport news @BBCSport.'),
            'followers_count':
            19466932,
            'following':
            0,
            'following_count':
            3,
            'location':
            'London, UK',
            'name':
            'BBC Breaking News',
            'profile_url':
            ('https://pbs.twimg.com/profile_images/460740982498013184/'
             'wIPwMwru_normal.png'),
            'screen_name':
            'BBCBreaking',
            'timestamp_desc':
            definitions.TIME_DESCRIPTION_CREATION,
            'url':
            'http://www.bbc.co.uk/news'
        }

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

        # Test a contact modification event.
        expected_event_values = {
            'data_type':
            'twitter:ios:contact',
            'date_time':
            '2015-12-02 15:35:44',
            'description':
            ('Breaking news alerts and updates from the BBC. For news, '
             'features, analysis follow @BBCWorld (international) or @BBCNews '
             '(UK). Latest sport news @BBCSport.'),
            'followers_count':
            19466932,
            'following':
            0,
            'following_count':
            3,
            'location':
            'London, UK',
            'name':
            'BBC Breaking News',
            'profile_url': ('https://pbs.twimg.com/profile_images/'
                            '460740982498013184/wIPwMwru_normal.png'),
            'screen_name':
            'BBCBreaking',
            'timestamp_desc':
            definitions.TIME_DESCRIPTION_UPDATE,
            'url':
            'http://www.bbc.co.uk/news'
        }

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

        # Test a status creation event.
        expected_event_values = {
            'data_type': 'twitter:ios:status',
            'date_time': '2014-09-11 11:46:16',
            'favorite_count': 3,
            'favorited': 0,
            'name': 'Heather Mahalik',
            'retweet_count': 2,
            'text': 'Never forget. http://t.co/L7bjWue1A2',
            'timestamp_desc': definitions.TIME_DESCRIPTION_CREATION,
            'user_id': 475222380
        }

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

        # Test a status update event.
        expected_event_values = {
            'data_type': 'twitter:ios:status',
            'date_time': '2015-12-02 15:39:37',
            'favorite_count': 3,
            'favorited': 0,
            'name': 'Heather Mahalik',
            'retweet_count': 2,
            'text': 'Never forget. http://t.co/L7bjWue1A2',
            'timestamp_desc': definitions.TIME_DESCRIPTION_UPDATE,
            'user_id': 475222380
        }

        self.CheckEventValues(storage_writer, events[51],
                              expected_event_values)
Esempio n. 3
0
    def testProcess(self):
        """Test the Process function on a Twitter iOS file."""
        plugin_object = twitter_ios.TwitterIOSPlugin()
        storage_writer = self._ParseDatabaseFileWithPlugin([u'twitter_ios.db'],
                                                           plugin_object)

        # We should have 184 events in total.
        #  - 25 Contacts creation events.
        #  - 25 Contacts update events.
        #  - 67 Status creation events.
        #  - 67 Status update events.
        self.assertEqual(184, len(storage_writer.events))

        # Test the first contact creation event.
        test_event = storage_writer.events[0]
        expected_timestamp = timelib.Timestamp.CopyFromString(
            u'2007-04-22 14:42:37')
        self.assertEqual(test_event.timestamp, expected_timestamp)

        self.assertEqual(test_event.timestamp_desc,
                         eventdata.EventTimestamp.CREATION_TIME)

        self.assertEqual(test_event.screen_name, u'BBCBreaking')
        self.assertEqual(test_event.name, u'BBC Breaking News')
        self.assertEqual(test_event.location, u'London, UK')
        self.assertEqual(test_event.following, 0)
        self.assertEqual(test_event.followers_cnt, 19466932)
        self.assertEqual(test_event.following_cnt, 3)
        self.assertEqual(test_event.url, u'http://www.bbc.co.uk/news')

        expected_description = (
            u'Breaking news alerts and updates from the BBC. For news, features, '
            u'analysis follow @BBCWorld (international) or @BBCNews (UK). Latest '
            u'sport news @BBCSport.')

        self.assertEqual(test_event.description, expected_description)

        expected_profile_url = (u'https://pbs.twimg.com/profile_images/'
                                u'460740982498013184/wIPwMwru_normal.png')

        self.assertEqual(test_event.profile_url, expected_profile_url)

        expected_msg = (
            u'Screen name: BBCBreaking Profile picture URL: '
            u'https://pbs.twimg.com/profile_images/460740982498013184/'
            u'wIPwMwru_normal.png Name: BBC Breaking News Location: London, UK '
            u'Description: Breaking news alerts and updates from the BBC. For '
            u'news, features, analysis follow @BBCWorld (international) or '
            u'@BBCNews (UK). Latest sport news @BBCSport. URL: '
            u'http://www.bbc.co.uk/news Following: No Number of followers: '
            u'19466932 Number of following: 3')

        expected_msg_short = (
            u'Screen name: BBCBreaking Description: Breaking news alerts and '
            u'updates from t...')

        self._TestGetMessageStrings(test_event, expected_msg,
                                    expected_msg_short)

        # Test first contact modification event.
        test_event = storage_writer.events[1]
        expected_timestamp = timelib.Timestamp.CopyFromString(
            u'2015-12-02 15:35:44')
        self.assertEqual(test_event.timestamp, expected_timestamp)

        self.assertEqual(test_event.timestamp_desc,
                         eventdata.EventTimestamp.UPDATE_TIME)

        self.assertEqual(test_event.screen_name, u'BBCBreaking')
        self.assertEqual(test_event.name, u'BBC Breaking News')
        self.assertEqual(test_event.location, u'London, UK')
        self.assertEqual(test_event.following, 0)
        self.assertEqual(test_event.followers_cnt, 19466932)
        self.assertEqual(test_event.following_cnt, 3)
        self.assertEqual(test_event.url, u'http://www.bbc.co.uk/news')

        expected_description = (
            u'Breaking news alerts and updates from the BBC. For news, features, '
            u'analysis follow @BBCWorld (international) or @BBCNews (UK). Latest '
            u'sport news @BBCSport.')

        self.assertEqual(test_event.description, expected_description)

        expected_profile_url = (u'https://pbs.twimg.com/profile_images/'
                                u'460740982498013184/wIPwMwru_normal.png')

        self.assertEqual(test_event.profile_url, expected_profile_url)

        expected_msg = (
            u'Screen name: BBCBreaking Profile picture URL: '
            u'https://pbs.twimg.com/profile_images/460740982498013184/'
            u'wIPwMwru_normal.png Name: BBC Breaking News Location: London, UK '
            u'Description: Breaking news alerts and updates from the BBC. For '
            u'news, features, analysis follow @BBCWorld (international) or '
            u'@BBCNews (UK). Latest sport news @BBCSport. URL: '
            u'http://www.bbc.co.uk/news Following: No Number of followers: '
            u'19466932 Number of following: 3')

        expected_msg_short = (
            u'Screen name: BBCBreaking Description: Breaking news alerts and '
            u'updates from t...')

        self._TestGetMessageStrings(test_event, expected_msg,
                                    expected_msg_short)

        # Test first status creation event.
        test_event = storage_writer.events[50]
        expected_timestamp = timelib.Timestamp.CopyFromString(
            u'2014-09-11 11:46:16')
        self.assertEqual(test_event.timestamp, expected_timestamp)

        self.assertEqual(test_event.timestamp_desc,
                         eventdata.EventTimestamp.CREATION_TIME)

        self.assertEqual(test_event.text,
                         u'Never forget. http://t.co/L7bjWue1A2')
        self.assertEqual(test_event.user_id, 475222380)
        self.assertEqual(test_event.name, u'Heather Mahalik')
        self.assertEqual(test_event.retweet_cnt, 2)
        self.assertEqual(test_event.favorite_cnt, 3)
        self.assertEqual(test_event.favorited, 0)

        expected_msg = (
            u'Name: Heather Mahalik User Id: 475222380 Message: Never forget. '
            u'http://t.co/L7bjWue1A2 Favorite: No Retweet Count: 2 Favorite '
            u'Count: 3')

        expected_msg_short = (
            u'Name: Heather Mahalik Message: Never forget. http://t.co/L7bjWue1A2'
        )

        self._TestGetMessageStrings(test_event, expected_msg,
                                    expected_msg_short)

        # Test first status update event.
        test_event = storage_writer.events[51]
        expected_timestamp = timelib.Timestamp.CopyFromString(
            u'2015-12-02 15:39:37')
        self.assertEqual(test_event.timestamp, expected_timestamp)

        self.assertEqual(test_event.timestamp_desc,
                         eventdata.EventTimestamp.UPDATE_TIME)

        self.assertEqual(test_event.text,
                         u'Never forget. http://t.co/L7bjWue1A2')
        self.assertEqual(test_event.user_id, 475222380)
        self.assertEqual(test_event.name, u'Heather Mahalik')
        self.assertEqual(test_event.retweet_cnt, 2)
        self.assertEqual(test_event.favorite_cnt, 3)
        self.assertEqual(test_event.favorited, 0)

        expected_msg = (
            u'Name: Heather Mahalik User Id: 475222380 Message: Never forget. '
            u'http://t.co/L7bjWue1A2 Favorite: No Retweet Count: 2 Favorite '
            u'Count: 3')

        expected_msg_short = (
            u'Name: Heather Mahalik Message: Never forget. http://t.co/L7bjWue1A2'
        )

        self._TestGetMessageStrings(test_event, expected_msg,
                                    expected_msg_short)
Esempio n. 4
0
    def testProcess(self):
        """Test the Process function on a Twitter iOS file."""
        plugin = twitter_ios.TwitterIOSPlugin()
        storage_writer = self._ParseDatabaseFileWithPlugin(['twitter_ios.db'],
                                                           plugin)

        # We should have 184 events in total.
        # * 25 Contacts creation events.
        # * 25 Contacts update events.
        # * 67 Status creation events.
        # * 67 Status update events.
        self.assertEqual(184, storage_writer.number_of_events)

        events = list(storage_writer.GetEvents())

        # Test the first contact creation event.
        expected_event_values = {
            'description':
            ('Breaking news alerts and updates from the BBC. For news, '
             'features, analysis follow @BBCWorld (international) or @BBCNews '
             '(UK). Latest sport news @BBCSport.'),
            'followers_count':
            19466932,
            'following':
            0,
            'following_count':
            3,
            'location':
            'London, UK',
            'name':
            'BBC Breaking News',
            'profile_url':
            ('https://pbs.twimg.com/profile_images/460740982498013184/'
             'wIPwMwru_normal.png'),
            'screen_name':
            'BBCBreaking',
            'timestamp':
            '2007-04-22 14:42:37.000000',
            'timestamp_desc':
            definitions.TIME_DESCRIPTION_CREATION,
            'url':
            'http://www.bbc.co.uk/news'
        }

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

        expected_message = (
            'Screen name: BBCBreaking Profile picture URL: '
            'https://pbs.twimg.com/profile_images/460740982498013184/'
            'wIPwMwru_normal.png Name: BBC Breaking News Location: London, UK '
            'Description: Breaking news alerts and updates from the BBC. For '
            'news, features, analysis follow @BBCWorld (international) or '
            '@BBCNews (UK). Latest sport news @BBCSport. URL: '
            'http://www.bbc.co.uk/news Following: No Number of followers: '
            '19466932 Number of following: 3')
        expected_short_message = (
            'Screen name: BBCBreaking Description: Breaking news alerts and '
            'updates from t...')

        event_data = self._GetEventDataOfEvent(storage_writer, events[0])
        self._TestGetMessageStrings(event_data, expected_message,
                                    expected_short_message)

        # Test a contact modification event.
        expected_event_values = {
            'description':
            ('Breaking news alerts and updates from the BBC. For news, '
             'features, analysis follow @BBCWorld (international) or @BBCNews '
             '(UK). Latest sport news @BBCSport.'),
            'followers_count':
            19466932,
            'following':
            0,
            'following_count':
            3,
            'location':
            'London, UK',
            'name':
            'BBC Breaking News',
            'profile_url': ('https://pbs.twimg.com/profile_images/'
                            '460740982498013184/wIPwMwru_normal.png'),
            'screen_name':
            'BBCBreaking',
            'timestamp':
            '2015-12-02 15:35:44.000000',
            'timestamp_desc':
            definitions.TIME_DESCRIPTION_UPDATE,
            'url':
            'http://www.bbc.co.uk/news'
        }

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

        expected_message = (
            'Screen name: BBCBreaking Profile picture URL: '
            'https://pbs.twimg.com/profile_images/460740982498013184/'
            'wIPwMwru_normal.png Name: BBC Breaking News Location: London, UK '
            'Description: Breaking news alerts and updates from the BBC. For '
            'news, features, analysis follow @BBCWorld (international) or '
            '@BBCNews (UK). Latest sport news @BBCSport. URL: '
            'http://www.bbc.co.uk/news Following: No Number of followers: '
            '19466932 Number of following: 3')
        expected_short_message = (
            'Screen name: BBCBreaking Description: Breaking news alerts and '
            'updates from t...')

        event_data = self._GetEventDataOfEvent(storage_writer, events[1])
        self._TestGetMessageStrings(event_data, expected_message,
                                    expected_short_message)

        # Test a status creation event.
        expected_event_values = {
            'favorite_count': 3,
            'favorited': 0,
            'name': 'Heather Mahalik',
            'retweet_count': 2,
            'text': 'Never forget. http://t.co/L7bjWue1A2',
            'timestamp': '2014-09-11 11:46:16.000000',
            'timestamp_desc': definitions.TIME_DESCRIPTION_CREATION,
            'user_id': 475222380
        }

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

        expected_message = (
            'Name: Heather Mahalik User Id: 475222380 Message: Never forget. '
            'http://t.co/L7bjWue1A2 Favorite: No Retweet Count: 2 Favorite '
            'Count: 3')
        expected_short_message = (
            'Name: Heather Mahalik Message: Never forget. http://t.co/L7bjWue1A2'
        )

        event_data = self._GetEventDataOfEvent(storage_writer, events[50])
        self._TestGetMessageStrings(event_data, expected_message,
                                    expected_short_message)

        # Test a status update event.
        expected_event_values = {
            'favorite_count': 3,
            'favorited': 0,
            'name': 'Heather Mahalik',
            'retweet_count': 2,
            'text': 'Never forget. http://t.co/L7bjWue1A2',
            'timestamp': '2015-12-02 15:39:37.000000',
            'timestamp_desc': definitions.TIME_DESCRIPTION_UPDATE,
            'user_id': 475222380
        }

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

        expected_message = (
            'Name: Heather Mahalik User Id: 475222380 Message: Never forget. '
            'http://t.co/L7bjWue1A2 Favorite: No Retweet Count: 2 Favorite '
            'Count: 3')
        expected_short_message = (
            'Name: Heather Mahalik Message: Never forget. http://t.co/L7bjWue1A2'
        )

        event_data = self._GetEventDataOfEvent(storage_writer, events[51])
        self._TestGetMessageStrings(event_data, expected_message,
                                    expected_short_message)