Mercurial > irccd
comparison tests/test-channel.c @ 1004:3ea3361f0fc7
irccd: now track modes
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 16 Feb 2021 18:37:22 +0100 |
parents | f365e5be1261 |
children | beb61243cf6d |
comparison
equal
deleted
inserted
replaced
1003:bbb3d3075ec2 | 1004:3ea3361f0fc7 |
---|---|
30 ch = irc_channel_new("#test", NULL, 1); | 30 ch = irc_channel_new("#test", NULL, 1); |
31 GREATEST_ASSERT_STR_EQ("#test", ch->name); | 31 GREATEST_ASSERT_STR_EQ("#test", ch->name); |
32 GREATEST_ASSERT_STR_EQ("", ch->password); | 32 GREATEST_ASSERT_STR_EQ("", ch->password); |
33 GREATEST_ASSERT(ch->joined); | 33 GREATEST_ASSERT(ch->joined); |
34 | 34 |
35 irc_channel_add(ch, "markand", 'o', '@'); | 35 irc_channel_add(ch, "markand", 1); |
36 user = LIST_FIRST(&ch->users); | 36 user = LIST_FIRST(&ch->users); |
37 GREATEST_ASSERT_EQ('o', user->mode); | 37 GREATEST_ASSERT_EQ(1, user->modes); |
38 GREATEST_ASSERT_EQ('@', user->symbol); | |
39 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | 38 GREATEST_ASSERT_STR_EQ("markand", user->nickname); |
40 | 39 |
41 irc_channel_add(ch, "markand", '+', '@'); | 40 irc_channel_add(ch, "markand", 2); |
42 user = LIST_FIRST(&ch->users); | 41 user = LIST_FIRST(&ch->users); |
43 GREATEST_ASSERT_EQ('o', user->mode); | 42 GREATEST_ASSERT_EQ(1, user->modes); |
44 GREATEST_ASSERT_EQ('@', user->symbol); | |
45 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | 43 GREATEST_ASSERT_STR_EQ("markand", user->nickname); |
46 | 44 |
47 irc_channel_add(ch, "jean", 'h', '+'); | 45 irc_channel_add(ch, "jean", 4); |
48 user = LIST_FIRST(&ch->users); | 46 user = LIST_FIRST(&ch->users); |
49 GREATEST_ASSERT_EQ('h', user->mode); | 47 GREATEST_ASSERT_EQ(4, user->modes); |
50 GREATEST_ASSERT_EQ('+', user->symbol); | |
51 GREATEST_ASSERT_STR_EQ("jean", user->nickname); | 48 GREATEST_ASSERT_STR_EQ("jean", user->nickname); |
52 user = LIST_NEXT(user, link); | 49 user = LIST_NEXT(user, link); |
53 GREATEST_ASSERT_EQ('o', user->mode); | 50 GREATEST_ASSERT_EQ(1, user->modes); |
54 GREATEST_ASSERT_EQ('@', user->symbol); | |
55 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | 51 GREATEST_ASSERT_STR_EQ("markand", user->nickname); |
56 | 52 |
57 irc_channel_add(ch, "zoe", 0, 0); | 53 irc_channel_add(ch, "zoe", 0); |
58 user = LIST_FIRST(&ch->users); | 54 user = LIST_FIRST(&ch->users); |
59 GREATEST_ASSERT_EQ(0, user->mode); | 55 GREATEST_ASSERT_EQ(0, user->modes); |
60 GREATEST_ASSERT_EQ(0, user->symbol); | |
61 GREATEST_ASSERT_STR_EQ("zoe", user->nickname); | 56 GREATEST_ASSERT_STR_EQ("zoe", user->nickname); |
62 user = LIST_NEXT(user, link); | 57 user = LIST_NEXT(user, link); |
63 GREATEST_ASSERT_EQ('h', user->mode); | 58 GREATEST_ASSERT_EQ(4, user->modes); |
64 GREATEST_ASSERT_EQ('+', user->symbol); | |
65 GREATEST_ASSERT_STR_EQ("jean", user->nickname); | 59 GREATEST_ASSERT_STR_EQ("jean", user->nickname); |
66 user = LIST_NEXT(user, link); | 60 user = LIST_NEXT(user, link); |
67 GREATEST_ASSERT_EQ('o', user->mode); | 61 GREATEST_ASSERT_EQ(1, user->modes); |
68 GREATEST_ASSERT_EQ('@', user->symbol); | |
69 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | 62 GREATEST_ASSERT_STR_EQ("markand", user->nickname); |
70 | 63 |
71 irc_channel_finish(ch); | 64 irc_channel_finish(ch); |
72 | 65 |
73 GREATEST_PASS(); | 66 GREATEST_PASS(); |
79 struct irc_channel *ch; | 72 struct irc_channel *ch; |
80 struct irc_channel_user *user; | 73 struct irc_channel_user *user; |
81 | 74 |
82 ch = irc_channel_new("#test", NULL, 1); | 75 ch = irc_channel_new("#test", NULL, 1); |
83 | 76 |
84 irc_channel_add(ch, "markand", 'o', '@'); | 77 irc_channel_add(ch, "markand", 1); |
85 irc_channel_add(ch, "jean", 0, 0); | 78 irc_channel_add(ch, "jean", 0); |
86 irc_channel_add(ch, "zoe", 0, 0); | 79 irc_channel_add(ch, "zoe", 0); |
87 | 80 |
88 irc_channel_remove(ch, "jean"); | 81 irc_channel_remove(ch, "jean"); |
89 user = LIST_FIRST(&ch->users); | 82 user = LIST_FIRST(&ch->users); |
90 GREATEST_ASSERT_EQ(0, user->mode); | 83 GREATEST_ASSERT_EQ(0, user->modes); |
91 GREATEST_ASSERT_EQ(0, user->symbol); | |
92 GREATEST_ASSERT_STR_EQ("zoe", user->nickname); | 84 GREATEST_ASSERT_STR_EQ("zoe", user->nickname); |
93 user = LIST_NEXT(user, link); | 85 user = LIST_NEXT(user, link); |
94 GREATEST_ASSERT_EQ('o', user->mode); | 86 GREATEST_ASSERT_EQ(1, user->modes); |
95 GREATEST_ASSERT_EQ('@', user->symbol); | |
96 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | 87 GREATEST_ASSERT_STR_EQ("markand", user->nickname); |
97 | 88 |
98 irc_channel_remove(ch, "zoe"); | 89 irc_channel_remove(ch, "zoe"); |
99 user = LIST_FIRST(&ch->users); | 90 user = LIST_FIRST(&ch->users); |
100 GREATEST_ASSERT_EQ('o', user->mode); | 91 GREATEST_ASSERT_EQ(1, user->modes); |
101 GREATEST_ASSERT_EQ('@', user->symbol); | |
102 GREATEST_ASSERT_STR_EQ("markand", user->nickname); | 92 GREATEST_ASSERT_STR_EQ("markand", user->nickname); |
103 | 93 |
104 irc_channel_remove(ch, "markand"); | 94 irc_channel_remove(ch, "markand"); |
105 GREATEST_ASSERT(!LIST_FIRST(&ch->users)); | 95 GREATEST_ASSERT(!LIST_FIRST(&ch->users)); |
106 | 96 |
107 irc_channel_finish(ch); | 97 irc_channel_finish(ch); |
108 | 98 |
109 GREATEST_PASS(); | 99 GREATEST_PASS(); |
110 } | 100 } |
111 | 101 |
112 GREATEST_TEST | |
113 basics_update(void) | |
114 { | |
115 struct irc_channel *ch; | |
116 struct irc_channel_user *user; | |
117 | |
118 ch = irc_channel_new("#test", NULL, 1); | |
119 | |
120 irc_channel_add(ch, "markand", 'o', '@'); | |
121 irc_channel_add(ch, "jean", 0, 0); | |
122 irc_channel_add(ch, "zoe", 0, 0); | |
123 | |
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); | |
129 | |
130 irc_channel_update(ch, "zoe", "eoz", -1, -1); | |
131 user = LIST_FIRST(&ch->users); | |
132 GREATEST_ASSERT_EQ('o', user->mode); | |
133 GREATEST_ASSERT_EQ('@', user->symbol); | |
134 GREATEST_ASSERT_STR_EQ("eoz", user->nickname); | |
135 | |
136 irc_channel_finish(ch); | |
137 | |
138 GREATEST_PASS(); | |
139 } | |
140 | |
141 GREATEST_SUITE(suite_basics) | 102 GREATEST_SUITE(suite_basics) |
142 { | 103 { |
143 GREATEST_RUN_TEST(basics_add); | 104 GREATEST_RUN_TEST(basics_add); |
144 GREATEST_RUN_TEST(basics_remove); | 105 GREATEST_RUN_TEST(basics_remove); |
145 GREATEST_RUN_TEST(basics_update); | |
146 } | 106 } |
147 | 107 |
148 GREATEST_MAIN_DEFS(); | 108 GREATEST_MAIN_DEFS(); |
149 | 109 |
150 int | 110 int |