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