2016-02-01 07:10:28 +01:00
# include "SlackRTM.h"
# include "SlackIdManager.h"
# include <cppunit/TestFixture.h>
# include <cppunit/extensions/HelperMacros.h>
# include "BasicSlackTest.h"
using namespace Transport ;
class SlackRTMTest : public CPPUNIT_NS : : TestFixture , public BasicTest {
CPPUNIT_TEST_SUITE ( SlackRTMTest ) ;
CPPUNIT_TEST ( handleRTMStart ) ;
2016-02-01 09:18:16 +01:00
CPPUNIT_TEST ( handlePayloadReceivedChannelJoined ) ;
CPPUNIT_TEST ( handlePayloadReceivedChannelCreated ) ;
2016-02-01 07:10:28 +01:00
CPPUNIT_TEST_SUITE_END ( ) ;
public :
SlackRTM * m_rtm ;
SlackIdManager * m_idManager ;
std : : string rtmStartPayload ;
void setUp ( void ) {
setMeUp ( ) ;
UserInfo uinfo ;
2016-02-23 12:37:10 +01:00
uinfo . id = 1 ;
2016-02-01 07:10:28 +01:00
m_idManager = new SlackIdManager ( ) ;
m_rtm = new SlackRTM ( component , storage , m_idManager , uinfo ) ;
2016-02-01 08:09:47 +01:00
rtmStartPayload = " { \" ok \" :true, \" self \" :{ \" id \" : \" U0KECRDJB \" , \" name \" : \" spectrum2 \" , \" prefs \" :{ \" highlight_words \" : \" \" , \" user_colors \" : \" \" , \" color_names_in_list \" :true, \" growls_enabled \" :true, \" tz \" :null, \" push_dm_alert \" :true, \" push_mention_alert \" :true, \" msg_replies \" : \" { \\ \" flexpane \\ \" :false } \" , \" push_everything \" :true, \" push_idle_wait \" :2, \" push_sound \" : \" b2.mp3 \" , \" push_loud_channels \" : \" \" , \" push_mention_channels \" : \" \" , \" push_loud_channels_set \" : \" \" , \" email_alerts \" : \" instant \" , \" email_alerts_sleep_until \" :0, \" email_misc \" :true, \" email_weekly \" :true, \" welcome_message_hidden \" :false, \" all_channels_loud \" :true, \" loud_channels \" : \" \" , \" never_channels \" : \" \" , \" loud_channels_set \" : \" \" , \" show_member_presence \" :true, \" search_sort \" : \" timestamp \" , \" expand_inline_imgs \" :true, \" expand_internal_inline_imgs \" :true, \" expand_snippets \" :false, \" posts_formatting_guide \" :true, \" seen_live_support_popup \" :false, \" seen_welcome_2 \" :false, \" seen_ssb_prompt \" :false, \" seen_spaces_new_xp_tooltip \" :false, \" spaces_new_xp_banner_dismissed \" :false, \" search_only_my_channels \" :false, \" emoji_mode \" : \" default \" , \" emoji_use \" : \" \" , \" has_invited \" :false, \" has_uploaded \" :false, \" has_created_channel \" :false, \" search_exclude_channels \" : \" \" , \" messages_theme \" : \" default \" , \" webapp_spellcheck \" :true, \" no_joined_overlays \" :false, \" no_created_overlays \" :false, \" dropbox_enabled \" :false, \" seen_domain_invite_reminder \" :false, \" seen_member_invite_reminder \" :false, \" mute_sounds \" :false, \" arrow_history \" :false, \" tab_ui_return_selects \" :true, \" obey_inline_img_limit \" :true, \" new_msg_snd \" : \" knock_brush.mp3 \" , \" collapsible \" :false, \" collapsible_by_click \" :true, \" require_at \" :false, \" ssb_space_window \" : \" \" , \" mac_ssb_bounce \" : \" \" , \" mac_ssb_bullet \" :true, \" expand_non_media_attachments \" :true, \" show_typing \" :true, \" pagekeys_handled \" :true, \" last_snippet_type \" : \" \" , \" display_real_names_override \" :0, \" time24 \" :false, \" enter_is_special_in_tbt \" :false, \" graphic_emoticons \" :false, \" convert_emoticons \" :true, \" autoplay_chat_sounds \" :true, \" ss_emojis \" :true, \" sidebar_behavior \" : \" \" , \" seen_onboarding_start \" :false, \" onboarding_cancelled \" :false, \" seen_onboarding_slackbot_conversation \" :false, \" seen_onboarding_channels \" :false, \" seen_onboarding_direct_messages \" :false, \" seen_onboarding_invites \" :false, \" seen_onboarding_search \" :false, \" seen_onboarding_recent_mentions \" :false, \" seen_onboarding_starred_items \" :false, \" seen_onboarding_private_groups \" :false, \" onboarding_slackbot_conversation_step \" :0, \" dnd_enabled \" :false, \" dnd_start_hour \" : \" 22:00 \" , \" dnd_end_hour \" : \" 08:00 \" , \" mark_msgs_read_immediately \" :true, \" start_scroll_at_oldest \" :true, \" snippet_editor_wrap_long_lines \" :false, \" ls_disabled \" :false, \" sidebar_theme \" : \" default \" , \" sidebar_theme_custom_values \" : \" \" , \" f_key_search \" :false, \" k_key_omnibox \" :true, \" speak_growls \" :false, \" mac_speak_voice \" : \" com.apple.speech.synthesis.voice.Alex \" , \" mac_speak_speed \" :250, \" comma_key_prefs \" :false, \" at_channel_suppressed_channels \" : \" \" , \" push_at_channel_suppressed_channels \" : \" \" , \" prompted_for_email_disabling \" :false, \" full_text_extracts \" :false, \" no_text_in_notifications \" :false, \" muted_channels \" : \" \" , \" no_macssb1_banner \" :false, \" no_winssb1_banner \" :false, \" no_omnibox_in_channels \" :false, \" k_key_omnibox_auto_hide_count \" :0, \" hide_user_group_info_pane \" :false, \" mentions_exclude_at_user_groups \" :false, \" privacy_policy_seen \" :true, \" search_exclude_bots \" :false, \" fuzzy_matching \" :false, \" load_lato_2 \" :false, \" fuller_timestamps \" :false, \" last_seen_at_channel_warning \" :0, \" flex_resize_window \" :false, \" msg_preview \" :false, \" msg_preview_displaces \" :true, \" msg_preview_persistent \" :true, \" emoji_autocomplete_big \" :false, \" winssb_run_from_tray \" :true, \" winssb_window_flash_behavior \" : \" idle \" , \" two_factor_auth_enabled \" :false, \" two_factor_type \" :null, \" two_factor_backup_type \" :null, \" mentions_exclude_at_channels \" :true, \" confirm_clear_all_unreads \" :true, \" confirm_user_marked_away \" :true, \" box_enabled \" :false, \" seen_single_emoji_msg \" :false, \" confirm_sh_call_start \" :true, \" preferred_skin_tone \" : \" \" , \" show_all_skin_tones \
2016-02-01 07:10:28 +01:00
}
void tearDown ( void ) {
delete m_rtm ;
delete m_idManager ;
tearMeDown ( ) ;
}
void handleRTMStart ( ) {
rapidjson : : Document json ;
json . Parse < 0 > ( rtmStartPayload . c_str ( ) ) ;
m_rtm - > handleRTMStart ( NULL , true , json , rtmStartPayload ) ;
CPPUNIT_ASSERT_EQUAL ( std : : string ( " spectrum2 " ) , m_idManager - > getSelfName ( ) ) ;
CPPUNIT_ASSERT_EQUAL ( std : : string ( " U0KECRDJB " ) , m_idManager - > getSelfId ( ) ) ;
CPPUNIT_ASSERT_EQUAL ( std : : string ( " owner " ) , m_idManager - > getName ( " U0H6EEWNN " ) ) ;
CPPUNIT_ASSERT_EQUAL ( std : : string ( " C0H6B0SQM " ) , m_idManager - > getId ( " spectrum2_contactlist " ) ) ;
2016-02-01 08:09:47 +01:00
CPPUNIT_ASSERT_EQUAL ( true , m_idManager - > hasMember ( " C0KH09UQ2 " , " U0KECRDJB " ) ) ;
CPPUNIT_ASSERT_EQUAL ( false , m_idManager - > hasMember ( " C0KH09UQ2 " , " U1KECRDJB " ) ) ;
2016-02-01 09:18:16 +01:00
}
void handlePayloadReceivedChannelJoined ( ) {
CPPUNIT_ASSERT_EQUAL ( false , m_idManager - > hasMember ( " C0KSK7V7E " , " U0KECRDJB " ) ) ;
std : : string payload = " { \" type \" : \" channel_joined \" , \" channel \" :{ \" id \" : \" C0KSK7V7E \" , \" name \" : \" new_slack_channel \" , \" is_channel \" :true, \" created \" :1454231085, \" creator \" : \" U0H6EEWNN \" , \" is_archived \" :false, \" is_general \" :false, \" is_member \" :true, \" last_read \" : \" 1454231085.000002 \" , \" latest \" :{ \" user \" : \" U0H6EEWNN \" , \" type \" : \" message \" , \" subtype \" : \" channel_join \" , \" text \" : \" <@U0H6EEWNN|owner> has joined the channel \" , \" ts \" : \" 1454231085.000002 \" }, \" unread_count \" :0, \" unread_count_display \" :0, \" members \" :[ \" U0H6EEWNN \" , \" U0KECRDJB \" ], \" topic \" :{ \" value \" : \" \" , \" creator \" : \" \" , \" last_set \" :0}, \" purpose \" :{ \" value \" : \" \" , \" creator \" : \" \" , \" last_set \" :0}}} " ;
m_rtm - > handlePayloadReceived ( payload ) ;
CPPUNIT_ASSERT_EQUAL ( std : : string ( " C0KSK7V7E " ) , m_idManager - > getId ( " new_slack_channel " ) ) ;
CPPUNIT_ASSERT_EQUAL ( true , m_idManager - > hasMember ( " C0KSK7V7E " , " U0KECRDJB " ) ) ;
CPPUNIT_ASSERT_EQUAL ( false , m_idManager - > hasMember ( " C0KSK7V7E " , " U1KECRDJB " ) ) ;
}
void handlePayloadReceivedChannelCreated ( ) {
std : : string payload = " { \" type \" : \" channel_created \" , \" channel \" :{ \" id \" : \" C0KH09UQ2 \" , \" is_channel \" :true, \" name \" : \" my_new_channel \" , \" created \" :1453906652, \" creator \" : \" U0H6EEWNN \" }, \" event_ts \" : \" 1453906652.085393 \" } " ;
m_rtm - > handlePayloadReceived ( payload ) ;
CPPUNIT_ASSERT_EQUAL ( std : : string ( " C0KH09UQ2 " ) , m_idManager - > getId ( " my_new_channel " ) ) ;
2016-02-01 07:10:28 +01:00
}
} ;
CPPUNIT_TEST_SUITE_REGISTRATION ( SlackRTMTest ) ;