RequestTest.cc 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. #include "Request.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. class RequestTest:public CppUnit::TestFixture {
  4. CPPUNIT_TEST_SUITE(RequestTest);
  5. CPPUNIT_TEST(testSetUrl1);
  6. CPPUNIT_TEST(testSetUrl2);
  7. CPPUNIT_TEST(testSetUrl3);
  8. CPPUNIT_TEST(testSetUrl4);
  9. CPPUNIT_TEST(testSetUrl5);
  10. CPPUNIT_TEST(testSetUrl6);
  11. CPPUNIT_TEST(testSetUrl7);
  12. CPPUNIT_TEST(testSetUrl8);
  13. CPPUNIT_TEST(testSetUrl9);
  14. CPPUNIT_TEST(testSetUrl10);
  15. CPPUNIT_TEST(testRedirectUrl);
  16. CPPUNIT_TEST(testResetUrl);
  17. CPPUNIT_TEST(testSafeChar);
  18. CPPUNIT_TEST_SUITE_END();
  19. public:
  20. void testSetUrl1();
  21. void testSetUrl2();
  22. void testSetUrl3();
  23. void testSetUrl4();
  24. void testSetUrl5();
  25. void testSetUrl6();
  26. void testSetUrl7();
  27. void testSetUrl8();
  28. void testSetUrl9();
  29. void testSetUrl10();
  30. void testRedirectUrl();
  31. void testResetUrl();
  32. void testSafeChar();
  33. };
  34. CPPUNIT_TEST_SUITE_REGISTRATION( RequestTest );
  35. void RequestTest::testSetUrl1() {
  36. Request req;
  37. bool v = req.setUrl("http://aria.rednoah.com/");
  38. CPPUNIT_ASSERT(v);
  39. CPPUNIT_ASSERT_EQUAL(string("http://aria.rednoah.com/"), req.getUrl());
  40. CPPUNIT_ASSERT_EQUAL(string("http://aria.rednoah.com/"), req.getCurrentUrl());
  41. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  42. CPPUNIT_ASSERT_EQUAL(80, req.getPort());
  43. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost());
  44. CPPUNIT_ASSERT_EQUAL(string("/"), req.getDir());
  45. CPPUNIT_ASSERT_EQUAL(string(""), req.getFile());
  46. }
  47. void RequestTest::testSetUrl2() {
  48. Request req;
  49. bool v = req.setUrl("http://aria.rednoah.com:8080/index.html");
  50. CPPUNIT_ASSERT(v);
  51. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  52. CPPUNIT_ASSERT_EQUAL(8080, req.getPort());
  53. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost());
  54. CPPUNIT_ASSERT_EQUAL(string("/"), req.getDir());
  55. CPPUNIT_ASSERT_EQUAL(string("index.html"), req.getFile());
  56. }
  57. void RequestTest::testSetUrl3() {
  58. Request req;
  59. bool v = req.setUrl("http://aria.rednoah.com/aria2/index.html");
  60. CPPUNIT_ASSERT(v);
  61. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  62. CPPUNIT_ASSERT_EQUAL(80, req.getPort());
  63. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost());
  64. CPPUNIT_ASSERT_EQUAL(string("/aria2"), req.getDir());
  65. CPPUNIT_ASSERT_EQUAL(string("index.html"), req.getFile());
  66. }
  67. void RequestTest::testSetUrl4() {
  68. Request req;
  69. bool v = req.setUrl("http://aria.rednoah.com/aria2/aria3/index.html");
  70. CPPUNIT_ASSERT(v);
  71. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  72. CPPUNIT_ASSERT_EQUAL(80, req.getPort());
  73. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost());
  74. CPPUNIT_ASSERT_EQUAL(string("/aria2/aria3"), req.getDir());
  75. CPPUNIT_ASSERT_EQUAL(string("index.html"), req.getFile());
  76. }
  77. void RequestTest::testSetUrl5() {
  78. Request req;
  79. bool v = req.setUrl("http://aria.rednoah.com/aria2/aria3/");
  80. CPPUNIT_ASSERT(v);
  81. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  82. CPPUNIT_ASSERT_EQUAL(80, req.getPort());
  83. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost());
  84. CPPUNIT_ASSERT_EQUAL(string("/aria2/aria3"), req.getDir());
  85. CPPUNIT_ASSERT_EQUAL(string(""), req.getFile());
  86. }
  87. void RequestTest::testSetUrl6() {
  88. Request req;
  89. bool v = req.setUrl("http://aria.rednoah.com/aria2/aria3");
  90. CPPUNIT_ASSERT(v);
  91. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  92. CPPUNIT_ASSERT_EQUAL(80, req.getPort());
  93. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost());
  94. CPPUNIT_ASSERT_EQUAL(string("/aria2"), req.getDir());
  95. CPPUNIT_ASSERT_EQUAL(string("aria3"), req.getFile());
  96. }
  97. void RequestTest::testSetUrl7() {
  98. Request req;
  99. bool v = req.setUrl("http://");
  100. CPPUNIT_ASSERT(!v);
  101. }
  102. void RequestTest::testSetUrl8() {
  103. Request req;
  104. bool v = req.setUrl("http:/aria.rednoah.com");
  105. CPPUNIT_ASSERT(!v);
  106. }
  107. void RequestTest::testSetUrl9() {
  108. Request req;
  109. bool v = req.setUrl("h");
  110. CPPUNIT_ASSERT(!v);
  111. }
  112. void RequestTest::testSetUrl10() {
  113. Request req;
  114. bool v = req.setUrl("");
  115. CPPUNIT_ASSERT(!v);
  116. }
  117. void RequestTest::testRedirectUrl() {
  118. Request req;
  119. bool v = req.setUrl("http://aria.rednoah.com:8080/aria2/index.html");
  120. bool v2 = req.redirectUrl("http://aria.rednoah.co.jp/");
  121. CPPUNIT_ASSERT(v2);
  122. // url must be the same
  123. CPPUNIT_ASSERT_EQUAL(string("http://aria.rednoah.com:8080/aria2/index.html"),
  124. req.getUrl());
  125. // currentUrl must be updated
  126. CPPUNIT_ASSERT_EQUAL(string("http://aria.rednoah.co.jp/"), req.getCurrentUrl());
  127. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  128. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.co.jp"), req.getHost());
  129. CPPUNIT_ASSERT_EQUAL(80, req.getPort());
  130. CPPUNIT_ASSERT_EQUAL(string("/"), req.getDir());
  131. CPPUNIT_ASSERT_EQUAL(string(""), req.getFile());
  132. }
  133. void RequestTest::testResetUrl() {
  134. Request req;
  135. bool v = req.setUrl("http://aria.rednoah.com:8080/aria2/index.html");
  136. bool v2 = req.redirectUrl("ftp://aria.rednoah.co.jp/");
  137. bool v3 = req.resetUrl();
  138. CPPUNIT_ASSERT(v3);
  139. // currentUrl must equal to url
  140. CPPUNIT_ASSERT_EQUAL(string("http://aria.rednoah.com:8080/aria2/index.html"), req.getUrl());
  141. CPPUNIT_ASSERT_EQUAL(req.getUrl(), req.getCurrentUrl());
  142. CPPUNIT_ASSERT_EQUAL(string("http"), req.getProtocol());
  143. CPPUNIT_ASSERT_EQUAL(8080, req.getPort());
  144. CPPUNIT_ASSERT_EQUAL(string("aria.rednoah.com"), req.getHost());
  145. CPPUNIT_ASSERT_EQUAL(string("/aria2"), req.getDir());
  146. CPPUNIT_ASSERT_EQUAL(string("index.html"), req.getFile());
  147. }
  148. void RequestTest::testSafeChar() {
  149. Request req;
  150. bool v = req.setUrl("http://aria.rednoah.com/|<>");
  151. CPPUNIT_ASSERT(!v);
  152. }