Software /
code /
prosody
File
tests/test_util_http.lua @ 8267:42fad8465537
mod_s2s: Use a separate resolver object for each outgoing session
Cleaner approach hopefully fixes problems with some peoples' DNS
hanging after a while, failed DNS when a large number of queries
are made at once, and source port re-use.
Related issues: #487, 761, #991, #992, #1001
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 25 Sep 2017 23:12:47 +0100 |
parent | 7514:ea58c0fe1cd7 |
line wrap: on
line source
-- 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) do 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"); end do 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 end