10 void testRfc822::testGroup()
15 const char *input, *name, *mailboxes[max_n];
17 static const test_item data[] = {
29 " group name : e@mail.com, b@mail.com",
34 "group(comment)name: e@mail.com , se@cond.com, th@ird.com;",
36 {"e@mail.com", "se@cond.com", "th@ird.com", 0 }
41 for( int i = 0; data[i].input; ++i)
43 Group grp(data[i].input);
44 TEST_ASSERT_EQUALS_M(grp.name(), data[i].name,
45 PRINT_ON_FAILURE_2(grp.name(), data[i].name) );
46 Group::const_iterator bit = grp.begin(), eit = grp.end();
47 for( int t = 0; data[i].mailboxes[t]; ++t, ++bit)
49 TEST_ASSERT( bit != eit );
50 const Mailbox& mbx = *bit;
52 cerr << mbx.mailbox() << endl;
53 cerr << mbx.domain() << endl;
54 cerr << mbx.str() << endl;
56 TEST_ASSERT_EQUALS_M(mbx, data[i].mailboxes[t],
57 PRINT_ON_FAILURE_3(t, mbx.str(), data[i].mailboxes[t]) );
63 void testRfc822::testMailbox()
67 const char *input, *mailbox, *domain, *label, *sourceroute;
69 static const test_item data[] = {
70 { "e@mail.com", "e", "mail.com", "", "" },
71 { "<e@mail.com>", "e", "mail.com", "", "" },
72 { "(My Name) <e@mail.com>", "e", "mail.com", "(My Name)", "" },
73 { "descr <e@mail.com>", "e", "mail.com", "descr", "" },
74 { "descr <e@mail.com>", "e", "mail.com", "descr", "" },
75 { "\"with a space\"@mail.com", "\"with a space\"",
77 { "<\"with a space\"@mail.com>", "\"with a space\"",
79 { "name surname <@dom1.com@dom2.com:e@mail.com>", "e",
80 "mail.com", "name surname", "@dom1.com@dom2.com" },
82 { "de(this is a comment)scr <e(boom)@mail.com>", "e",
83 "mail.com", "de(this is a comment)scr", "" },
84 { "<e(boom). (boo)d@mail.com>", "e.d", "mail.com", "", "" },
85 { "Bella Ragga <e(boom). (boo)d@mail.com>", "e.d",
86 "mail.com", "Bella Ragga", "" },
90 for( int i = 0; data[i].input; ++i)
92 Mailbox mbx(data[i].input);
93 TEST_ASSERT_EQUALS_M(mbx.mailbox(), data[i].mailbox,
99 TEST_ASSERT_EQUALS_M(mbx.domain(), data[i].domain,
105 TEST_ASSERT_EQUALS_M(mbx.label(), data[i].label,
111 TEST_ASSERT_EQUALS_M(mbx.sourceroute(), data[i].sourceroute,
116 data[i].sourceroute));
119 // test == and != operators
120 for( int i = 0; data[i].input; ++i)
122 Mailbox mbx, mbxParsed(data[i].input);
123 mbx.mailbox(data[i].mailbox);
124 mbx.domain(data[i].domain);
125 mbx.label(data[i].label);
126 mbx.sourceroute(data[i].sourceroute);
127 TEST_ASSERT_EQUALS_M(mbxParsed, mbx,
136 void testRfc822::testAddress()
138 Address a("e@mail.com"), b;
140 TEST_ASSERT(!a.isGroup());
143 TEST_ASSERT_EQUALS(a, b);
145 a.set("<e@mail.com>");
146 TEST_ASSERT(!a.isGroup());
148 a.set(" desc <e@mail.com>");
149 TEST_ASSERT(!a.isGroup());
151 a.set("group label: e@mail.com; <b@aa.com>; blah <email@di.com>; ");
152 TEST_ASSERT(a.isGroup());
154 b.set("group label: ;");
155 TEST_ASSERT(b.isGroup());