diff --git a/sflphone-common/test/instantmessagingtest.cpp b/sflphone-common/test/instantmessagingtest.cpp index 1e8acf56efef5e9f55dc39f0c77650501c3aed42..4909e2eb14d68423da5e78e1eeed5bb0b18ecc00 100644 --- a/sflphone-common/test/instantmessagingtest.cpp +++ b/sflphone-common/test/instantmessagingtest.cpp @@ -175,9 +175,9 @@ static void XMLCALL startElementCallback(void *userData, const char *name, const if (strcmp(attribute, "uri") == 0) { if((strcmp(value, "sip:alex@example.com") == 0) || (strcmp(value, "sip:manu@example.com") == 0)) - CPPUNIT_ASSERT(1==1); + CPPUNIT_ASSERT(true); else - CPPUNIT_ASSERT(0==1); + CPPUNIT_ASSERT(false); } } @@ -220,13 +220,13 @@ void InstantMessagingTest::testGenerateXmlUriList () if (XML_Parse(parser, buffer.c_str(), buffer.size(), 1) == XML_STATUS_ERROR) { std::cout << "Error: " << XML_ErrorString(XML_GetErrorCode(parser)) << " at line " << XML_GetCurrentLineNumber(parser) << std::endl; - CPPUNIT_ASSERT(0==1); + CPPUNIT_ASSERT(false); } XML_ParserFree(parser); CPPUNIT_ASSERT(nbEntry == 4); - CPPUNIT_ASSERT(1==1); + CPPUNIT_ASSERT(true); } void InstantMessagingTest::testXmlUriListParsing () @@ -256,9 +256,9 @@ void InstantMessagingTest::testXmlUriListParsing () if((iterAttr->second == std::string("sip:alex@example.com")) || (iterAttr->second == std::string("sip:manu@example.com"))) - CPPUNIT_ASSERT(1==1); + CPPUNIT_ASSERT(true); else - CPPUNIT_ASSERT(0==1); + CPPUNIT_ASSERT(false); iterEntry++; } } @@ -321,7 +321,7 @@ void InstantMessagingTest::testGetUriListArea () if(iterAttr == entry->end()) { std::cout << "Error, did not found attribute" << std::endl; - CPPUNIT_ASSERT(0==1); + CPPUNIT_ASSERT(false); } std::string from = iterAttr->second; @@ -329,6 +329,39 @@ void InstantMessagingTest::testGetUriListArea () } +void InstantMessagingTest::testIllFormatedMessage () +{ + bool exceptionCaught = false; + + // SHOULD BE: Content-Type: text/plain + std::string formatedText = "--boundary\n Content-Ty\n\n"; + formatedText.append ("Here is the text area"); + + formatedText.append ("\n--boundary\nContent-Type: application/resource-lists+xml\n"); + formatedText.append ("Content-Disposition: recipient-list\n\n"); + formatedText.append ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); + formatedText.append ("<resource-lists xmlns=\"urn:ietf:params:xml:ns:resource-lists\" xmlns:cp=\"urn:ietf:params:xml:ns:copycontrol\">"); + formatedText.append ("<list>"); + formatedText.append ("<entry uri=\"sip:alex@example.com\" cp:copyControl=\"to\" />"); + formatedText.append ("<entry uri=\"sip:manu@example.com\" cp:copyControl=\"to\" />"); + formatedText.append ("</list>"); + formatedText.append ("</resource-lists>"); + formatedText.append ("--boundary--"); + + try { + std::string message = _im->findTextMessage(formatedText); + } catch (sfl::InstantMessageException &e) { + exceptionCaught = true; + } + + if(exceptionCaught) + CPPUNIT_ASSERT(true); + else + CPPUNIT_ASSERT(false); + +} + + void InstantMessagingTest::tearDown() { delete _im; diff --git a/sflphone-common/test/instantmessagingtest.h b/sflphone-common/test/instantmessagingtest.h index d96211fa618e2907b5e8337358cb05442e6ba17a..55e59975bd21d6ede9766973c7801c2cb0577dac 100644 --- a/sflphone-common/test/instantmessagingtest.h +++ b/sflphone-common/test/instantmessagingtest.h @@ -60,6 +60,7 @@ class InstantMessagingTest : public CppUnit::TestCase { CPPUNIT_TEST (testXmlUriListParsing); CPPUNIT_TEST (testGetTextArea); CPPUNIT_TEST (testGetUriListArea); + CPPUNIT_TEST (testIllFormatedMessage); CPPUNIT_TEST_SUITE_END(); public: @@ -90,7 +91,9 @@ class InstantMessagingTest : public CppUnit::TestCase { void testGetTextArea (); void testGetUriListArea (); - + + void testIllFormatedMessage (); + private: sfl::InstantMessaging *_im; };