int main( int /*argc*/, char** /*argv*/ ) { int fail = 0; std::string name; Tag *t; OOB *d; // ------- name = "parsing 0 tag"; d = new OOB( 0 ); if( d->tag() != 0 ) { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------------------- // jabber:x:oob tests // ------------------- Tag *x = new Tag( "x" ); x->addAttribute( "xmlns", XMLNS_X_OOB ); new Tag( x, "url", "invalidurl" ); new Tag( x, "desc", "description" ); // ------- name = "filled object/getters"; d = new OOB( "invalidurl", "description", false ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "filled object/tag()"; d = new OOB( "invalidurl", "description", false ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_X_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; // ------- name = "from Tag/getters"; d = new OOB( x ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "from Tag/tag()"; d = new OOB( x ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_X_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; // ------------------- // jabber:iq:oob tests // ------------------- delete x; x = 0; x = new Tag( "query" ); x->addAttribute( "xmlns", XMLNS_IQ_OOB ); new Tag( x, "url", "invalidurl" ); new Tag( x, "desc", "description" ); // ------- name = "filled object/getters"; d = new OOB( "invalidurl", "description", true ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "filled object/tag()"; d = new OOB( "invalidurl", "description", true ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_IQ_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; // ------- name = "from Tag/getters"; d = new OOB( x ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "from Tag/tag()"; d = new OOB( x ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_IQ_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; delete x; x = 0; StanzaExtensionFactory sef; // ------- name = "OOB/SEFactory test"; OOB* oob = new OOB( 0 ); // deleted by StanzaExtensionFactory sef; sef.registerExtension( oob ); Tag* f = new Tag( "iq" ); Tag* b = new Tag( f, "query", "xmlns", XMLNS_IQ_OOB ); new Tag( b, "url", "url" ); new Tag( b, "desc", "desc" ); IQ iq( IQ::Set, JID(), "" ); sef.addExtensions( iq, f ); const OOB* se = iq.findExtension<OOB>( ExtOOB ); if( se == 0 || se->url() != "url" || se->desc() != "desc" ) { ++fail; fprintf( stderr, "test '%s' failed\n", name.c_str() ); } delete f; if( fail == 0 ) { printf( "OOB: OK\n" ); return 0; } else { fprintf( stderr, "OOB: %d test(s) failed\n", fail ); return 1; } }
virtual void handleOOB( const JID& /*from*/, const OOB& oob ) { printf( "OOB registration requested. %s: %s\n", oob.desc().c_str(), oob.url().c_str() ); }
int main( int /*argc*/, char** /*argv*/ ) { int fail = 0; std::string name; Tag *t; OOB *d; // ------- name = "parsing 0 tag"; d = new OOB( 0 ); if( d->tag() != 0 ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------------------- // jabber:x:oob tests // ------------------- Tag *x = new Tag( "x" ); x->addAttribute( "xmlns", XMLNS_X_OOB ); new Tag( x, "url", "invalidurl" ); new Tag( x, "desc", "description" ); // ------- name = "filled object/getters"; d = new OOB( "invalidurl", "description", false ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "filled object/tag()"; d = new OOB( "invalidurl", "description", false ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_X_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; // ------- name = "from Tag/getters"; d = new OOB( x ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "from Tag/tag()"; d = new OOB( x ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_X_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; // ------------------- // jabber:iq:oob tests // ------------------- delete x; x = 0; x = new Tag( "query" ); x->addAttribute( "xmlns", XMLNS_IQ_OOB ); new Tag( x, "url", "invalidurl" ); new Tag( x, "desc", "description" ); // ------- name = "filled object/getters"; d = new OOB( "invalidurl", "description", true ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "filled object/tag()"; d = new OOB( "invalidurl", "description", true ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_IQ_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; // ------- name = "from Tag/getters"; d = new OOB( x ); if( d->url() != "invalidurl" || d->desc() != "description" ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; d = 0; // ------- name = "from Tag/tag()"; d = new OOB( x ); t = d->tag(); if( !t || !t->hasAttribute( "xmlns", XMLNS_IQ_OOB ) || !t->hasChild( "url" ) || t->findChild( "url" )->cdata() != "invalidurl" || !t->hasChild( "desc" ) || t->findChild( "desc" )->cdata() != "description") { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; d = 0; t = 0; delete x; x = 0; if( fail == 0 ) { printf( "OOB: all tests passed\n" ); return 0; } else { printf( "OOB: %d test(s) failed\n", fail ); return 1; } }
int main( int /*argc*/, char** /*argv*/ ) { int fail = 0; std::string name; StanzaExtension *se; Tag *t; // ------- name = "OOB test"; OOB *o = new OOB( "url", "desc", false ); t = o->tag(); se = StanzaExtensionFactory::create( t ); if( se->type() != ExtOOB ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete o; delete t; delete se; t = 0; // ------- { name = "XDelayedDelivery test"; JID from( "*****@*****.**" ); XDelayedDelivery *x = new XDelayedDelivery( from, "stamp", "reason" ); t = x->tag(); se = StanzaExtensionFactory::create( t ); if( se->type() != ExtXDelay ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete x; delete t; delete se; t = 0; } // ------- { name = "DelayedDelivery test"; JID from( "*****@*****.**" ); DelayedDelivery *d = new DelayedDelivery( from, "stamp", "reason" ); t = d->tag(); se = StanzaExtensionFactory::create( t ); if( se->type() != ExtDelay ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; delete se; t = 0; } // ------- { name = "VCardUpdate test"; VCardUpdate *d = new VCardUpdate( "hash" ); t = d->tag(); se = StanzaExtensionFactory::create( t ); if( se->type() != ExtVCardUpdate ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; delete se; t = 0; } // ------- { name = "GPGSigned test"; GPGSigned *d = new GPGSigned( "signature" ); t = d->tag(); se = StanzaExtensionFactory::create( t ); if( se->type() != ExtGPGSigned ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; delete se; t = 0; } // ------- { name = "GPGEncrypted test"; GPGEncrypted *d = new GPGEncrypted( "encrypted" ); t = d->tag(); se = StanzaExtensionFactory::create( t ); if( se->type() != ExtGPGEncrypted ) { ++fail; printf( "test '%s' failed\n", name.c_str() ); } delete d; delete t; delete se; t = 0; } if( fail == 0 ) { printf( "StanzaExtensionFactory: all tests passed\n" ); return 0; } else { printf( "StanzaExtensionFactory: %d test(s) failed\n", fail ); return 1; } }