Changeset

302:8aedb3766ec7

You can never have too many tests
author Matthew Wild <mwild1@gmail.com>
date Sat, 15 Nov 2008 23:14:32 +0000
parents 301:fcb7e63630ae
children 306:db4ef011512c
files tests/test_core_stanza_router.lua
diffstat 1 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test_core_stanza_router.lua	Sat Nov 15 23:11:17 2008 +0000
+++ b/tests/test_core_stanza_router.lua	Sat Nov 15 23:14:32 2008 +0000
@@ -1,6 +1,7 @@
 
 function core_process_stanza(core_process_stanza)
 	local s2sout_session = { to_host = "remotehost", from_host = "localhost", type = "s2sout" }
+	local s2sin_session = { from_host = "remotehost", to_host = "localhost", type = "s2sin" }
 	local local_host_session = { host = "localhost", type = "local" }
 	local local_user_session = { username = "user", host = "localhost", resource = "resource", full_jid = "user@localhost/resource", type = "c2s" }
 	local hosts = {
@@ -123,6 +124,28 @@
 		assert_equal(target_routed, true, "stanza was not routed successfully");
 	end
 
+	local function test_iq_error_to_local_user()
+		local env = testlib_new_env();
+		local msg = stanza.stanza("iq", { to = "user@localhost/resource", from = "user@remotehost", type = "error" }):tag("error", { type = 'cancel' }):tag("item-not-found", { xmlns='urn:ietf:params:xml:ns:xmpp-stanzas' });
+		
+		local target_routed;
+		
+		function env.core_route_stanza(p_origin, p_stanza)
+			assert_equal(p_origin, s2sin_session, "origin of handled stanza is not correct");
+			assert_equal(p_stanza, msg, "handled stanza is not correct one: "..p_stanza:pretty_print());
+			target_routed = true;		
+		end
+
+		function env.core_handle_stanza(p_origin, p_stanza)
+			
+		end
+
+		env.hosts = hosts;
+		setfenv(core_process_stanza, env);
+		assert_equal(core_process_stanza(s2sin_session, msg), nil, "core_process_stanza returned incorrect value");
+		assert_equal(target_routed, true, "stanza was not routed successfully");
+	end
+
 	runtest(test_message_full_jid, "Messages with full JID destinations get routed");
 	runtest(test_message_bare_jid, "Messages with bare JID destinations get routed");
 	runtest(test_message_no_to, "Messages with no destination are handled by the server");
@@ -130,5 +153,6 @@
 	runtest(test_message_to_remote_server, "Messages to a remote server's JID are routed");
 
 	runtest(test_iq_to_remote_server, "iq to a remote server's JID are routed");
+	runtest(test_iq_error_to_local_user, "iq type=error to a local user's JID are routed");
 
 end