Test echo also for Slack
This commit is contained in:
parent
4ce77ae70b
commit
a025aa1085
10 changed files with 111 additions and 16 deletions
|
@ -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());
|
||||
|
|
45
spectrum/src/tests/jabber_slack_test.cfg
Normal file
45
spectrum/src/tests/jabber_slack_test.cfg
Normal file
|
@ -0,0 +1,45 @@
|
|||
[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
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
BIN
spectrum/src/tests/slack.sql
Normal file
BIN
spectrum/src/tests/slack.sql
Normal file
Binary file not shown.
|
@ -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
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue