aboutsummaryrefslogtreecommitdiffstats
path: root/tests/parser/mailboxTest.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2004-11-06 10:48:58 +0000
committerVincent Richard <[email protected]>2004-11-06 10:48:58 +0000
commit418c0c1456b9c4cedacc120949a944d3b166829e (patch)
treee61f3b5bc75dd79e3725cbf788963d812a9d1bbc /tests/parser/mailboxTest.cpp
parentFixed bug with white-space in email address. (diff)
downloadvmime-418c0c1456b9c4cedacc120949a944d3b166829e.tar.gz
vmime-418c0c1456b9c4cedacc120949a944d3b166829e.zip
New build system for unit tests.
Diffstat (limited to 'tests/parser/mailboxTest.cpp')
-rw-r--r--tests/parser/mailboxTest.cpp114
1 files changed, 114 insertions, 0 deletions
diff --git a/tests/parser/mailboxTest.cpp b/tests/parser/mailboxTest.cpp
new file mode 100644
index 00000000..79a4004c
--- /dev/null
+++ b/tests/parser/mailboxTest.cpp
@@ -0,0 +1,114 @@
+//
+// VMime library (http://vmime.sourceforge.net)
+// Copyright (C) 2002-2004 Vincent Richard <[email protected]>
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License as
+// published by the Free Software Foundation; either version 2 of
+// the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//
+
+#include "../lib/unit++/unit++.h"
+
+#include <iostream>
+#include <ostream>
+
+#include "../../src/vmime"
+#include "../../examples/common.inc"
+
+#include "testUtils.hpp"
+
+using namespace unitpp;
+
+
+namespace
+{
+ class mailboxTest : public suite
+ {
+ void testParse()
+ {
+ static const vmime::string testSuitesParse[] =
+ {
+ // Test 1
+ "My (this is a comment)name <me(another \\)comment) @ somewhere(else).com>",
+
+ "[address-list: [[mailbox: name=[text: [[word: charset=us-ascii, buffer=My name]]], [email protected]]]]",
+
+ // Test 2
+ "mailbox1 <mailbox@one>,;,,, ,, ,,;group1:mailbox1@group1, mailbox2@group2,,\"mailbox #3\" <mailbox3@group2>;, <mailbox@two>,,,,,,,,=?iso-8859-1?q?mailbox_number_3?= <mailbox@three>, =?abc?Q?mailbox?= =?def?Q?_number_4?= <mailbox@four>",
+
+ "[address-list: [[mailbox: name=[text: [[word: charset=us-ascii, buffer=mailbox1]]], email=mailbox@one],[mailbox-group: name=[text: [[word: charset=us-ascii, buffer=group1]]], list=[[mailbox: name=[text: []], email=mailbox1@group1],[mailbox: name=[text: []], email=mailbox2@group2],[mailbox: name=[text: [[word: charset=us-ascii, buffer=mailbox #3]]], email=mailbox3@group2]]],[mailbox: name=[text: []], email=mailbox@two],[mailbox: name=[text: [[word: charset=iso-8859-1, buffer=mailbox number 3]]], email=mailbox@three],[mailbox: name=[text: [[word: charset=abc, buffer=mailbox],[word: charset=def, buffer= number 4]]], email=mailbox@four]]]",
+
+ // Test 3
+ "John Doe <[email protected]>",
+
+ "[address-list: [[mailbox: name=[text: [[word: charset=us-ascii, buffer=John Doe]]], [email protected]]]]",
+
+ // Test 4
+ "[email protected] (John Doe)",
+
+ "[address-list: [[mailbox: name=[text: []], [email protected]]]]",
+
+ // Test 5
+ "John.Doe (ignore) @acme.com (John Doe)",
+
+ "[address-list: [[mailbox: name=[text: []], [email protected]]]]",
+
+ // Test 6
+
+ "[address-list: [[mailbox: name=[text: []], [email protected]]]]",
+
+ // Test 7
+
+ "[address-list: [[mailbox: name=[text: []], [email protected]]]]",
+
+ // Test 8
+ "\"John Doe\" <[email protected]>",
+
+ "[address-list: [[mailbox: name=[text: [[word: charset=us-ascii, buffer=John Doe]]], [email protected]]]]",
+ };
+
+ for (unsigned int i = 0 ; i < sizeof(testSuitesParse) / sizeof(testSuitesParse[0]) / 2 ; ++i)
+ {
+ vmime::string in = testSuitesParse[i * 2];
+ vmime::string out = testSuitesParse[i * 2 + 1];
+
+ std::ostringstream oss;
+ oss << "Test " << (i + 1);
+
+ vmime::addressList addrList;
+ addrList.parse(in);
+
+ std::ostringstream cmp;
+ cmp << addrList;
+
+ assert_eq(oss.str(), out, cmp.str());
+ }
+ }
+
+ public:
+
+ mailboxTest() : suite("vmime::mailbox")
+ {
+ vmime::platformDependant::setHandler<my_handler>();
+
+ add("Parse", testcase(this, "Parse", &mailboxTest::testParse));
+
+ suite::main().add("vmime::mailbox", this);
+ }
+
+ };
+
+ mailboxTest* theTest = new mailboxTest();
+}