mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
Simplified expect tests
This commit is contained in:
parent
7507e4ecfa
commit
db9376d82b
@ -20,6 +20,8 @@
|
||||
char *config_orig;
|
||||
char *data_orig;
|
||||
|
||||
int fd = 0;
|
||||
|
||||
gboolean
|
||||
_create_dir(char *name)
|
||||
{
|
||||
@ -141,6 +143,8 @@ init_prof_test(void **state)
|
||||
_create_data_dir();
|
||||
_create_chatlogs_dir();
|
||||
_create_logs_dir();
|
||||
|
||||
prof_start();
|
||||
}
|
||||
|
||||
void
|
||||
@ -153,3 +157,31 @@ close_prof_test(void **state)
|
||||
|
||||
stbbr_stop();
|
||||
}
|
||||
|
||||
void
|
||||
prof_start(void)
|
||||
{
|
||||
fd = exp_spawnl("./profanity", NULL);
|
||||
FILE *fp = fdopen(fd, "r+");
|
||||
|
||||
if (fp == NULL) {
|
||||
assert_true(FALSE);
|
||||
}
|
||||
|
||||
setbuf(fp, (char *)0);
|
||||
}
|
||||
|
||||
void
|
||||
prof_input(char *input)
|
||||
{
|
||||
GString *inp_str = g_string_new(input);
|
||||
g_string_append(inp_str, "\r");
|
||||
write(fd, inp_str->str, inp_str->len);
|
||||
g_string_free(inp_str, TRUE);
|
||||
}
|
||||
|
||||
int
|
||||
prof_output(char *text)
|
||||
{
|
||||
return (1 == exp_expectl(fd, exp_exact, text, 1, exp_end));
|
||||
}
|
||||
|
@ -7,4 +7,8 @@
|
||||
void init_prof_test(void **state);
|
||||
void close_prof_test(void **state);
|
||||
|
||||
void prof_start(void);
|
||||
void prof_input(char *input);
|
||||
int prof_output(char *text);
|
||||
|
||||
#endif
|
||||
|
@ -19,18 +19,18 @@ int main(int argc, char* argv[]) {
|
||||
unit_test_setup_teardown(connect_jid,
|
||||
init_prof_test,
|
||||
close_prof_test),
|
||||
// unit_test_setup_teardown(connect_jid_requests_roster,
|
||||
// init_prof_test,
|
||||
// close_prof_test),
|
||||
// unit_test_setup_teardown(connect_jid_sends_presence_after_receiving_roster,
|
||||
// init_prof_test,
|
||||
// close_prof_test),
|
||||
// unit_test_setup_teardown(connect_jid_requests_bookmarks,
|
||||
// init_prof_test,
|
||||
// close_prof_test),
|
||||
// unit_test_setup_teardown(connect_bad_password,
|
||||
// init_prof_test,
|
||||
// close_prof_test),
|
||||
unit_test_setup_teardown(connect_jid_requests_roster,
|
||||
init_prof_test,
|
||||
close_prof_test),
|
||||
unit_test_setup_teardown(connect_jid_sends_presence_after_receiving_roster,
|
||||
init_prof_test,
|
||||
close_prof_test),
|
||||
unit_test_setup_teardown(connect_jid_requests_bookmarks,
|
||||
init_prof_test,
|
||||
close_prof_test),
|
||||
unit_test_setup_teardown(connect_bad_password,
|
||||
init_prof_test,
|
||||
close_prof_test),
|
||||
// unit_test_setup_teardown(show_presence_updates,
|
||||
// init_prof_test,
|
||||
// close_prof_test),
|
||||
|
@ -11,11 +11,31 @@
|
||||
|
||||
#include "proftest.h"
|
||||
|
||||
#define CONNECT_CMD "/connect stabber@localhost port 5230\r"
|
||||
#define PASSWORD "password\r"
|
||||
|
||||
void
|
||||
connect_jid(void **state)
|
||||
{
|
||||
prof_input("/connect stabber@localhost port 5230");
|
||||
prof_input("password");
|
||||
|
||||
assert_true(prof_output("Connecting as stabber@localhost"));
|
||||
assert_true(prof_output("stabber@localhost logged in successfully"));
|
||||
}
|
||||
|
||||
void
|
||||
connect_jid_requests_roster(void **state)
|
||||
{
|
||||
prof_input("/connect stabber@localhost port 5230");
|
||||
prof_input("password");
|
||||
|
||||
sleep(1);
|
||||
|
||||
assert_true(stbbr_verify(
|
||||
"<iq id=\"*\" type=\"get\"><query xmlns=\"jabber:iq:roster\"/></iq>"
|
||||
));
|
||||
}
|
||||
|
||||
void
|
||||
connect_jid_sends_presence_after_receiving_roster(void **state)
|
||||
{
|
||||
stbbr_for("roster",
|
||||
"<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">"
|
||||
@ -26,27 +46,11 @@ connect_jid(void **state)
|
||||
"</iq>"
|
||||
);
|
||||
|
||||
int res = 0;
|
||||
int fd = exp_spawnl("./profanity", NULL);
|
||||
FILE *fp = fdopen(fd, "r+");
|
||||
|
||||
if (fp == NULL) {
|
||||
assert_true(FALSE);
|
||||
}
|
||||
|
||||
setbuf(fp, (char *)0);
|
||||
|
||||
write(fd, CONNECT_CMD, strlen(CONNECT_CMD));
|
||||
res = exp_expectl(fd, exp_exact, "Enter password:", 11, exp_end);
|
||||
assert_true(res == 11);
|
||||
|
||||
write(fd, PASSWORD, strlen(PASSWORD));
|
||||
res = exp_expectl(fd, exp_exact, "Connecting as stabber@localhost", 12, exp_end);
|
||||
assert_true(res == 12);
|
||||
res = exp_expectl(fd, exp_exact, "stabber@localhost logged in successfully", 13, exp_end);
|
||||
assert_true(res == 13);
|
||||
prof_input("/connect stabber@localhost port 5230");
|
||||
prof_input("password");
|
||||
|
||||
sleep(1);
|
||||
|
||||
assert_true(stbbr_verify(
|
||||
"<presence id=\"*\">"
|
||||
"<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>"
|
||||
@ -54,78 +58,32 @@ connect_jid(void **state)
|
||||
));
|
||||
}
|
||||
|
||||
//void
|
||||
//connect_jid_requests_roster(void **state)
|
||||
//{
|
||||
// will_return(ui_ask_password, strdup("password"));
|
||||
// expect_any_cons_show();
|
||||
//
|
||||
// cmd_process_input(strdup("/connect stabber@localhost port 5230"));
|
||||
// prof_process_xmpp(20);
|
||||
//
|
||||
// assert_true(stbbr_verify(
|
||||
// "<iq id=\"*\" type=\"get\"><query xmlns=\"jabber:iq:roster\"/></iq>"
|
||||
// ));
|
||||
//}
|
||||
//
|
||||
//void
|
||||
//connect_jid_sends_presence_after_receiving_roster(void **state)
|
||||
//{
|
||||
// will_return(ui_ask_password, strdup("password"));
|
||||
// expect_any_cons_show();
|
||||
//
|
||||
// stbbr_for("roster",
|
||||
// "<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">"
|
||||
// "<query xmlns=\"jabber:iq:roster\" ver=\"362\">"
|
||||
// "<item jid=\"buddy1@localhost\" subscription=\"both\" name=\"Buddy1\"/>"
|
||||
// "<item jid=\"buddy2@localhost\" subscription=\"both\" name=\"Buddy2\"/>"
|
||||
// "</query>"
|
||||
// "</iq>"
|
||||
// );
|
||||
//
|
||||
// cmd_process_input(strdup("/connect stabber@localhost port 5230"));
|
||||
// prof_process_xmpp(20);
|
||||
//
|
||||
// assert_true(stbbr_verify(
|
||||
// "<presence id=\"*\">"
|
||||
// "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>"
|
||||
// "</presence>"
|
||||
// ));
|
||||
//}
|
||||
//
|
||||
//void
|
||||
//connect_jid_requests_bookmarks(void **state)
|
||||
//{
|
||||
// will_return(ui_ask_password, strdup("password"));
|
||||
// expect_any_cons_show();
|
||||
//
|
||||
// cmd_process_input(strdup("/connect stabber@localhost port 5230"));
|
||||
// prof_process_xmpp(20);
|
||||
//
|
||||
// assert_true(stbbr_verify(
|
||||
// "<iq id=\"*\" type=\"get\">"
|
||||
// "<query xmlns=\"jabber:iq:private\">"
|
||||
// "<storage xmlns=\"storage:bookmarks\"/>"
|
||||
// "</query>"
|
||||
// "</iq>"
|
||||
// ));
|
||||
//}
|
||||
//
|
||||
//void
|
||||
//connect_bad_password(void **state)
|
||||
//{
|
||||
// will_return(ui_ask_password, strdup("badpassword"));
|
||||
//
|
||||
// expect_cons_show("Connecting as stabber@localhost");
|
||||
// expect_cons_show_error("Login failed.");
|
||||
//
|
||||
// cmd_process_input(strdup("/connect stabber@localhost port 5230"));
|
||||
// prof_process_xmpp(20);
|
||||
//
|
||||
// jabber_conn_status_t status = jabber_get_connection_status();
|
||||
// assert_true(status == JABBER_DISCONNECTED);
|
||||
//}
|
||||
//
|
||||
void
|
||||
connect_jid_requests_bookmarks(void **state)
|
||||
{
|
||||
prof_input("/connect stabber@localhost port 5230");
|
||||
prof_input("password");
|
||||
|
||||
sleep(1);
|
||||
|
||||
assert_true(stbbr_verify(
|
||||
"<iq id=\"*\" type=\"get\">"
|
||||
"<query xmlns=\"jabber:iq:private\">"
|
||||
"<storage xmlns=\"storage:bookmarks\"/>"
|
||||
"</query>"
|
||||
"</iq>"
|
||||
));
|
||||
}
|
||||
|
||||
void
|
||||
connect_bad_password(void **state)
|
||||
{
|
||||
prof_input("/connect stabber@localhost port 5230");
|
||||
prof_input("badpassword");
|
||||
|
||||
assert_true(prof_output("Login failed."));
|
||||
}
|
||||
|
||||
//void
|
||||
//show_presence_updates(void **state)
|
||||
//{
|
||||
|
@ -1,8 +1,8 @@
|
||||
void connect_jid(void **state);
|
||||
//void connect_jid_requests_roster(void **state);
|
||||
//void connect_jid_sends_presence_after_receiving_roster(void **state);
|
||||
//void connect_jid_requests_bookmarks(void **state);
|
||||
//void connect_bad_password(void **state);
|
||||
void connect_jid_requests_roster(void **state);
|
||||
void connect_jid_sends_presence_after_receiving_roster(void **state);
|
||||
void connect_jid_requests_bookmarks(void **state);
|
||||
void connect_bad_password(void **state);
|
||||
//void show_presence_updates(void **state);
|
||||
//void sends_rooms_iq(void **state);
|
||||
//void multiple_pings(void **state);
|
||||
|
Loading…
Reference in New Issue
Block a user