376 // create the irc_net |
376 // create the irc_net |
377 net_info.raw_sock = SOCK_TEST_BASE(sock); |
377 net_info.raw_sock = SOCK_TEST_BASE(sock); |
378 assert_success(irc_net_create(&net, &net_info, &err)); |
378 assert_success(irc_net_create(&net, &net_info, &err)); |
379 |
379 |
380 // add a channel |
380 // add a channel |
|
381 log_info("test offline irc_net_add_chan"); |
381 assert((chan = irc_net_add_chan(net, &chan_info))); |
382 assert((chan = irc_net_add_chan(net, &chan_info))); |
382 assert(!chan->joining && !chan->joined); |
383 assert(!chan->joining && !chan->joined); |
383 assert_success(irc_chan_add_callbacks(chan, &_chan_callbacks, &ctx)); |
384 assert_success(irc_chan_add_callbacks(chan, &_chan_callbacks, &ctx)); |
384 ctx.chan = chan; |
385 ctx.chan = chan; |
385 |
386 |
386 // test register output |
387 // test register output |
387 assert_sock_data(sock, "NICK nick\r\nUSER user 0 * realname\r\n"); |
388 assert_sock_data(sock, "NICK nick\r\nUSER user 0 * realname\r\n"); |
388 |
389 |
389 // registration reply |
390 // registration reply |
|
391 log_info("test irc_conn_on_RPL_WELCOME"); |
390 sock_test_add_recv_str(sock, "001 mynick :Blaa blaa blaa\r\n"); |
392 sock_test_add_recv_str(sock, "001 mynick :Blaa blaa blaa\r\n"); |
391 assert(net->conn->registered); |
393 assert(net->conn->registered); |
392 assert_strcmp(net->conn->nickname, "mynick"); |
394 assert_strcmp(net->conn->nickname, "mynick"); |
393 |
395 |
394 // JOIN request |
396 // JOIN request |
|
397 log_info("test irc_net_conn_registered -> irc_chan_join"); |
395 assert(chan->joining); |
398 assert(chan->joining); |
396 assert_sock_data(sock, "JOIN #test\r\n"); |
399 assert_sock_data(sock, "JOIN #test\r\n"); |
397 |
400 |
398 // JOIN reply |
401 // JOIN reply |
|
402 log_info("test irc_chan_on_JOIN"); |
399 sock_test_add_recv_str(sock, ":mynick!user@host JOIN #test\r\n"); |
403 sock_test_add_recv_str(sock, ":mynick!user@host JOIN #test\r\n"); |
400 assert(!chan->joining && chan->joined); |
404 assert(!chan->joining && chan->joined); |
401 assert(ctx.on_chan_self_join); |
405 assert(ctx.on_chan_self_join); |
|
406 |
|
407 // test errors by setting EOF |
|
408 log_info("test irc_net_error"); |
|
409 sock_test_set_recv_eof(sock); |
|
410 assert(net->conn == NULL); |
402 } |
411 } |
403 |
412 |
404 /** |
413 /** |
405 * Test definition |
414 * Test definition |
406 */ |
415 */ |