//Licensed under the GNU General Public License

#include "ssigrouptest.h"

LoginTest::LoginTest(int argc, char ** argv) : TQApplication( argc, argv )
{
	// set up client stream
	myConnector = new KNetworkConnector( 0 );
	myConnector->setOptHostPort( "login.oscar.aol.com", 5190 );
	myTestObject = new ClientStream( myConnector, myConnector);
	
	// notify when the transport layer is connected
	//connect( myTestObject, TQ_SIGNAL( connected() ), TQ_SLOT( slotConnected() ) );
	myClient = new Client();
	
	myConnection = new Connection( myConnector, myTestObject, "AUTHORIZER" );
	myConnection->setClient( myClient );
	// do test once the event loop is running
	TQTimer::singleShot( 0, this, TQ_SLOT( slotDoTest() ) );
	connected = false;
}

LoginTest::~LoginTest()
{
	delete myTestObject;
	delete myConnector;
	delete myClient;
}

void LoginTest::slotDoTest()
{
	TQString server = TQString::fromLatin1("login.oscar.aol.com");
	// connect to server
	tqDebug( "connecting to server ");

	myClient->setIsIcq( true );
	myClient->start( server, 5190, "userid", "password" );
	myClient->connectToServer( myConnection, server, true );
	TQTimer::singleShot( 10000, this, TQ_SLOT(runAddGroupTest() ) );
	connected = true;
}

void LoginTest::slotConnected()
{
	tqDebug( "connection is up");
	connected = true;
}

int main(int argc, char ** argv)
{
	LoginTest a( argc, argv );
	a.exec();
	if ( !a.isConnected() )
		return 0;
}

void LoginTest::runAddGroupTest()
{
	tqDebug( "running ssi group add test" );
	TQString group = TQString::fromLatin1( "dummygroup" );
	myClient->addGroup( group );
	TQTimer::singleShot( 5000, this, TQ_SLOT( runDelGroupTest() ) );
}

void LoginTest::runDelGroupTest()
{
	tqDebug( "running ssi group del test" );
	TQString group = TQString::fromLatin1( "dummygroup" );
	myClient->removeGroup( group );
}


#include "ssigrouptest.moc"
