escape string fixes

This commit is contained in:
Arvid Norberg
2009-09-05 01:08:56 +00:00
parent 49f54a6f7f
commit c7b1d7e7d6
3 changed files with 41 additions and 5 deletions

View File

@@ -519,6 +519,31 @@ int test_main()
TEST_CHECK(*url_has_argument("http://127.0.0.1/test?foo=24&bar=23&a=e", "a") == "e");
TEST_CHECK(!url_has_argument("http://127.0.0.1/test?foo=24&bar=23&a=e", "b"));
// escape_string
char const* test_string = "!@#$%^&*()-_=+/,. %?";
TEST_CHECK(escape_string(test_string, strlen(test_string))
== "!%40%23$%25%5e%26*()-_%3d%2b%2f,.%20%25%3f");
// escape_path
TEST_CHECK(escape_path(test_string, strlen(test_string))
== "!%40%23$%25%5e%26*()-_%3d%2b/,.%20%25%3f");
// need_encoding
char const* test_string2 = "!@$&()-_/,.%?";
TEST_CHECK(need_encoding(test_string, strlen(test_string)) == true);
TEST_CHECK(need_encoding(test_string2, strlen(test_string2)) == false);
TEST_CHECK(need_encoding("\n", 1) == true);
// maybe_url_encode
TEST_CHECK(maybe_url_encode("http://bla.com/\n") == "http://bla.com:80/%0a");
std::cerr << maybe_url_encode("http://bla.com/\n") << std::endl;
TEST_CHECK(maybe_url_encode("?&") == "?&");
// unescape_string
TEST_CHECK(unescape_string(escape_string(test_string, strlen(test_string)), ec)
== test_string);
std::cerr << unescape_string(escape_string(test_string, strlen(test_string)), ec) << std::endl;
// HTTP request parser
http_parser parser;