page4.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. -- This test checks the Lua functions:
  2. -- get_var, get_cookie, md5, url_encode
  3. mg.write("HTTP/1.0 200 OK\r\n")
  4. mg.write("Connection: close\r\n")
  5. mg.write("Content-Type: text/html; charset=utf-8\r\n")
  6. mg.write("\r\n")
  7. mg.write("<html>\r\n<head><title>Civetweb Lua script test page 4</title></head>\r\n<body><pre>\r\n")
  8. -- get_var of query_string
  9. if not mg.request_info.query_string then
  10. mg.write("No query string!\r\n")
  11. else
  12. mg.write("Variables within query string:\r\n")
  13. for _,var in ipairs({'a','b','c','d'}) do
  14. value = mg.get_var(mg.request_info.query_string, var);
  15. if value then
  16. mg.write(" Variable " .. var .. ": value " .. value .. "\r\n");
  17. else
  18. mg.write(" Variable " .. var .. " not set\r\n");
  19. end
  20. end
  21. end
  22. mg.write("\r\n")
  23. -- md5
  24. mg.write("MD5:\r\n")
  25. test_string = "abcd\0efgh"
  26. mg.write(" String with embedded 0, length " .. string.len(test_string))
  27. test_md5 = mg.md5(test_string)
  28. mg.write(", MD5 " .. test_md5 .. "\r\n")
  29. if mg.md5("") == "d41d8cd98f00b204e9800998ecf8427e" then
  30. mg.write(" MD5 of empty string OK\r\n")
  31. else
  32. mg.write(" Error: MD5 of empty string NOT OK\r\n")
  33. end
  34. if mg.md5("The quick brown fox jumps over the lazy dog.") == "e4d909c290d0fb1ca068ffaddf22cbd0" then
  35. mg.write(" MD5 of test string OK\r\n")
  36. else
  37. mg.write(" Error: MD5 of test string NOT OK\r\n")
  38. end
  39. mg.write("\r\n")
  40. -- get_cookie
  41. mg.write("TODO: Test get_cookie\r\n")
  42. mg.write("\r\n")
  43. -- url_encode
  44. mg.write("URL:\r\n")
  45. if mg.url_encode("") == "" then
  46. mg.write(" url_encode of empty string OK\r\n")
  47. else
  48. mg.write(" Error: url_encode of empty string NOT OK\r\n")
  49. end
  50. raw_string = [[ !"#$%&'()*+,-./0123456789:;<=>?@]]
  51. mg.write(" original string: " .. raw_string .. "\r\n")
  52. url_string = mg.url_encode(raw_string):upper()
  53. ref_string = "%20!%22%23%24%25%26'()*%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40" -- from http://www.w3schools.com/tags/ref_urlencode.asp
  54. mg.write(" mg-url: " .. url_string .. "\r\n")
  55. mg.write(" reference url: " .. ref_string .. "\r\n")
  56. dec_url_string = mg.url_decode(url_string)
  57. dec_ref_string = mg.url_decode(ref_string)
  58. mg.write(" decoded mg-url: " .. dec_url_string .. "\r\n")
  59. mg.write(" decoded reference url: " .. dec_ref_string .. "\r\n")
  60. dec_url_string = mg.url_decode(url_string, false)
  61. dec_ref_string = mg.url_decode(ref_string, false)
  62. mg.write(" decoded mg-url: " .. dec_url_string .. "\r\n")
  63. mg.write(" decoded reference url: " .. dec_ref_string .. "\r\n")
  64. dec_url_string = mg.url_decode(url_string, true)
  65. dec_ref_string = mg.url_decode(ref_string, true)
  66. mg.write(" decoded mg-url: " .. dec_url_string .. "\r\n")
  67. mg.write(" decoded reference url: " .. dec_ref_string .. "\r\n")
  68. mg.write("\r\n")
  69. -- end of page
  70. mg.write("</pre></body>\r\n</html>\r\n")