url_ut.cc 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #include "gtest/gtest.h"
  2. #include "alibabacloud/core/Url.h"
  3. using namespace std;
  4. using namespace AlibabaCloud;
  5. namespace {
  6. TEST(UrlTest, assign) {
  7. const string src = "abc://username:password@example.com:123/path/data?key=value&key2=value2#fragid1";
  8. Url url;
  9. url.setScheme("abc");
  10. url.setUserName("username");
  11. url.setPassword("password");
  12. url.setHost("example.com");
  13. url.setPath("/path/data");
  14. url.setPort(123);
  15. url.setQuery("key=value&key2=value2");
  16. url.setFragment("fragid1");
  17. EXPECT_TRUE(url.toString() == src);
  18. EXPECT_TRUE(url.scheme() == "abc");
  19. EXPECT_TRUE(url.userName() == "username");
  20. EXPECT_TRUE(url.password() == "password");
  21. EXPECT_TRUE(url.host() == "example.com");
  22. EXPECT_TRUE(url.path() == "/path/data");
  23. EXPECT_TRUE(url.port() == 123);
  24. EXPECT_TRUE(url.query() == "key=value&key2=value2");
  25. EXPECT_TRUE(url.fragment() == "fragid1");
  26. url.clear();
  27. EXPECT_TRUE(url.toString() == "");
  28. EXPECT_TRUE(url.scheme() == "");
  29. EXPECT_TRUE(url.userName() == "");
  30. EXPECT_TRUE(url.password() == "");
  31. EXPECT_TRUE(url.host() == "");
  32. EXPECT_TRUE(url.path() == "");
  33. EXPECT_TRUE(url.port() == -1);
  34. EXPECT_TRUE(url.query() == "");
  35. EXPECT_TRUE(url.fragment() == "");
  36. url.fromString(src);
  37. EXPECT_TRUE(url.scheme() == "abc");
  38. EXPECT_TRUE(url.userName() == "username");
  39. EXPECT_TRUE(url.password() == "password");
  40. EXPECT_TRUE(url.host() == "example.com");
  41. EXPECT_TRUE(url.path() == "/path/data");
  42. EXPECT_TRUE(url.port() == 123);
  43. EXPECT_TRUE(url.query() == "key=value&key2=value2");
  44. EXPECT_TRUE(url.fragment() == "fragid1");
  45. Url newurl = url;
  46. EXPECT_TRUE(newurl.scheme() == "abc");
  47. EXPECT_TRUE(newurl.userName() == "username");
  48. EXPECT_TRUE(newurl.password() == "password");
  49. EXPECT_TRUE(newurl.host() == "example.com");
  50. EXPECT_TRUE(newurl.path() == "/path/data");
  51. EXPECT_TRUE(newurl.port() == 123);
  52. EXPECT_TRUE(newurl.query() == "key=value&key2=value2");
  53. EXPECT_TRUE(newurl.fragment() == "fragid1");
  54. }
  55. TEST(UrlTest, from_string) {
  56. const string src = "http://oss.example.com";
  57. Url url(src);
  58. EXPECT_TRUE(url.scheme() == "http");
  59. EXPECT_TRUE(url.userName() == "");
  60. EXPECT_TRUE(url.password() == "");
  61. EXPECT_TRUE(url.host() == "oss.example.com");
  62. EXPECT_TRUE(url.path() == "/");
  63. EXPECT_TRUE(url.port() == -1);
  64. EXPECT_TRUE(url.query() == "");
  65. EXPECT_TRUE(url.fragment() == "");
  66. }
  67. TEST(UrlTest, abnormal) {
  68. const string src = "http://oss.example.com";
  69. Url url(src);
  70. Url newurl = url;
  71. newurl.setPort(12345);
  72. EXPECT_TRUE(url.isEmpty() == false);
  73. EXPECT_TRUE(url.isValid());
  74. EXPECT_TRUE(newurl != url);
  75. EXPECT_TRUE(newurl.port() == 12345);
  76. }
  77. TEST(UrlTest, abnormal_2) {
  78. const string src = "";
  79. Url empty_url;
  80. empty_url.fromString(src);
  81. EXPECT_TRUE(empty_url.isEmpty());
  82. Url url(src);
  83. Url newurl = url;
  84. EXPECT_TRUE(url == newurl);
  85. newurl.setPort(12345);
  86. EXPECT_TRUE(url.isEmpty() == true);
  87. EXPECT_TRUE(url.isValid() == false);
  88. EXPECT_TRUE(url.authority() == "");
  89. EXPECT_TRUE(newurl != url);
  90. EXPECT_TRUE(newurl.port() == 12345);
  91. newurl.setAuthority("");
  92. EXPECT_TRUE(newurl.host() == "");
  93. EXPECT_TRUE(newurl.port() == -1);
  94. EXPECT_TRUE(newurl.userInfo() == "");
  95. newurl.setScheme("");
  96. EXPECT_TRUE(newurl.scheme() == "");
  97. newurl.setUserInfo("userinfo");
  98. EXPECT_TRUE(newurl.userName() == "userinfo");
  99. newurl.setUserInfo("user:password");
  100. EXPECT_TRUE(newurl.userName() == "user");
  101. EXPECT_TRUE(newurl.password() == "password");
  102. }
  103. }