Changeset - a025aa108559
[Not reviewed]
0 8 2
Jan Kaluza - 10 years ago 2015-12-22 18:05:48
jkaluza@redhat.com
Test echo also for Slack
10 files changed with 111 insertions and 16 deletions:
0 comments (0 inline, 0 general)
spectrum/src/frontends/slack/SlackSession.cpp
Show inline comments
 
@@ -118,7 +118,7 @@ void SlackSession::sendMessage(boost::shared_ptr<Swift::Message> message) {
 

	
 
	std::string from = message->getFrom().getResource();
 
	std::string channel = m_jid2channel[message->getFrom().toBare().toString()];
 
	LOG4CXX_INFO(logger, "JID is " << message->getFrom().toBare().toString());
 
	LOG4CXX_INFO(logger, "JID is " << message->getFrom().toBare().toString() << " channel is " << channel);
 
	if (channel.empty()) {
 
		if (m_slackChannel.empty()) {
 
			LOG4CXX_ERROR(logger, m_uinfo.jid << ": Received message for unknown channel from " << message->getFrom().toBare().toString());
spectrum/src/tests/jabber_slack_test.cfg
Show inline comments
 
new file 100644
 
[service]
 
frontend=slack
 
jid = localhostxmpp
 
password = secret
 
server = 0.0.0.0
 
port = 5223
 
server_mode = 0
 
backend_host=127.0.0.1
 
pidfile=./test.pid
 
# < this option doesn't work yet
 
#backend_port=10001
 
admin_jid=admin
 
admin_password=test
 
#cert=server.pfx #patch to PKCS#12 certificate
 
#cert_password=test #password to that certificate if any
 
users_per_backend=10
 
#backend=../..//backends/swiften/spectrum2_swiften_backend
 
#backend=../../../backends/twitter/spectrum2_twitter_backend
 
backend=../../../backends/libpurple/spectrum2_libpurple_backend
 
protocol=prpl-jabber
 
#protocol=prpl-msn
 
#protocol=any
 
#protocol=prpl-icq
 
working_dir=./
 
portfile=./$jid.port
 
irc_server=localhost
 

	
 
[backend]
 
#default_avatar=catmelonhead.jpg
 
#no_vcard_fetch=true
 

	
 
[logging]
 
#config=logging.cfg # log4cxx/log4j logging configuration file
 
#backend_config=/home/hanzz/code/libtransport/spectrum/src/backend-logging.cfg # log4cxx/log4j logging configuration file for backends
 

	
 
[database]
 
type=sqlite3 # or "none" without database backend
 
database=users.sqlite
 
#prefix=twitter
 
#type = mysql # or "none" without database backend.......................................................................................................................
 
#database = test
 
#prefix=
 
#user=root
 
#password=yourrootsqlpassword
 
#encryption_key=hanzzik
spectrum/src/tests/muc_change_topic.py
Show inline comments
 
@@ -8,11 +8,12 @@ import sleekxmpp
 

	
 

	
 
class Responder(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
 
	def __init__(self, jid, password, room, room_password, nick):
 
		sleekxmpp.ClientXMPP.__init__(self, jid, password)
 
		self.room = room
 
		self.nick = nick
 
		self.finished = False
 
		self.room_password = room_password
 
		self.add_event_handler("session_start", self.start)
 
		self.add_event_handler("groupchat_message", self.muc_message)
 

	
 
@@ -23,7 +24,7 @@ class Responder(sleekxmpp.ClientXMPP):
 
			self.send_message(mto=self.room, mbody=None, msubject='The new subject', mtype='groupchat')
 

	
 
	def start(self, event):
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, password=self.room_password, wait=True)
 

	
 
class Client(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
spectrum/src/tests/muc_echo.py
Show inline comments
 
@@ -8,10 +8,11 @@ import sleekxmpp
 

	
 

	
 
class Responder(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
 
	def __init__(self, jid, password, room, room_password, nick):
 
		sleekxmpp.ClientXMPP.__init__(self, jid, password)
 
		self.room = room
 
		self.nick = nick
 
		self.room_password = room_password
 
		self.finished = False
 
		self.add_event_handler("session_start", self.start)
 
		self.add_event_handler("groupchat_message", self.muc_message)
 
@@ -25,7 +26,7 @@ class Responder(sleekxmpp.ClientXMPP):
 
							mtype='groupchat')
 

	
 
	def start(self, event):
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, password=self.room_password, wait=True)
 

	
 
class Client(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
 
@@ -41,7 +42,7 @@ class Client(sleekxmpp.ClientXMPP):
 

	
 
	def muc_message(self, msg):
 
		if msg['mucnick'] != self.nick:
 
			if msg['body'] == "echo abc":
 
			if msg['body'] == "echo abc" or msg['body'] == "<owner> echo abc":
 
				self.tests["echo_received"][1] = True
 
				self.finished = True
 

	
spectrum/src/tests/muc_join_leave.py
Show inline comments
 
@@ -8,9 +8,10 @@ import sleekxmpp
 

	
 

	
 
class Responder(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
 
	def __init__(self, jid, password, room, room_password, nick):
 
		sleekxmpp.ClientXMPP.__init__(self, jid, password)
 
		self.room = room
 
		self.room_password = room_password
 
		self.nick = nick
 
		self.finished = False
 
		self.add_event_handler("session_start", self.start)
 
@@ -31,7 +32,7 @@ class Responder(sleekxmpp.ClientXMPP):
 
			self.finished = True
 

	
 
	def start(self, event):
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, password=self.room_password, wait=True)
 

	
 
class Client(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
spectrum/src/tests/muc_pm.py
Show inline comments
 
@@ -8,9 +8,10 @@ import sleekxmpp
 

	
 

	
 
class Responder(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
 
	def __init__(self, jid, password, room, room_password, nick):
 
		sleekxmpp.ClientXMPP.__init__(self, jid, password)
 
		self.room = room
 
		self.room_password = room_password
 
		self.nick = nick
 
		self.finished = False
 
		self.add_event_handler("session_start", self.start)
 
@@ -31,7 +32,7 @@ class Responder(sleekxmpp.ClientXMPP):
 
			self.finished = True
 

	
 
	def start(self, event):
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, password=self.room_password, wait=True)
 

	
 
class Client(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
spectrum/src/tests/muc_whois.py
Show inline comments
 
@@ -8,16 +8,17 @@ import sleekxmpp
 

	
 

	
 
class Responder(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
 
	def __init__(self, jid, password, room, room_password, nick):
 
		sleekxmpp.ClientXMPP.__init__(self, jid, password)
 
		self.room = room
 
		self.nick = nick
 
		self.finished = False
 
		self.room_password = room_password
 
		self.add_event_handler("session_start", self.start)
 
		self.tests = {}
 

	
 
	def start(self, event):
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
 
		self.plugin['xep_0045'].joinMUC(self.room, self.nick, password=self.room_password, wait=True)
 

	
 
class Client(sleekxmpp.ClientXMPP):
 
	def __init__(self, jid, password, room, nick):
spectrum/src/tests/slack.sql
Show inline comments
 
new file 100644
 
binary diff not shown
spectrum/src/tests/start.py
Show inline comments
 
@@ -26,6 +26,13 @@ class BaseTest:
 
		self.room = room
 
		self.responder_jid = "responder@localhost"
 
		self.client_jid = "client@localhost"
 
		self.responder_password = "password"
 
		self.client_password = "password"
 
		self.client_room = room
 
		self.responder_room = room
 
		self.client_nick = "client"
 
		self.responder_nick = "responder"
 
		self.responder_roompassword = ""
 

	
 
	def skip_test(self, test):
 
		return False
 
@@ -35,13 +42,16 @@ class BaseTest:
 
		self.pre_test()
 
		time.sleep(1)
 

	
 
		responder = Responder(self.responder_jid, "password", self.room, "responder")
 
		responder = Responder(self.responder_jid, self.responder_password, self.responder_room, self.responder_roompassword, self.responder_nick)
 
		responder.register_plugin('xep_0030')  # Service Discovery
 
		responder.register_plugin('xep_0045')  # Multi-User Chat
 
		responder.register_plugin('xep_0199')  # XMPP Ping
 
		responder['feature_mechanisms'].unencrypted_plain = True
 

	
 
		if responder.connect(("127.0.0.1", 5223)):
 
		to = ("127.0.0.1", 5223)
 
		if self.responder_password != "password":
 
			to = ()
 
		if responder.connect(to):
 
			responder.process(block=False)
 
		else:
 
			print "connect() failed"
 
@@ -49,7 +59,7 @@ class BaseTest:
 
			self.post_test()
 
			sys.exit(1)
 

	
 
		client = Client(self.client_jid, "password", self.room, "client")
 
		client = Client(self.client_jid, self.client_password, self.client_room, self.client_nick)
 
		client.register_plugin('xep_0030')  # Service Discovery
 
		client.register_plugin('xep_0045')  # Multi-User Chat
 
		client.register_plugin('xep_0199')  # XMPP Ping
 
@@ -57,7 +67,10 @@ class BaseTest:
 

	
 
		time.sleep(2)
 

	
 
		if client.connect(("127.0.0.1", 5223)):
 
		to = ("127.0.0.1", 5223)
 
		if self.responder_password != "password":
 
			to = ("127.0.0.1", 5222)
 
		if client.connect(to):
 
			client.process(block=False)
 
		else:
 
			print "connect() failed"
 
@@ -134,10 +147,37 @@ class JabberServerModeConf(BaseTest):
 
		os.system("killall lua-5.1 2>/dev/null")
 
		os.system("killall spectrum2_libpurple_backend 2>/dev/null")
 

	
 
class JabberSlackServerModeConf(BaseTest):
 
	def __init__(self):
 
		BaseTest.__init__(self, "jabber_slack_test.cfg", True, "room%conference.localhost@localhostxmpp")
 
		self.client_jid = "client@localhost"
 
		self.client_room = "room@conference.localhost"
 
		self.responder_jid = "owner@spectrum2tests.xmpp.slack.com"
 
		self.responder_password = "spectrum2tests.rkWHkOrjYucxsmBVkA9K"
 
		self.responder_room = "spectrum2_room@conference.spectrum2tests.xmpp.slack.com"
 
		self.responder_nick = "owner"
 
		self.responder_roompassword = "spectrum2tests.rkWHkOrjYucxsmBVkA9K"
 

	
 
	def skip_test(self, test):
 
		os.system("cp slack.sql users.sqlite")
 
		if test in ["muc_whois.py", "muc_change_topic.py", "muc_join_leave.py", "muc_pm.py"]:
 
			return True
 
		return False
 

	
 
	def pre_test(self):
 
		os.system("prosody --config prosody.cfg.lua > prosody.log &")
 
		#time.sleep(3)
 
		#os.system("../../../spectrum_manager/src/spectrum2_manager -c manager.conf localhostxmpp set_oauth2_code xoxb-17213576196-VV2K8kEwwrJhJFfs5YWv6La6 use_bot_token 2>/dev/null >/dev/null")
 

	
 
	def post_test(self):
 
		os.system("killall lua-5.1 2>/dev/null")
 
		os.system("killall spectrum2_libpurple_backend 2>/dev/null")
 

	
 
configurations = []
 
configurations.append(LibcommuniServerModeSingleServerConf())
 
configurations.append(LibcommuniServerModeConf())
 
configurations.append(JabberServerModeConf())
 
configurations.append(JabberSlackServerModeConf())
 

	
 
exitcode = 0
 

	
src/HTTPRequestQueue.cpp
Show inline comments
 
@@ -23,20 +23,24 @@ HTTPRequestQueue::~HTTPRequestQueue() {
 
}
 

	
 
void HTTPRequestQueue::handleRequestFinished() {
 
	m_req = NULL;
 
	m_queueTimer->start();
 
}
 

	
 
void HTTPRequestQueue::sendNextRequest() {
 
	if (m_queue.empty()) {
 
		LOG4CXX_INFO(logger, "queue is empty");
 
		m_req = NULL;
 
		m_queueTimer->stop();
 
		return;
 
	}
 

	
 
	if (m_req) {
 
		LOG4CXX_INFO(logger, "we are handling the request");
 
		return;
 
	}
 

	
 
	LOG4CXX_INFO(logger, "Starting new request");
 
	m_req = m_queue.front();
 
	m_queue.pop();
 
	m_req->onRequestFinished.connect(boost::bind(&HTTPRequestQueue::handleRequestFinished, this));
 
@@ -46,6 +50,7 @@ void HTTPRequestQueue::sendNextRequest() {
 
void HTTPRequestQueue::queueRequest(HTTPRequest *req) {
 
	m_queue.push(req);
 

	
 
	LOG4CXX_INFO(logger, "request queued");
 
	if (!m_req) {
 
		sendNextRequest();
 
	}
0 comments (0 inline, 0 general)