From 681297e10b666e13cc463f6fbb16236f36c3266c Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Tue, 12 Jul 2005 22:28:02 +0000 Subject: Reference counting and smart pointers. --- tests/parser/bodyPartTest.cpp | 2 +- tests/parser/encoderTest.cpp | 4 +-- tests/parser/headerTest.cpp | 50 +++++++++++++++++----------------- tests/parser/mediaTypeTest.cpp | 6 ++-- tests/parser/messageIdSequenceTest.cpp | 6 ++-- tests/parser/parameterTest.cpp | 23 ++++++++++------ tests/parser/textTest.cpp | 8 +++--- 7 files changed, 53 insertions(+), 46 deletions(-) (limited to 'tests/parser') diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp index 87d4c1ba..ffbdefda 100644 --- a/tests/parser/bodyPartTest.cpp +++ b/tests/parser/bodyPartTest.cpp @@ -68,7 +68,7 @@ namespace { vmime::bodyPart p1; p1.getHeader()->getField("Foo")->setValue(vmime::string("bar")); - p1.getBody()->setContents(vmime::stringContentHandler("Baz")); + p1.getBody()->setContents(vmime::create ("Baz")); assert_eq("1", "Foo: bar\r\n\r\nBaz", p1.generate()); } diff --git a/tests/parser/encoderTest.cpp b/tests/parser/encoderTest.cpp index 5d27fffc..55c83f83 100644 --- a/tests/parser/encoderTest.cpp +++ b/tests/parser/encoderTest.cpp @@ -35,7 +35,7 @@ namespace // Encoding helper function static const vmime::string encode(const vmime::string& name, const vmime::string& in, int maxLineLength = 0) { - vmime::encoder* enc = vmime::encoderFactory::getInstance()->create(name); + vmime::ref enc = vmime::encoderFactory::getInstance()->create(name); if (maxLineLength != 0) enc->getProperties()["maxlinelength"] = maxLineLength; @@ -53,7 +53,7 @@ namespace // Decoding helper function static const vmime::string decode(const vmime::string& name, const vmime::string& in, int maxLineLength = 0) { - vmime::encoder* enc = vmime::encoderFactory::getInstance()->create(name); + vmime::ref enc = vmime::encoderFactory::getInstance()->create(name); if (maxLineLength != 0) enc->getProperties()["maxlinelength"] = maxLineLength; diff --git a/tests/parser/headerTest.cpp b/tests/parser/headerTest.cpp index 4ee5b443..83f0409e 100644 --- a/tests/parser/headerTest.cpp +++ b/tests/parser/headerTest.cpp @@ -68,10 +68,10 @@ namespace vmime::header hdr; hdr.parse(""); - vmime::headerField* hf = vmime::headerFieldFactory::getInstance()->create("A", "a"); + vmime::ref hf = vmime::headerFieldFactory::getInstance()->create("A", "a"); hdr.appendField(hf); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (1), res.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res[0])); @@ -82,10 +82,10 @@ namespace vmime::header hdr; hdr.parse("A: a\r\n"); - vmime::headerField* hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); + vmime::ref hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); hdr.appendField(hf); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (2), res.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res[0])); @@ -98,10 +98,10 @@ namespace vmime::header hdr; hdr.parse("A: a\r\nC: c\r\n"); - vmime::headerField* hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); + vmime::ref hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); hdr.insertFieldBefore(hdr.getField("C"), hf); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (3), res.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res[0])); @@ -114,10 +114,10 @@ namespace vmime::header hdr; hdr.parse("A: a\r\nC: c\r\n"); - vmime::headerField* hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); + vmime::ref hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); hdr.insertFieldBefore(1, hf); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (3), res.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res[0])); @@ -131,10 +131,10 @@ namespace vmime::header hdr; hdr.parse("A: a\r\nC: c\r\n"); - vmime::headerField* hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); + vmime::ref hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); hdr.insertFieldAfter(hdr.getField("A"), hf); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (3), res.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res[0])); @@ -147,10 +147,10 @@ namespace vmime::header hdr; hdr.parse("A: a\r\nC: c\r\n"); - vmime::headerField* hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); + vmime::ref hf = vmime::headerFieldFactory::getInstance()->create("B", "b"); hdr.insertFieldAfter(0, hf); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (3), res.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res[0])); @@ -168,13 +168,13 @@ namespace hdr1.removeField(hdr1.getField("B")); hdr2.removeField(1); - std::vector res1 = hdr1.getFieldList(); + std::vector > res1 = hdr1.getFieldList(); assert_eq("Count", static_cast (2), res1.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res1[0])); assert_eq("Second value", "C: c", headerTest::getFieldValue(*res1[1])); - std::vector res2 = hdr2.getFieldList(); + std::vector > res2 = hdr2.getFieldList(); assert_eq("Count", static_cast (2), res2.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res2[0])); @@ -190,10 +190,10 @@ namespace hdr1.removeField(hdr1.getField("A")); hdr2.removeField(0); - std::vector res1 = hdr1.getFieldList(); + std::vector > res1 = hdr1.getFieldList(); assert_eq("Count", static_cast (0), res1.size()); - std::vector res2 = hdr2.getFieldList(); + std::vector > res2 = hdr2.getFieldList(); assert_eq("Count", static_cast (0), res2.size()); } @@ -207,10 +207,10 @@ namespace hdr1.removeAllFields(); hdr2.removeAllFields(); - std::vector res1 = hdr1.getFieldList(); + std::vector > res1 = hdr1.getFieldList(); assert_eq("Count", static_cast (0), res1.size()); - std::vector res2 = hdr2.getFieldList(); + std::vector > res2 = hdr2.getFieldList(); assert_eq("Count", static_cast (0), res2.size()); } @@ -246,7 +246,7 @@ namespace vmime::header hdr; hdr.parse("B: b\r\nA: a\r\nC: c\r\n"); - vmime::headerField* res = hdr.getFieldAt(2); + vmime::ref res = hdr.getFieldAt(2); assert_eq("Value", "C: c", getFieldValue(*res)); } @@ -257,7 +257,7 @@ namespace vmime::header hdr; hdr.parse("A: a\r\nB: b1\r\nC: c\r\nB: b2\r\n"); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (4), res.size()); assert_eq("First value", "A: a", headerTest::getFieldValue(*res[0])); @@ -271,7 +271,7 @@ namespace vmime::header hdr; hdr.parse("\r\n"); - std::vector res = hdr.getFieldList(); + std::vector > res = hdr.getFieldList(); assert_eq("Count", static_cast (0), res.size()); } @@ -282,7 +282,7 @@ namespace vmime::header hdr; hdr.parse("A: a\r\nB: b\r\nC: c\r\nB: d\r\n"); - vmime::headerField* res = hdr.findField("B"); + vmime::ref res = hdr.findField("B"); assert_eq("Value", "B: b", getFieldValue(*res)); } @@ -293,7 +293,7 @@ namespace vmime::header hdr; hdr.parse("A: a1\nC: c1\n"); - std::vector res = hdr.findAllFields("B"); + std::vector > res = hdr.findAllFields("B"); assert_eq("Count", static_cast (0), res.size()); } @@ -303,7 +303,7 @@ namespace vmime::header hdr; hdr.parse("A: a1\nB: b1\nB: b2\nC: c1\n"); - std::vector res = hdr.findAllFields("B"); + std::vector > res = hdr.findAllFields("B"); assert_eq("Count", static_cast (2), res.size()); assert_eq("First value", "B: b1", headerTest::getFieldValue(*res[0])); @@ -315,7 +315,7 @@ namespace vmime::header hdr; hdr.parse("A: a1\nB: b1\nB: b2\nC: c1\nC: c3\nC: c2\n"); - std::vector res = hdr.findAllFields("C"); + std::vector > res = hdr.findAllFields("C"); assert_eq("Count", static_cast (3), res.size()); assert_eq("First value", "C: c1", headerTest::getFieldValue(*res[0])); diff --git a/tests/parser/mediaTypeTest.cpp b/tests/parser/mediaTypeTest.cpp index 14e07715..52da8096 100644 --- a/tests/parser/mediaTypeTest.cpp +++ b/tests/parser/mediaTypeTest.cpp @@ -58,10 +58,10 @@ namespace assert_eq("eq2", "sub", t1.getSubType()); assert_true("operator==", t1 == t1); - assert_true("clone", *(t1.clone()) == t1); + assert_true("clone", t1 == *vmime::clone(t1)); - assert_eq("eq3", "type", t1.clone()->getType()); - assert_eq("eq4", "sub", t1.clone()->getSubType()); + assert_eq("eq3", "type", vmime::clone(t1)->getType()); + assert_eq("eq4", "sub", vmime::clone(t1)->getSubType()); vmime::mediaType t2; t2.copyFrom(t1); diff --git a/tests/parser/messageIdSequenceTest.cpp b/tests/parser/messageIdSequenceTest.cpp index b80a34d9..6382adef 100644 --- a/tests/parser/messageIdSequenceTest.cpp +++ b/tests/parser/messageIdSequenceTest.cpp @@ -66,13 +66,13 @@ namespace void testGenerate() { vmime::messageIdSequence s1; - s1.appendMessageId(new vmime::messageId("a", "b")); + s1.appendMessageId(vmime::create ("a", "b")); assert_eq("1", "", s1.generate()); vmime::messageIdSequence s2; - s2.appendMessageId(new vmime::messageId("a", "b")); - s2.appendMessageId(new vmime::messageId("c", "d")); + s2.appendMessageId(vmime::create ("a", "b")); + s2.appendMessageId(vmime::create ("c", "d")); assert_eq("2", " ", s2.generate()); } diff --git a/tests/parser/parameterTest.cpp b/tests/parser/parameterTest.cpp index 82d784cd..9b3bd66a 100644 --- a/tests/parser/parameterTest.cpp +++ b/tests/parser/parameterTest.cpp @@ -37,25 +37,32 @@ namespace { private: - vmime::typeAdapter m_value; + vmime::ref > m_value; public: - parameterizedHeaderField() : headerField("F"), m_value("X") { } + parameterizedHeaderField() + : headerField("F"), + m_value(vmime::create >("X")) + { + } - const vmime::component& getValue() const { return m_value; } - vmime::component& getValue() { return m_value; } + const vmime::component& getValue() const { return *m_value; } + vmime::component& getValue() { return *m_value; } void setValue(const vmime::component&) { /* Do nothing */ } + + const vmime::ref getValueImp() const { return m_value; } + vmime::ref getValueImp() { return m_value; } }; #define PARAM_VALUE(p, n) (p.getParameterAt(n)->getValue().generate()) #define PARAM_NAME(p, n) (p.getParameterAt(n)->getName()) -#define PARAM_CHARSET(p, n) (static_cast \ - (p.getParameterAt(n))->getValue().getCharset().generate()) -#define PARAM_BUFFER(p, n) (static_cast \ - (p.getParameterAt(n))->getValue().getBuffer()) +#define PARAM_CHARSET(p, n) ( \ + (p.getParameterAt(n).staticCast ())->getValue().getCharset().generate()) +#define PARAM_BUFFER(p, n) ( \ + (p.getParameterAt(n).staticCast ())->getValue().getBuffer()) class parameterTest : public suite diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp index e43080df..54e6c5ea 100644 --- a/tests/parser/textTest.cpp +++ b/tests/parser/textTest.cpp @@ -61,7 +61,7 @@ namespace assert_eq("4.3", w1.getCharset(), t4.getWordAt(0)->getCharset()); vmime::word w2("Other", vmime::charset(vmime::charsets::US_ASCII)); - t4.appendWord(new vmime::word(w2)); + t4.appendWord(vmime::create (w2)); vmime::text t5(t4); @@ -77,7 +77,7 @@ namespace vmime::text t1("Test: \xa9\xc3"); assert_true("operator==", t1 == t1); - assert_true("clone", *(t1.clone()) == t1); + assert_true("clone", *vmime::clone(t1) == t1); vmime::text t2; t2.copyFrom(t1); @@ -91,7 +91,7 @@ namespace vmime::charset c1("test"); vmime::text t1; - vmime::text::newFromString(s1, c1, &t1); + t1.createFromString(s1, c1); assert_eq("1.1", 1, t1.getWordCount()); assert_eq("1.2", s1, t1.getWordAt(0)->getBuffer()); @@ -104,7 +104,7 @@ namespace vmime::charset c2("test"); vmime::text t2; - vmime::text::newFromString(s2, c2, &t2); + t2.createFromString(s2, c2); assert_eq("2.1", 3, t2.getWordCount()); assert_eq("2.2", s2_1, t2.getWordAt(0)->getBuffer()); -- cgit