tubes/inc/tubes/conference.hxx | 3 - tubes/inc/tubes/manager.hxx | 10 ++---- tubes/qa/test_manager.cxx | 63 +++++++++++++++++++++++++++++++++-------- tubes/source/conference.cxx | 6 --- tubes/source/manager.cxx | 12 +++---- 5 files changed, 60 insertions(+), 34 deletions(-)
New commits: commit b881624cc1225c2c851bfc391ac4647aa2539b8d Author: Will Thompson <will.thomp...@collabora.co.uk> Date: Thu Mar 22 12:59:15 2012 +0000 tubes: make startBuddySession take a TpContact *. I removed Conference::setTarget() because it's redundant: you can get the target from the channel. And maTarget was unused anyway. diff --git a/tubes/inc/tubes/conference.hxx b/tubes/inc/tubes/conference.hxx index 8f68333..b9fd366 100644 --- a/tubes/inc/tubes/conference.hxx +++ b/tubes/inc/tubes/conference.hxx @@ -71,8 +71,6 @@ public: // --- following only to be called only by manager's callbacks --- // TODO: make friends instead - /// "bu...@jabber.example.org" or "r...@conference.example.org" or "UUID" - void setTarget( const rtl::OString& rTarget ); void setChannel( TpChannel* pChannel ); TpChannel* getChannel() const { return mpChannel; } bool offerTube(); @@ -92,7 +90,6 @@ public: private: - rtl::OString maTarget; rtl::OString maSessionId; TeleManager* mpManager; TpChannel* mpChannel; diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index c704780..10f20ef 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -105,15 +105,13 @@ public: /** Start a session with a buddy. - @param rAccount - The account (JID) to use. This must be a valid JID that has been - setup with Empathy or another Telepathy client providing - Jabber/XMPP. + @param pAccount + The account to use. This must be a valid Jabber account. - @param rBuddy + @param pBuddy The buddy to be connected. Must be a contact of rAccount. */ - bool startBuddySession( TpAccount *pAccount, const rtl::OString& rBuddy ); + bool startBuddySession( TpAccount *pAccount, TpContact *pBuddy); void unregisterConference( TeleConferencePtr pConference ); diff --git a/tubes/qa/test_manager.cxx b/tubes/qa/test_manager.cxx index debfef5..b053652 100644 --- a/tubes/qa/test_manager.cxx +++ b/tubes/qa/test_manager.cxx @@ -224,8 +224,10 @@ void TestTeleTubes::testPrepareAccountManager2() void TestTeleTubes::testStartBuddySession1() { TpAccount *pAcc1 = mpManager1->getAccount(maOffererIdentifier); - CPPUNIT_ASSERT ( pAcc1 != 0); - bool bStarted = mpManager1->startBuddySession( pAcc1, maAccepterIdentifier); + CPPUNIT_ASSERT( pAcc1 != 0); + /* This has to run after testContactList has run successfully. */ + CPPUNIT_ASSERT( mpAccepterContact != 0); + bool bStarted = mpManager1->startBuddySession( pAcc1, mpAccepterContact); CPPUNIT_ASSERT( bStarted == true); } diff --git a/tubes/source/conference.cxx b/tubes/source/conference.cxx index f5875e0..830db5f 100644 --- a/tubes/source/conference.cxx +++ b/tubes/source/conference.cxx @@ -231,12 +231,6 @@ TeleConference::~TeleConference() } -void TeleConference::setTarget( const rtl::OString& rTarget ) -{ - maTarget = rTarget; -} - - void TeleConference::setChannel( TpChannel* pChannel ) { OSL_ENSURE( !mpChannel, "TeleConference::setChannel: already have channel"); diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index 96c4b3e..5497435 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -392,7 +392,7 @@ bool TeleManager::startGroupSession( const rtl::OUString& rUConferenceRoom, cons /* TODO: factor out common code with startGroupSession() */ -bool TeleManager::startBuddySession( TpAccount *pAccount, const rtl::OString& rBuddy ) +bool TeleManager::startBuddySession( TpAccount *pAccount, TpContact *pBuddy ) { INFO_LOGGER( "TeleManager::startBuddySession"); @@ -404,16 +404,15 @@ bool TeleManager::startBuddySession( TpAccount *pAccount, const rtl::OString& rB maConferences.push_back( pConference); /* TODO: associate the document with this session and conference */ - - pConference->setTarget( rBuddy); - + const char *pIdentifier = tp_contact_get_identifier( pBuddy); SAL_INFO( "tubes", "TeleManager::startBuddySession: creating channel request from " - << tp_account_get_path_suffix( pAccount) << " to " << rBuddy.getStr()); + << tp_account_get_path_suffix( pAccount) + << " to " << pIdentifier); GHashTable* pRequest = tp_asv_new( TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, TP_TYPE_HANDLE, TP_HANDLE_TYPE_CONTACT, - TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, rBuddy.getStr(), + TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, pIdentifier, TP_PROP_CHANNEL_TYPE_DBUS_TUBE_SERVICE_NAME, G_TYPE_STRING, getFullServiceName().getStr(), NULL); commit dc9ddbecd8f7e0e0fb4eeec51e211f2e6502964d Author: Will Thompson <will.thomp...@collabora.co.uk> Date: Thu Mar 22 12:49:17 2012 +0000 tubes test: find TpContact* for accepter diff --git a/tubes/qa/test_manager.cxx b/tubes/qa/test_manager.cxx index da1b3ec..debfef5 100644 --- a/tubes/qa/test_manager.cxx +++ b/tubes/qa/test_manager.cxx @@ -62,6 +62,7 @@ public: void testFlushLoops(); void testDestroyManager1(); void testDestroyManager2(); + void testDestroyAccepterContact(); void testFailAlways(); GMainLoop* mpMainLoop; @@ -82,6 +83,7 @@ public: CPPUNIT_TEST( testFlushLoops ); CPPUNIT_TEST( testDestroyManager1 ); CPPUNIT_TEST( testDestroyManager2 ); + CPPUNIT_TEST( testDestroyAccepterContact ); CPPUNIT_TEST( testFailAlways ); // need failure to display SAL_LOG, comment out for real builds CPPUNIT_TEST_SUITE_END(); @@ -99,6 +101,8 @@ private: static TeleManager* mpManager1 = NULL; static TeleManager* mpManager2 = NULL; +static TpContact* mpAccepterContact = NULL; + static sal_uInt32 nSentPackets = 0; TestTeleTubes::TestTeleTubes() @@ -159,18 +163,38 @@ void TestTeleTubes::testContactList() pairs = cl.getContacts(); guint i; - CPPUNIT_ASSERT( pairs.size() > 0 ); + /* FIXME: this is racy, because we can't be 100% sure that MC has finished + * discovering what we support and passing that on to the connection + * manager... + */ + + /* Both our accounts are meant to be signed in, and they both should be + * capable of LibreOffice tubes because this test runs after we register + * our handler. */ + CPPUNIT_ASSERT_MESSAGE( + "Make sure both your test accounts are signed in " + "and are on each other's contact lists", + pairs.size() > 0 ); + CPPUNIT_ASSERT(!mpAccepterContact); for (i = 0; i < pairs.size(); i++) { AccountContactPair pair = pairs[i]; - g_print ("Account %s; contact %s (%s)\n", - tp_account_get_display_name (pair.first), - tp_contact_get_alias (pair.second), - tp_contact_get_identifier (pair.second)); + + /* FIXME: verify that pair.first is the offerer account */ + if (tp_contact_get_identifier(pair.second) == maAccepterIdentifier) { + mpAccepterContact = pair.second; + g_object_ref(mpAccepterContact); + } g_object_unref (pair.first); g_object_unref (pair.second); } + + CPPUNIT_ASSERT_MESSAGE( + "Couldn't find accepter contact. " + "Make sure both your test accounts are signed in " + "and are on each other's contact lists", + mpAccepterContact); } void TestTeleTubes::testSetupManager1() @@ -271,6 +295,14 @@ void TestTeleTubes::testDestroyManager2() mpManager2 = NULL; } +void TestTeleTubes::testDestroyAccepterContact() +{ + if (mpAccepterContact) { + g_object_unref(mpAccepterContact); + mpAccepterContact = NULL; + } +} + void TestTeleTubes::testFailAlways() { CPPUNIT_ASSERT( false); commit fcbe14778dbd92599c780630f781953ffd4a1427 Author: Will Thompson <will.thomp...@collabora.co.uk> Date: Thu Mar 22 12:43:59 2012 +0000 tubes test: store OString identifiers This will prevent having to convert them in multiple places. diff --git a/tubes/inc/tubes/manager.hxx b/tubes/inc/tubes/manager.hxx index 122b959..c704780 100644 --- a/tubes/inc/tubes/manager.hxx +++ b/tubes/inc/tubes/manager.hxx @@ -113,7 +113,7 @@ public: @param rBuddy The buddy to be connected. Must be a contact of rAccount. */ - bool startBuddySession( TpAccount *pAccount, const rtl::OUString& rBuddy ); + bool startBuddySession( TpAccount *pAccount, const rtl::OString& rBuddy ); void unregisterConference( TeleConferencePtr pConference ); diff --git a/tubes/qa/test_manager.cxx b/tubes/qa/test_manager.cxx index ea5806d..da1b3ec 100644 --- a/tubes/qa/test_manager.cxx +++ b/tubes/qa/test_manager.cxx @@ -91,8 +91,8 @@ private: rtl::OUString maTestConfigIniURL; rtl::Bootstrap maTestConfig; - rtl::OUString maAcc1; - rtl::OUString maAcc2; + rtl::OString maOffererIdentifier; + rtl::OString maAccepterIdentifier; }; // static, not members, so they actually survive cppunit test iteration @@ -107,10 +107,15 @@ TestTeleTubes::TestTeleTubes() { TeleManager::addSuffixToNames( "TeleTest"); + rtl::OUString aOffererIdentifier; CPPUNIT_ASSERT_MESSAGE( "See README for how to set up test-config.ini", - maTestConfig.getFrom("offerer", maAcc1)); + maTestConfig.getFrom("offerer", aOffererIdentifier)); + maOffererIdentifier = OUStringToOString( aOffererIdentifier, RTL_TEXTENCODING_UTF8); + + rtl::OUString aAccepterIdentifier; CPPUNIT_ASSERT_MESSAGE( "See README for how to set up test-config.ini", - maTestConfig.getFrom("accepter", maAcc2)); + maTestConfig.getFrom("accepter", aAccepterIdentifier)); + maAccepterIdentifier = OUStringToOString( aAccepterIdentifier, RTL_TEXTENCODING_UTF8); } TestTeleTubes::~TestTeleTubes() @@ -194,9 +199,9 @@ void TestTeleTubes::testPrepareAccountManager2() void TestTeleTubes::testStartBuddySession1() { - TpAccount *pAcc1 = mpManager1->getAccount( OUStringToOString( maAcc1, RTL_TEXTENCODING_UTF8)); + TpAccount *pAcc1 = mpManager1->getAccount(maOffererIdentifier); CPPUNIT_ASSERT ( pAcc1 != 0); - bool bStarted = mpManager1->startBuddySession( pAcc1, maAcc2); + bool bStarted = mpManager1->startBuddySession( pAcc1, maAccepterIdentifier); CPPUNIT_ASSERT( bStarted == true); } diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx index 2e1c696..96c4b3e 100644 --- a/tubes/source/manager.cxx +++ b/tubes/source/manager.cxx @@ -392,7 +392,7 @@ bool TeleManager::startGroupSession( const rtl::OUString& rUConferenceRoom, cons /* TODO: factor out common code with startGroupSession() */ -bool TeleManager::startBuddySession( TpAccount *pAccount, const rtl::OUString& rBuddy ) +bool TeleManager::startBuddySession( TpAccount *pAccount, const rtl::OString& rBuddy ) { INFO_LOGGER( "TeleManager::startBuddySession"); @@ -405,16 +405,15 @@ bool TeleManager::startBuddySession( TpAccount *pAccount, const rtl::OUString& r /* TODO: associate the document with this session and conference */ - OString aTarget( OUStringToOString( rBuddy, RTL_TEXTENCODING_UTF8)); - pConference->setTarget( aTarget); + pConference->setTarget( rBuddy); SAL_INFO( "tubes", "TeleManager::startBuddySession: creating channel request from " - << tp_account_get_path_suffix( pAccount) << " to " << aTarget.getStr()); + << tp_account_get_path_suffix( pAccount) << " to " << rBuddy.getStr()); GHashTable* pRequest = tp_asv_new( TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, TP_TYPE_HANDLE, TP_HANDLE_TYPE_CONTACT, - TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, aTarget.getStr(), + TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, rBuddy.getStr(), TP_PROP_CHANNEL_TYPE_DBUS_TUBE_SERVICE_NAME, G_TYPE_STRING, getFullServiceName().getStr(), NULL); _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits