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