reSIProcate/stack  9694
Functions
testApplicationSip.cxx File Reference
#include "rutil/DataStream.hxx"
#include "resip/stack/SipMessage.hxx"
#include "resip/stack/Helper.hxx"
#include "resip/stack/Uri.hxx"
#include "resip/stack/ApplicationSip.hxx"
#include "TestSupport.hxx"
#include <iostream>
#include <memory>
Include dependency graph for testApplicationSip.cxx:

Go to the source code of this file.

Functions

int main ()

Function Documentation

int main ( void  )

Definition at line 16 of file testApplicationSip.cxx.

References resip::Data::c_str(), resip::LazyParser::encode(), resip::SipMessage::exists(), resip::Contents::getContents(), resip::SipMessage::header(), resip::TestSupport::makeMessage(), resip::SipFrag::message(), resipCerr, resip::RequestLine::uri(), and resip::Uri::user().

{
   {
      Data txt("INVITE sip:bob@biloxi.com SIP/2.0\r\n"
               "Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8\r\n"
               "To: Bob <sip:bob@biloxi.com>\r\n"
               "From: Alice <sip:alice@atlanta.com>;tag=1928301774\r\n"
               "Call-ID: a84b4c76e66710\r\n"
               "CSeq: 314159 INVITE\r\n"
               "Max-Forwards: 70\r\n"
               "Contact: <sip:alice@pc33.atlanta.com>\r\n"
               "Content-Type: application/sip\r\n"
               "Content-Length: 35\r\n"
               "\r\n"
               "INVITE sip:bob@biloxi.com SIP/2.0\r\n");
      
      auto_ptr<SipMessage> msg(TestSupport::makeMessage(txt.c_str()));
      
      Contents* body = msg->getContents();

      assert(body != 0);
      ApplicationSip* frag = dynamic_cast<ApplicationSip*>(body);
      assert(frag != 0);

      std::cerr << "!! ";
      frag->encode(resipCerr);

      assert(frag->message().header(h_RequestLine).uri().user() == "bob");
      msg->encode(resipCerr);
   }

   {
      Data txt("INVITE sip:bob@biloxi.com SIP/2.0\r\n"
               "Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8\r\n"
               "To: Bob <sip:bob@biloxi.com>\r\n"
               "From: Alice <sip:alice@atlanta.com>;tag=1928301774\r\n"
               "Call-ID: a84b4c76e66710\r\n"
               "CSeq: 314159 INVITE\r\n"
               "Max-Forwards: 70\r\n"
               "Contact: <sip:alice@pc33.atlanta.com>\r\n"
               "Content-Type: application/sip\r\n"
               "\r\n"
               "INVITE sip:bob@biloxi.com SIP/2.0\r\n"
               "From: Alice <sip:alice@atlanta.com>\r\n"
               "To: Bob <sip:bob@biloxi.com>\r\n"
               "Contact: <sip:alice@pc33.atlanta.com>\r\n"
               "Date: Thu, 21 Feb 2002 13:02:03 GMT\r\n"
               "Call-ID: a84b4c76e66710\r\n"
               "Cseq: 314159 INVITE\r\n\r\n");

      auto_ptr<SipMessage> msg(TestSupport::makeMessage(txt.c_str()));
      
      Contents* body = msg->getContents();

      assert(body != 0);
      ApplicationSip* frag = dynamic_cast<ApplicationSip*>(body);
      assert(frag != 0);

      std::cerr << "!! ";
      frag->encode(resipCerr);

      assert(frag->message().exists(h_From));
      assert(frag->message().header(h_From).uri().user() == "alice");

      assert(frag->message().exists(h_CSeq));
      assert(frag->message().header(h_CSeq).sequence() == 314159);
      
      msg->encode(resipCerr);
   }

   // backward compatibiltiy with SipFrag
   {
      Data txt("INVITE sip:bob@biloxi.com SIP/2.0\r\n"
               "Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8\r\n"
               "To: Bob <sip:bob@biloxi.com>\r\n"
               "From: Alice <sip:alice@atlanta.com>;tag=1928301774\r\n"
               "Call-ID: a84b4c76e66710\r\n"
               "CSeq: 314159 INVITE\r\n"
               "Max-Forwards: 70\r\n"
               "Contact: <sip:alice@pc33.atlanta.com>\r\n"
               "Content-Type: application/sip\r\n"
               "\r\n"
               "INVITE sip:bob@biloxi.com SIP/2.0\r\n"
               "From: Alice <sip:alice@atlanta.com>\r\n"
               "To: Bob <sip:bob@biloxi.com>\r\n"
               "Contact: <sip:alice@pc33.atlanta.com>\r\n"
               "Date: Thu, 21 Feb 2002 13:02:03 GMT\r\n"
               "Call-ID: a84b4c76e66710\r\n"
               "Cseq: 314159 INVITE\r\n\r\n");

      auto_ptr<SipMessage> msg(TestSupport::makeMessage(txt.c_str()));
      
      Contents* body = msg->getContents();

      assert(body != 0);
      SipFrag* frag = dynamic_cast<SipFrag*>(body);
      assert(frag != 0);

      std::cerr << "!! ";
      frag->encode(resipCerr);

      assert(frag->message().exists(h_From));
      assert(frag->message().header(h_From).uri().user() == "alice");

      assert(frag->message().exists(h_CSeq));
      assert(frag->message().header(h_CSeq).sequence() == 314159);
      
      msg->encode(resipCerr);
   }

   cerr << "\nTEST OK" << endl;

   return 0;
}

Here is the call graph for this function: