⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sipurltest.cxx

📁 SIP(Session Initiation Protocol)是由IETF定义
💻 CXX
字号:
/* ==================================================================== * The Vovida Software License, Version 1.0  *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. * */static const char* const SipUrlTest_cxx_Version =    "$Id: SipUrlTest.cxx,v 1.10.2.2 2003/01/22 22:33:53 bko Exp $";#include "SipUrl.hxx"#include "Verify.hxx"using namespace Vocal;void test(){    {	// test a simple SipUrl	SipUrl testa(string("sip:2000@192.168.5.111:5061"));	SipUrl testb(testa);	SipUrl testc;	testc = testa;	test_verify(testa == testb);	test_verify(testa == testc);	test_verify(testc == testb);	test_verify(testa.encode() == testb.encode());	test_verify(testa.encode() == testc.encode());	test_verify(testb.encode() == testc.encode());	cout << testa.encode() << endl;	test_verify(testa.encode() == "sip:2000@192.168.5.111:5061");    }    {	// test default values for port and transport	SipUrl test_00(string("sip:2000@192.168.5.111"));	SipUrl test_01(string("sip:2000@192.168.5.111:5060"));		test_verify(test_00 == test_01);		SipUrl test_02;		test_verify(test_00 != test_02);		SipUrl test_03(string("sip:2000@192.168.5.111;transport=udp"));	SipUrl test_04(string("sip:2000@192.168.5.111"));		test_verify(test_03 != test_02);	test_verify(test_03 == test_04);    }    {	// test minimal constructions for equality	SipUrl test_00;	SipUrl test_01;	test_00.setUserValue("foo");	test_01.setUserValue("foo");	test_verify(test_00 == test_01); // this fails due to hostMatch failing	test_00.setHost("test.com");	test_01.setHost("test.com");	test_verify(test_00 == test_01);    }    {	// test phone-context	//SipUrl test0(string("sip:2000@192.168.5.111:5060;transport=udp;user=phone;phone-context=unknown"));	//test_verify(test0.encode() == "sip:2000@192.168.5.111:5060;transport=udp;user=phone;phone-context=unknown");    }    {	// test phone-context	SipUrl test0(string("sip:7311000@192.168.5.111:5060;transport=udp;user=phone;phone-context=unknown"));//	test0.setGlobalPhoneNumber("7311000");	test_verify(test0.encode() == "sip:7311000@192.168.5.111:5060;transport=udp;user=phone;phone-context=unknown");	cout << test0.encode() << endl;    }    {	SipUrl test0(string("sip:7321000@192.168.5.111:5060;user=phone"));//	test0.setGlobalPhoneNumber("7311000");	test_verify(test0.encode() == "sip:7321000@192.168.5.111:5060;user=phone");	cout << test0.encode() << endl;    }    {	Data url1("sip:a.g.bell@bell-telephone.com:5060");    	SipUrl sipUrl(url1);	test_verify(sipUrl.encode() == url1);	test_verify(sipUrl.getHost() == "bell-telephone.com");	test_verify(sipUrl.getPort() == "5060");    }    {	Data url2("sip:veer@vovida.com:5560;transport=udp?veeru%3D23");	SipUrl sipUrl2(url2);	cout << sipUrl2.encode() << endl;	test_verify(url2 == sipUrl2.encode());	test_verify(sipUrl2.getHost() == "vovida.com");	test_verify(sipUrl2.getPort() == "5560");	test_verify(sipUrl2.getTransportParam() == "udp");	cout << "transport param is:" << sipUrl2.getTransportParam().logData() << endl;	cout << "other name is:" << sipUrl2.getOtherName().logData() << endl;	cout << "other param is:" << sipUrl2.getOtherParam().logData() << endl;	Data url3( "sip:12321321;isub=2142114;postd=2134*#-.2ppwww364@rock.com:5060;user=phone?header%3Dwe");	    	SipUrl sipUrl3(url3);	cerr << "ENCODE2:" << url3.logData() << endl;	cerr << "ENCODE:" << sipUrl3.encode().logData() << endl;	test_bug(sipUrl3.encode() == url3);	cout << sipUrl3.encode() << endl;	    	    	Data url4("sip:+23229292@vovida.com;tag=2344");	SipUrl sipUrl4(url4);	test_verify(sipUrl4.encode() == url4);	cout << sipUrl4.encode() << endl;	Data fg = "sip:12321321;isub=2142114;postd=2134*#-.2ppwww364@rock.com:5060;user=phone?header=we";	//Data fg = "sip:stones@vovida.com;ttl=25?subject=project%20x&prirty=urgent";	//Data fg= "sip:veer@vovida.com:5060;transport=udp;user=ip;method=top?dg=flash";//;god";	//	Data jk="sip:veer@vovida.com:5560;transport=udp?veeru=23";	//Data hj = "Krishan Veer<sip:veer@vovida.com>;tag=111111";	Data hj = " KRISHAN VEER<sip:veer@vovida.com>;tag=111111;mthod=777";	//  Data hj = "Krishan Veer<sip:veer@vovida.com ";	//    Data hj = "sip:+23229292@vovida.com;tag=23444";	//Data hj = "Krishan Veer sip:veer@vovida.com>";	Data hj1 = "dsfagah-afdsggh-fadsgh@vovida.com";    }    {      try	{	  SipUrl url1(Data("user1@host"));	  test_verify(false);	}      catch(...)	{	  test_verify(true);	}    }    {	SipUrl url1(Data("sip:user1@host"));	SipUrl url2(Data("sip:user2@host"));	SipUrl url3(Data("sip:user1@host"));	test_verify(url1 == url3);	test_verify(url1 != url2);        SipUrl url4(Data("sip:user:password@128.107.105.124:5060;"));        test_verify(url4.getHost() == Data("128.107.105.124"));        test_verify(url4.getUserValue() == Data("user:password"));        SipUrl url5(Data("sip:user%xyz:5061@host:5060"));        test_verify(url5.getUserValue() == Data("user%xyz:5061"));        test_verify(url5.getHost() == Data("host"));        //IPV6 test cases, a convertion from IPV4 address 3e.e0.39.92 (HEX)        SipUrl url6(Data("sip:user@[2002:3ee0:3972:0001::1]:5060;"));        test_verify(url6.getUserValue() == Data("user"));        test_verify(url6.getHost() == Data("[2002:3ee0:3972:0001::1]"));        SipUrl url7(Data("sip:[2002:3ee0:3972:0001::1]:5060;"));        test_verify(url7.getHost() == Data("[2002:3ee0:3972:0001::1]"));        SipUrl url8(Data("sip:[2201:056D::112E:144A:1E24];"));        test_verify(url8.getHost() == Data("[2201:056D::112E:144A:1E24]"));        SipUrl url9(Data("sip:1001@[2201:056D::112E:144A:1E24];transport=tcp;"));        test_verify(url9.getUserValue() == Data("1001"));        test_verify(url9.getHost() == Data("[2201:056D::112E:144A:1E24]"));        SipUrl url10(url8);        SipUrl url11;        url11 = url8;        test_verify(url10.encode() == url8.encode());        test_verify(url11.encode() == url8.encode());    }    {	SipUrl myUrl;	myUrl.setHost("bob-xyz.com");	test_verify(myUrl.encode() == "sip:bob-xyz.com");	SipUrl myUrl2;	myUrl2.setHost("bob-xyz.com");	myUrl2.setUserValue("   ");	test_verify(myUrl2.encode() == "sip:bob-xyz.com");    }    {      Sptr<BaseUrl> xUrl = new SipUrl("sip:1000@192.168.5.111");      Sptr<BaseUrl> yUrl;      yUrl = xUrl->duplicate();      test_verify(yUrl->encode() == xUrl->encode());    }    {        SipUrl url4(Data("sip:user:password@128.107.105.124:5060"));        test_verify(url4.getHost() == Data("128.107.105.124"));        test_verify(url4.getUserValue() == Data("user:password"));    }    {        SipUrl url4(Data("sip:user@128.107.105.124:5060"));        test_verify(url4.getHost() == Data("128.107.105.124"));        test_verify(url4.getUserValue() == Data("user"));    }    {        SipUrl url4(Data("sip:user@128.107.105.124"));        test_verify(url4.getHost() == Data("128.107.105.124"));        test_verify(url4.getUserValue() == Data("user"));    }    {      SipUrl url(Data("sip:1000@192.168.5.111"));      //      cout << url.getNameAddr() << endl;      test_verify(url.getNameAddr() == "sip:1000@192.168.5.111");    }    {      SipUrl url(Data("sip:[2002:ac17:fc4e::1]"));      test_verify(url.getNameAddr() == "sip:[2002:ac17:fc4e::1]");    }}int main(){    test();    return test_return_code(50);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -