Mercurial > irccd
comparison tests/test-channel.c @ 958:533639ec5e9c
misc: use sys/queue.h
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 21 Jan 2021 23:15:20 +0100 |
parents | 95201fd9ad88 |
children | f365e5be1261 |
comparison
equal
deleted
inserted
replaced
957:3167c51f0c84 | 958:533639ec5e9c |
---|---|
22 #include <irccd/channel.h> | 22 #include <irccd/channel.h> |
23 | 23 |
24 GREATEST_TEST | 24 GREATEST_TEST |
25 basics_add(void) | 25 basics_add(void) |
26 { | 26 { |
27 struct irc_channel ch = {0}; | 27 struct irc_channel *ch; |
28 struct irc_channel_user *user; | |
28 | 29 |
29 irc_channel_add(&ch, "markand", '@'); | 30 ch = irc_channel_new("#test", NULL, true); |
30 GREATEST_ASSERT_EQ(ch.usersz, 1U); | 31 GREATEST_ASSERT_STR_EQ("#test", ch->name); |
31 GREATEST_ASSERT_EQ(ch.users[0].mode, '@'); | 32 GREATEST_ASSERT_STR_EQ("", ch->password); |
32 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "markand"); | 33 GREATEST_ASSERT(ch->joined); |
33 | 34 |
34 irc_channel_add(&ch, "markand", '@'); | 35 irc_channel_add(ch, "markand", 'o', '@'); |
35 GREATEST_ASSERT_EQ(ch.usersz, 1U); | 36 user = LIST_FIRST(&ch->users); |
36 GREATEST_ASSERT_EQ(ch.users[0].mode, '@'); | 37 GREATEST_ASSERT_EQ('o', user->mode); |
37 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "markand"); | 38 GREATEST_ASSERT_EQ('@', user->symbol); |
39 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | |
38 | 40 |
39 irc_channel_add(&ch, "jean", 0); | 41 irc_channel_add(ch, "markand", '+', '@'); |
40 GREATEST_ASSERT_EQ(ch.usersz, 2U); | 42 user = LIST_FIRST(&ch->users); |
41 GREATEST_ASSERT_EQ(ch.users[0].mode, 0); | 43 GREATEST_ASSERT_EQ('o', user->mode); |
42 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "jean"); | 44 GREATEST_ASSERT_EQ('@', user->symbol); |
43 GREATEST_ASSERT_EQ(ch.users[1].mode, '@'); | 45 GREATEST_ASSERT_STR_EQ("markand", user->nickname); |
44 GREATEST_ASSERT_STR_EQ(ch.users[1].nickname, "markand"); | |
45 | 46 |
46 irc_channel_add(&ch, "zoe", 0); | 47 irc_channel_add(ch, "jean", 'h', '+'); |
47 GREATEST_ASSERT_EQ(ch.usersz, 3U); | 48 user = LIST_FIRST(&ch->users); |
48 GREATEST_ASSERT_EQ(ch.users[0].mode, 0); | 49 GREATEST_ASSERT_EQ('h', user->mode); |
49 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "jean"); | 50 GREATEST_ASSERT_EQ('+', user->symbol); |
50 GREATEST_ASSERT_EQ(ch.users[1].mode, '@'); | 51 GREATEST_ASSERT_STR_EQ("jean", user->nickname); |
51 GREATEST_ASSERT_STR_EQ(ch.users[1].nickname, "markand"); | 52 user = LIST_NEXT(user, link); |
52 GREATEST_ASSERT_EQ(ch.users[2].mode, 0); | 53 GREATEST_ASSERT_EQ('o', user->mode); |
53 GREATEST_ASSERT_STR_EQ(ch.users[2].nickname, "zoe"); | 54 GREATEST_ASSERT_EQ('@', user->symbol); |
55 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | |
56 | |
57 irc_channel_add(ch, "zoe", 0, 0); | |
58 user = LIST_FIRST(&ch->users); | |
59 GREATEST_ASSERT_EQ(0, user->mode); | |
60 GREATEST_ASSERT_EQ(0, user->symbol); | |
61 GREATEST_ASSERT_STR_EQ("zoe", user->nickname); | |
62 user = LIST_NEXT(user, link); | |
63 GREATEST_ASSERT_EQ('h', user->mode); | |
64 GREATEST_ASSERT_EQ('+', user->symbol); | |
65 GREATEST_ASSERT_STR_EQ("jean", user->nickname); | |
66 user = LIST_NEXT(user, link); | |
67 GREATEST_ASSERT_EQ('o', user->mode); | |
68 GREATEST_ASSERT_EQ('@', user->symbol); | |
69 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | |
70 | |
71 irc_channel_finish(ch); | |
54 | 72 |
55 GREATEST_PASS(); | 73 GREATEST_PASS(); |
56 } | 74 } |
57 | 75 |
58 GREATEST_TEST | 76 GREATEST_TEST |
59 basics_remove(void) | 77 basics_remove(void) |
60 { | 78 { |
61 struct irc_channel ch = {0}; | 79 struct irc_channel *ch; |
80 struct irc_channel_user *user; | |
62 | 81 |
63 irc_channel_add(&ch, "markand", '@'); | 82 ch = irc_channel_new("#test", NULL, true); |
64 irc_channel_add(&ch, "jean", 0); | |
65 irc_channel_add(&ch, "zoe", 0); | |
66 | 83 |
67 irc_channel_remove(&ch, "jean"); | 84 irc_channel_add(ch, "markand", 'o', '@'); |
68 GREATEST_ASSERT_EQ(ch.usersz, 2U); | 85 irc_channel_add(ch, "jean", 0, 0); |
69 GREATEST_ASSERT_EQ(ch.users[0].mode, '@'); | 86 irc_channel_add(ch, "zoe", 0, 0); |
70 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "markand"); | |
71 GREATEST_ASSERT_EQ(ch.users[1].mode, 0); | |
72 GREATEST_ASSERT_STR_EQ(ch.users[1].nickname, "zoe"); | |
73 | 87 |
74 irc_channel_remove(&ch, "zoe"); | 88 irc_channel_remove(ch, "jean"); |
75 GREATEST_ASSERT_EQ(ch.usersz, 1U); | 89 user = LIST_FIRST(&ch->users); |
76 GREATEST_ASSERT_EQ(ch.users[0].mode, '@'); | 90 GREATEST_ASSERT_EQ(0, user->mode); |
77 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "markand"); | 91 GREATEST_ASSERT_EQ(0, user->symbol); |
92 GREATEST_ASSERT_STR_EQ("zoe", user->nickname); | |
93 user = LIST_NEXT(user, link); | |
94 GREATEST_ASSERT_EQ('o', user->mode); | |
95 GREATEST_ASSERT_EQ('@', user->symbol); | |
96 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | |
78 | 97 |
79 irc_channel_remove(&ch, "markand"); | 98 irc_channel_remove(ch, "zoe"); |
80 GREATEST_ASSERT_EQ(ch.usersz, 0U); | 99 user = LIST_FIRST(&ch->users); |
81 GREATEST_ASSERT(!ch.users); | 100 GREATEST_ASSERT_EQ('o', user->mode); |
101 GREATEST_ASSERT_EQ('@', user->symbol); | |
102 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | |
103 | |
104 irc_channel_remove(ch, "markand"); | |
105 GREATEST_ASSERT(!LIST_FIRST(&ch->users)); | |
106 | |
107 irc_channel_finish(ch); | |
82 | 108 |
83 GREATEST_PASS(); | 109 GREATEST_PASS(); |
84 } | 110 } |
85 | 111 |
86 GREATEST_TEST | 112 GREATEST_TEST |
87 basics_set_mode(void) | 113 basics_update(void) |
88 { | 114 { |
89 struct irc_channel ch = {0}; | 115 struct irc_channel *ch; |
116 struct irc_channel_user *user; | |
90 | 117 |
91 irc_channel_add(&ch, "jean", '@'); | 118 ch = irc_channel_new("#test", NULL, true); |
92 irc_channel_set_user_mode(&ch, "jean", '+'); | |
93 irc_channel_set_user_mode(&ch, "nobody", '+'); | |
94 | 119 |
95 GREATEST_ASSERT_EQ(ch.usersz, 1); | 120 irc_channel_add(ch, "markand", 'o', '@'); |
96 GREATEST_ASSERT_EQ(ch.users[0].mode, '+'); | 121 irc_channel_add(ch, "jean", 0, 0); |
97 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "jean"); | 122 irc_channel_add(ch, "zoe", 0, 0); |
98 GREATEST_PASS(); | 123 |
99 } | 124 irc_channel_update(ch, "zoe", NULL, 'o', '@'); |
125 user = LIST_FIRST(&ch->users); | |
126 GREATEST_ASSERT_EQ('o', user->mode); | |
127 GREATEST_ASSERT_EQ('@', user->symbol); | |
128 GREATEST_ASSERT_STR_EQ("zoe", user->nickname); | |
100 | 129 |
101 GREATEST_TEST | 130 irc_channel_update(ch, "zoe", "eoz", -1, -1); |
102 basics_set_nick(void) | 131 user = LIST_FIRST(&ch->users); |
103 { | 132 GREATEST_ASSERT_EQ('o', user->mode); |
104 struct irc_channel ch = {0}; | 133 GREATEST_ASSERT_EQ('@', user->symbol); |
134 GREATEST_ASSERT_STR_EQ("eoz", user->nickname); | |
105 | 135 |
106 irc_channel_add(&ch, "jean", '@'); | 136 irc_channel_finish(ch); |
107 irc_channel_set_user_nick(&ch, "jean", "francis"); | |
108 irc_channel_set_user_nick(&ch, "nobody", "francis"); | |
109 | 137 |
110 GREATEST_ASSERT_EQ(ch.usersz, 1); | |
111 GREATEST_ASSERT_EQ(ch.users[0].mode, '@'); | |
112 GREATEST_ASSERT_STR_EQ(ch.users[0].nickname, "francis"); | |
113 GREATEST_PASS(); | 138 GREATEST_PASS(); |
114 } | 139 } |
115 | 140 |
116 GREATEST_SUITE(suite_basics) | 141 GREATEST_SUITE(suite_basics) |
117 { | 142 { |
118 GREATEST_RUN_TEST(basics_add); | 143 GREATEST_RUN_TEST(basics_add); |
119 GREATEST_RUN_TEST(basics_remove); | 144 GREATEST_RUN_TEST(basics_remove); |
120 GREATEST_RUN_TEST(basics_set_mode); | 145 GREATEST_RUN_TEST(basics_update); |
121 GREATEST_RUN_TEST(basics_set_nick); | |
122 } | 146 } |
123 | 147 |
124 GREATEST_MAIN_DEFS(); | 148 GREATEST_MAIN_DEFS(); |
125 | 149 |
126 int | 150 int |