about summary refs log tree commit diff stats
path: root/src/server_events.h
Commit message (Expand)AuthorAgeFilesLines
* Implemented /roster by groupJames Booth2014-11-131-0/+2
* Removed debug messages when setting roles/affiliationsJames Booth2014-10-181-2/+0
* Show occupants role/affiliation changesJames Booth2014-10-181-2/+2
* Added reason to role/affiliation changesJames Booth2014-10-181-2/+2
* Removed /duck commandJames Booth2014-10-181-1/+0
* Include self in room rosterJames Booth2014-10-071-1/+2
* Refactor muc user handlerJames Booth2014-10-071-11/+1
* Refactor muc_user_handlerJames Booth2014-10-071-0/+5
* Added jid autocomplete for affiliation commandsJames Booth2014-10-061-0/+3
* Implemented setting and listing rolesJames Booth2014-10-061-0/+5
* Implemented /room kick commandJames Booth2014-10-051-1/+5
* Added /room kick commandJames Booth2014-10-051-0/+2
* Added /room subject commandJames Booth2014-10-051-1/+1
* Implemented getting affiliation list, and setting affiliationJames Booth2014-10-051-0/+6
* Added service discovery to /room info commandJames Booth2014-10-021-0/+2
* Store real jid with occupantsJames Booth2014-10-011-4/+4
* wip - Store roles and affiliations with occupantsJames Booth2014-09-301-5/+4
* Handle errors for /disco info requestsJames Booth2014-09-241-0/+1
* Removed _get_caps_key functionJames Booth2014-09-211-3/+2
* Handle result of room configuration submitJames Booth2014-09-171-1/+2
* Implemented /room config submit for saving room configurationJames Booth2014-09-101-0/+1
* Tidied error handling for room formsJames Booth2014-09-091-1/+1
* Merge branch 'master' into roomconfigJames Booth2014-09-071-0/+1
|\
| * Added error handling for /ping command responsesJames Booth2014-09-071-0/+1
* | Parse data form for room configurationJames Booth2014-09-041-0/+2
|/
* Added /ping commandJames Booth2014-09-041-0/+1
* Handle /room config cancelJames Booth2014-09-031-0/+1
* Show message when room requires configJames Booth2014-09-031-0/+1
* Added license exemption for OpenSSL to source headersJames Booth2014-08-241-0/+12
* Chat room windows now created only after successful joinJames Booth2014-04-211-1/+1
* Added simple stanza logging to main consoleJames Booth2014-04-151-0/+1
* Tidied ui dependenciesJames Booth2014-04-061-0/+1
* Updated copyrightJames Booth2014-03-091-1/+1
* Refactored handle_presence_error, removed no longer used functionsJames Booth2014-01-301-1/+2
* Renamed handle_error_message -> handle_presence_errorJames Booth2014-01-301-1/+1
* Moved error handling logic to server_eventsJames Booth2014-01-281-3/+2
* Added fallback message error handlersJames Booth2014-01-271-0/+2
* Show original error messageJames Booth2014-01-261-1/+1
* Handle recipient not foundJames Booth2014-01-261-0/+1
* Added id handler for pings, disable ping on error type 'cancel'James Booth2014-01-261-0/+1
* WIP - /statuses command optionsJames Booth2014-01-201-0/+2
* Refactored roster add/updateJames Booth2014-01-051-0/+1
* Moved roster handlers to server_eventsJames Booth2014-01-051-0/+5
* Moved presence handlers to server_eventsJames Booth2014-01-051-0/+18
* Moved messages handlers to server_eventsJames Booth2014-01-051-0/+16
* Moved handle_room_list and handle_disco_items to server_eventsJames Booth2014-01-051-0/+2
* Moved handle_disco_info to server_eventsJames Booth2014-01-051-0/+1
* Moved handle_software_version_result to server_eventsJames Booth2014-01-051-0/+2
* Moved handle_lost_connection and handle_failed_login to server_eventsJames Booth2014-01-051-0/+2
* Moved handle_login_account_success to server_eventsJames Booth2014-01-051-0/+1
pan class="n">autocomplete_complete(ac, "Hel", TRUE, FALSE); assert_string_equal("Hello", result); autocomplete_free(ac); free(result); } void add_two_and_complete_returns_first(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "Hello"); autocomplete_add(ac, "Help"); char* result = autocomplete_complete(ac, "Hel", TRUE, FALSE); assert_string_equal("Hello", result); autocomplete_free(ac); free(result); } void add_two_and_complete_returns_second(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "Hello"); autocomplete_add(ac, "Help"); char* result1 = autocomplete_complete(ac, "Hel", TRUE, FALSE); char* result2 = autocomplete_complete(ac, result1, TRUE, FALSE); assert_string_equal("Help", result2); autocomplete_free(ac); free(result1); free(result2); } void add_two_adds_two(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "Hello"); autocomplete_add(ac, "Help"); GList* result = autocomplete_create_list(ac); assert_int_equal(2, g_list_length(result)); autocomplete_free(ac); g_list_free_full(result, free); } void add_two_same_adds_one(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "Hello"); autocomplete_add(ac, "Hello"); GList* result = autocomplete_create_list(ac); assert_int_equal(1, g_list_length(result)); autocomplete_free(ac); g_list_free_full(result, free); } void add_two_same_updates(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "Hello"); autocomplete_add(ac, "Hello"); GList* result = autocomplete_create_list(ac); GList* first = g_list_nth(result, 0); char* str = first->data; assert_string_equal("Hello", str); autocomplete_free(ac); g_list_free_full(result, free); } void complete_accented_with_accented(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "èâîô"); char* result = autocomplete_complete(ac, "èâ", TRUE, FALSE); assert_string_equal("èâîô", result); autocomplete_free(ac); free(result); } void complete_accented_with_base(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "èâîô"); char* result = autocomplete_complete(ac, "ea", TRUE, FALSE); assert_string_equal("èâîô", result); autocomplete_free(ac); free(result); } void complete_both_with_accented(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "eaooooo"); autocomplete_add(ac, "èâîô"); char* result1 = autocomplete_complete(ac, "èâ", TRUE, FALSE); char* result2 = autocomplete_complete(ac, result1, TRUE, FALSE); assert_string_equal("èâîô", result2); autocomplete_free(ac); free(result1); free(result2); } void complete_both_with_base(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "eaooooo"); autocomplete_add(ac, "èâîô"); char* result1 = autocomplete_complete(ac, "ea", TRUE, FALSE); char* result2 = autocomplete_complete(ac, result1, TRUE, FALSE); assert_string_equal("èâîô", result2); autocomplete_free(ac); free(result1); free(result2); } void complete_ignores_case(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "MyBuddy"); char* result = autocomplete_complete(ac, "myb", TRUE, FALSE); assert_string_equal("MyBuddy", result); autocomplete_free(ac); free(result); } void complete_previous(void** state) { Autocomplete ac = autocomplete_new(); autocomplete_add(ac, "MyBuddy1"); autocomplete_add(ac, "MyBuddy2"); autocomplete_add(ac, "MyBuddy3"); char* result1 = autocomplete_complete(ac, "myb", TRUE, FALSE); char* result2 = autocomplete_complete(ac, result1, TRUE, FALSE); char* result3 = autocomplete_complete(ac, result2, TRUE, FALSE); char* result4 = autocomplete_complete(ac, result3, TRUE, TRUE); assert_string_equal("MyBuddy2", result4); autocomplete_free(ac); free(result1); free(result2); free(result3); free(result4); }