test.cc 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include <gtest/gtest.h>
  2. #include <httpsvrkit.h>
  3. using namespace std;
  4. using namespace httpsvrkit;
  5. TEST(SplitTest, ParseQueryString)
  6. {
  7. string s = "key1=val1&key2=val2&key3=val3";
  8. map<string, string> dic;
  9. split(&s[0], &s[s.size()], '&', [&](const char* b, const char* e) {
  10. string key, val;
  11. split(b, e, '=', [&](const char* b, const char* e) {
  12. if (key.empty()) {
  13. key.assign(b, e);
  14. } else {
  15. val.assign(b, e);
  16. }
  17. });
  18. dic[key] = val;
  19. });
  20. ASSERT_EQ("val1", dic["key1"]);
  21. ASSERT_EQ("val2", dic["key2"]);
  22. ASSERT_EQ("val3", dic["key3"]);
  23. }
  24. TEST(SocketTest, OpenClose)
  25. {
  26. socket_t sock = create_server_socket("localhost", 1914);
  27. ASSERT_NE(-1, sock);
  28. auto ret = close_server_socket(sock);
  29. ASSERT_EQ(0, ret);
  30. }
  31. TEST(GetHeaderValueTest, DefaultValue)
  32. {
  33. MultiMap map = {{"Dummy","Dummy"}};
  34. auto val = get_header_value(map, "Content-Type", "text/plain");
  35. ASSERT_STREQ("text/plain", val);
  36. }
  37. TEST(GetHeaderValueTest, RegularValue)
  38. {
  39. MultiMap map = {{"Content-Type","text/html"}, {"Dummy", "Dummy"}};
  40. auto val = get_header_value(map, "Content-Type", "text/plain");
  41. ASSERT_STREQ("text/html", val);
  42. }
  43. // vim: et ts=4 sw=4 cin cino={1s ff=unix