package irc import ( "fmt" "log" "strconv" "strings" "testing" "time" ) const ( channel = "#warez" ) func TestJoinChannel(t *testing.T) { con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel}) go con.Run() time.Sleep(5 * time.Second) log.Printf("%d users in channel %s\n", len(con.userList[channel]), channel) con.SendQuit("scan complete") //con.SendPrivmsg("#warez", fmt.Sprintf("\x0356 FUCK YALL BITCHES %d", len(con.userList["#warez"]))) /* i := 0 for _, v := range con.userList[channel] { con.SendPrivmsg(channel, fmt.Sprintf("yo %s fuck you", v)) if i >= 5 { time.Sleep(1000 * time.Millisecond) i = 0 } } */ } func TestLusers(t *testing.T) { con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel}) con.NumericCallback = func(from string, i int, args string) { if i == RPL_LUSERCLIENT { con.SendJoin(channel) s := strings.Split(args, ":") if len(s) > 1 { users := 0 invis := 0 servers := 0 fmt.Sscanf(s[1], "There are %d users and %d invisible on %d servers", &users, &invis, &servers) con.SendPrivmsg(channel, fmt.Sprintf("total users on network: %d, invisible %d, servers %d", users, invis, servers)) } con.SendQuit("scan complete") } } con.Run() } func TestLusersChannels(t *testing.T) { con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel}) con.NumericCallback = func(from string, i int, args string) { if i == RPL_LUSERCHANNELS { con.SendJoin(channel) s := strings.TrimSpace(strings.Split(args, " ")[1]) val, err := strconv.Atoi(s) if err == nil { con.SendPrivmsg(channel, fmt.Sprintf("There are %d channels formed", val)) } else { t.Fatal(err.Error()) } con.SendQuit("scan complete") } } con.Run() } func TestGetServerInfo(t *testing.T) { con := NewConnection("irc.ouch.chat:6667", "irc-go", "irc-go", nil, []string{channel}) con.NumericCallback = func(from string, i int, args string) { if i == RPL_ENDOFMOTD { go func() { res := GetServerInfo("irc.libera.chat:6667", "irc-go4240") con.SendPrivmsg(channel, fmt.Sprintf("Libera has %d users, %d channels, %d servers, %d invisible", res.Users, res.Channels, res.Servers, res.Invisible)) res = GetServerInfo("irc.choopa.net:6667", "irc-go4240") con.SendPrivmsg(channel, fmt.Sprintf("EFNet has %d users, %d channels, %d servers, %d invisible", res.Users, res.Channels, res.Servers, res.Invisible)) res = GetServerInfo("irc.us.ircnet.net:6667", "irc-go4240") con.SendPrivmsg(channel, fmt.Sprintf("IRCnet has %d users, %d channels, %d servers, %d invisible", res.Users, res.Channels, res.Servers, res.Invisible)) con.SendQuit("Scan Completed") }() } } con.Run() } func TestParser(t *testing.T) { log.Printf("testing %s\n", t.Name()) }