tests/test.lua, tests/test_net_http.lua: Tests for net.http's url and form encoding...
authorMatthew Wild <mwild1@gmail.com>
Wed, 10 Aug 2011 21:49:37 +0000 (17:49 -0400)
committerMatthew Wild <mwild1@gmail.com>
Wed, 10 Aug 2011 21:49:37 +0000 (17:49 -0400)
tests/test.lua
tests/test_net_http.lua [new file with mode: 0644]

index ae5b24f03cb6b17e8d761ef16313b3dd5ac83dda..000c3ee96a82c282fe392e172bcb7b3796e9f12c 100644 (file)
@@ -9,8 +9,10 @@
 
 
 function run_all_tests()
+       package.loaded["net.connlisteners"] = { get = function () return {} end };
        dotest "util.jid"
        dotest "util.multitable"
+       dotest "net.http"
        dotest "core.modulemanager"
        dotest "core.stanza_router"
        dotest "core.s2smanager"
diff --git a/tests/test_net_http.lua b/tests/test_net_http.lua
new file mode 100644 (file)
index 0000000..e68f96e
--- /dev/null
@@ -0,0 +1,37 @@
+-- Prosody IM
+-- Copyright (C) 2008-2010 Matthew Wild
+-- Copyright (C) 2008-2010 Waqas Hussain
+-- 
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
+--
+
+function urlencode(urlencode)
+       assert_equal(urlencode("helloworld123"), "helloworld123", "Normal characters not escaped");
+       assert_equal(urlencode("hello world"), "hello%20world", "Spaces escaped");
+       assert_equal(urlencode("This & that = something"), "This%20%26%20that%20%3d%20something", "Important URL chars escaped");
+end
+
+function urldecode(urldecode)
+       assert_equal("helloworld123", urldecode("helloworld123"), "Normal characters not escaped");
+       assert_equal("hello world", urldecode("hello%20world"), "Spaces escaped");
+       assert_equal("This & that = something", urldecode("This%20%26%20that%20%3d%20something"), "Important URL chars escaped");
+       assert_equal("This & that = something", urldecode("This%20%26%20that%20%3D%20something"), "Important URL chars escaped");
+end
+
+function formencode(formencode)
+       assert_equal(formencode({ { name = "one", value = "1"}, { name = "two", value = "2" } }), "one=1&two=2", "Form encoded");
+       assert_equal(formencode({ { name = "one two", value = "1"}, { name = "two one&", value = "2" } }), "one+two=1&two+one%26=2", "Form encoded");
+end
+
+function formdecode(formdecode)
+       local t = formdecode("one=1&two=2");
+       assert_table(t[1]);
+       assert_equal(t[1].name, "one"); assert_equal(t[1].value, "1");
+       assert_table(t[2]);
+       assert_equal(t[2].name, "two"); assert_equal(t[2].value, "2");
+
+       local t = formdecode("one+two=1&two+one%26=2");
+       assert_equal(t[1].name, "one two"); assert_equal(t[1].value, "1");
+       assert_equal(t[2].name, "two one&"); assert_equal(t[2].value, "2");
+end