summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften')
-rw-r--r--Swiften/QA/SConscript1
-rw-r--r--Swiften/QA/ScriptedTests/MultipleClients.lua32
-rw-r--r--Swiften/QA/ScriptedTests/SConscript7
-rw-r--r--Swiften/QA/ScriptedTests/SendMessage.lua44
4 files changed, 84 insertions, 0 deletions
diff --git a/Swiften/QA/SConscript b/Swiften/QA/SConscript
index 4638d6c..25ba814 100644
--- a/Swiften/QA/SConscript
+++ b/Swiften/QA/SConscript
@@ -7,4 +7,5 @@ SConscript(dirs = [
# "DNSSDTest",
"StorageTest",
"TLSTest",
+ "ScriptedTests",
])
diff --git a/Swiften/QA/ScriptedTests/MultipleClients.lua b/Swiften/QA/ScriptedTests/MultipleClients.lua
new file mode 100644
index 0000000..76eba74
--- /dev/null
+++ b/Swiften/QA/ScriptedTests/MultipleClients.lua
@@ -0,0 +1,32 @@
+--
+-- Copyright (c) 2010 Remko Tronçon
+-- Licensed under the GNU General Public License v3.
+-- See Documentation/Licenses/GPLv3.txt for more information.
+--
+
+require "sluift"
+
+-- sluift.debug = true
+num_clients = 10
+
+print("Connecting clients")
+clients = {}
+for i = 1, num_clients do
+ jid = os.getenv("SWIFT_CLIENTTEST_JID") .. "/Client" .. i
+ client = sluift.new_client(jid, os.getenv("SWIFT_CLIENTTEST_PASS"))
+ client:async_connect()
+ table.insert(clients, client)
+end
+
+print("Waiting for clients to be connected")
+for i, client in ipairs(clients) do
+ client:wait_connected()
+ client:send_presence("Hello")
+end
+
+print("Disconnecting clients")
+for i, client in ipairs(clients) do
+ client:disconnect()
+end
+
+print("Done")
diff --git a/Swiften/QA/ScriptedTests/SConscript b/Swiften/QA/ScriptedTests/SConscript
new file mode 100644
index 0000000..298c455
--- /dev/null
+++ b/Swiften/QA/ScriptedTests/SConscript
@@ -0,0 +1,7 @@
+Import("env")
+
+if env["TEST"] :
+ env.ScriptTests([
+ "SendMessage.lua",
+ "MultipleClients.lua",
+ ], "Swiften.QA.ScriptedTests", "system")
diff --git a/Swiften/QA/ScriptedTests/SendMessage.lua b/Swiften/QA/ScriptedTests/SendMessage.lua
new file mode 100644
index 0000000..a3f1917
--- /dev/null
+++ b/Swiften/QA/ScriptedTests/SendMessage.lua
@@ -0,0 +1,44 @@
+--
+-- Copyright (c) 2010 Remko Tronçon
+-- Licensed under the GNU General Public License v3.
+-- See Documentation/Licenses/GPLv3.txt for more information.
+--
+
+require "sluift"
+
+-- sluift.debug = true
+client1_jid = os.getenv("SWIFT_CLIENTTEST_JID") .. "/Client1"
+client2_jid = os.getenv("SWIFT_CLIENTTEST_JID") .. "/Client2"
+password = os.getenv("SWIFT_CLIENTTEST_PASS")
+
+print "Connecting client 1"
+client1 = sluift.new_client(client1_jid, password)
+client1:connect()
+client1:send_presence("I'm here")
+
+print "Connecting client 2"
+client2 = sluift.new_client(client2_jid, password)
+client2:connect()
+client2:send_presence("I'm here")
+
+print "Checking version of client 2 from client 1"
+client2:set_version({name = "Sluift Test", version = "1.0"})
+client2_version = client1:get_version(client2_jid)
+assert(client2_version["name"] == "Sluift Test")
+assert(client2_version["version"] == "1.0")
+
+print "Sending message from client 1 to client 2"
+client1:send_message(client2_jid, "Hello")
+received_message = client2:for_event(function(event)
+ if event["type"] == "message" and event["from"] == client1_jid then
+ return event["body"]
+ end
+ end)
+assert(received_message == "Hello")
+
+print "Retrieving the roster"
+roster = client1:get_roster()
+table.foreach(roster, print)
+
+client1:disconnect()
+client2:disconnect()