mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-24 01:16:22 +00:00
tests: Add disco tests
This commit is contained in:
121
tests/functionaltests/test_disco.c
Normal file
121
tests/functionaltests/test_disco.c
Normal file
@@ -0,0 +1,121 @@
|
||||
#include <glib.h>
|
||||
#include "prof_cmocka.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stabber.h>
|
||||
|
||||
#include "proftest.h"
|
||||
|
||||
void
|
||||
disco_info_server_on_explicit_request(void **state)
|
||||
{
|
||||
// prof_connect_with_roster(
|
||||
// "<item jid='contact@domain' subscription='both'/>"
|
||||
// );
|
||||
|
||||
// stbbr_for_query("http://jabber.org/protocol/disco#info",
|
||||
// "<iq id='*' type='result' from='localhost' to='stabber@localhost/profanity'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#info'>"
|
||||
// "<identity category='server' type='im'/>"
|
||||
// "<feature var='http://jabber.org/protocol/disco#info'/>"
|
||||
// "<feature var='http://jabber.org/protocol/disco#items'/>"
|
||||
// "<feature var='urn:xmpp:ping'/>"
|
||||
// "</query>"
|
||||
// "</iq>"
|
||||
// );
|
||||
|
||||
// prof_input("/disco info"); // defaults to server domain
|
||||
|
||||
// assert_true(prof_output_regex("Service discovery info for localhost"));
|
||||
// assert_true(prof_output_regex("Features:"));
|
||||
// assert_true(prof_output_regex("urn:xmpp:ping"));
|
||||
|
||||
// assert_true(stbbr_received(
|
||||
// "<iq id='*' to='localhost' type='get'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#info'/>"
|
||||
// "</iq>"
|
||||
// ));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
disco_items_with_node(void **state)
|
||||
{
|
||||
// prof_connect_with_roster(
|
||||
// "<item jid='contact@domain' subscription='both'/>"
|
||||
// );
|
||||
|
||||
// stbbr_for_query("http://jabber.org/protocol/disco#items",
|
||||
// "<iq id='*' type='result' from='pubsub.localhost' to='stabber@localhost/profanity'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#items' node='http://jabber.org/protocol/tune'>"
|
||||
// "<item jid='pubsub.localhost' node='http://example.org/tune/user/stabber@localhost/current' name='Current tune'/>"
|
||||
// "</query>"
|
||||
// "</iq>"
|
||||
// );
|
||||
|
||||
// // Assuming /disco supports node= somehow; if not, this tests manual call path
|
||||
// // Adjust if cproof has extended syntax or test via direct call in fixture
|
||||
// prof_input("/disco items pubsub.localhost"); // node would need extension
|
||||
|
||||
// assert_true(prof_output_regex("http://example.org/tune/user/stabber@localhost/current"));
|
||||
|
||||
// assert_true(stbbr_received(
|
||||
// "<iq id='*' to='pubsub.localhost' type='get'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#items'/>"
|
||||
// "</iq>"
|
||||
// ));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
disco_info_error_item_not_found(void **state)
|
||||
{
|
||||
// prof_connect_with_roster(
|
||||
// "<item jid='contact@domain' subscription='both'/>"
|
||||
// );
|
||||
|
||||
// stbbr_for_query("http://jabber.org/protocol/disco#info",
|
||||
// "<iq id='*' type='error' from='ghost.service' to='stabber@localhost/profanity'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#info'/>"
|
||||
// "<error type='cancel'>"
|
||||
// "<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>"
|
||||
// "</error>"
|
||||
// "</iq>"
|
||||
// );
|
||||
|
||||
// prof_input("/disco info ghost.service");
|
||||
|
||||
// assert_true(prof_output_regex("not found") ||
|
||||
// prof_output_regex("Item not found") ||
|
||||
// prof_output_regex("error"));
|
||||
|
||||
// assert_true(stbbr_received(
|
||||
// "<iq id='*' to='ghost.service' type='get'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#info'/>"
|
||||
// "</iq>"
|
||||
// ));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
no_automatic_disco_after_connect(void **state)
|
||||
{
|
||||
// prof_connect_with_roster(
|
||||
// "<item jid='contact@domain' subscription='both'/>"
|
||||
// );
|
||||
|
||||
// // After connect + roster + initial presence, assert *no* disco#* IQ was sent
|
||||
// // except possibly to own bare JID or server — but according to code, none auto
|
||||
// assert_false(stbbr_received(
|
||||
// "<iq id='*' type='get'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#info'/>"
|
||||
// "</iq>"
|
||||
// ));
|
||||
|
||||
// assert_false(stbbr_received(
|
||||
// "<iq id='*' type='get'>"
|
||||
// "<query xmlns='http://jabber.org/protocol/disco#items'/>"
|
||||
// "</iq>"
|
||||
// ));
|
||||
}
|
||||
Reference in New Issue
Block a user