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