HttpHeaderTest.cc 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "HttpHeader.h"
  2. #include "Range.h"
  3. #include <cppunit/extensions/HelperMacros.h>
  4. namespace aria2 {
  5. class HttpHeaderTest:public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(HttpHeaderTest);
  7. CPPUNIT_TEST(testGetRange);
  8. CPPUNIT_TEST(testGet);
  9. CPPUNIT_TEST(testClearField);
  10. CPPUNIT_TEST_SUITE_END();
  11. public:
  12. void testGetRange();
  13. void testGet();
  14. void testClearField();
  15. };
  16. CPPUNIT_TEST_SUITE_REGISTRATION( HttpHeaderTest );
  17. void HttpHeaderTest::testGetRange()
  18. {
  19. {
  20. HttpHeader httpHeader;
  21. httpHeader.put("Content-Range",
  22. "9223372036854775800-9223372036854775801/9223372036854775807");
  23. SharedHandle<Range> range = httpHeader.getRange();
  24. CPPUNIT_ASSERT_EQUAL((off_t)9223372036854775800LL, range->getStartByte());
  25. CPPUNIT_ASSERT_EQUAL((off_t)9223372036854775801LL, range->getEndByte());
  26. CPPUNIT_ASSERT_EQUAL((uint64_t)9223372036854775807ULL, range->getEntityLength());
  27. }
  28. {
  29. HttpHeader httpHeader;
  30. httpHeader.put("Content-Range",
  31. "9223372036854775800-9223372036854775801/9223372036854775807");
  32. SharedHandle<Range> range = httpHeader.getRange();
  33. CPPUNIT_ASSERT_EQUAL((off_t)9223372036854775800LL, range->getStartByte());
  34. CPPUNIT_ASSERT_EQUAL((off_t)9223372036854775801LL, range->getEndByte());
  35. CPPUNIT_ASSERT_EQUAL((uint64_t)9223372036854775807ULL, range->getEntityLength());
  36. }
  37. }
  38. void HttpHeaderTest::testGet()
  39. {
  40. HttpHeader h;
  41. h.put("A", "100");
  42. h.put("a", "101");
  43. h.put("B", "200");
  44. std::deque<std::string> r(h.get("A"));
  45. CPPUNIT_ASSERT_EQUAL((size_t)2, r.size());
  46. CPPUNIT_ASSERT_EQUAL(std::string("100"), r[0]);
  47. CPPUNIT_ASSERT_EQUAL(std::string("101"), r[1]);
  48. }
  49. void HttpHeaderTest::testClearField()
  50. {
  51. HttpHeader h;
  52. h.setResponseStatus(HttpHeader::S200);
  53. h.setVersion(HttpHeader::HTTP_1_1);
  54. h.put("Foo", "Bar");
  55. CPPUNIT_ASSERT_EQUAL(std::string("Bar"), h.getFirst("Foo"));
  56. h.clearField();
  57. CPPUNIT_ASSERT_EQUAL(std::string(""), h.getFirst("Foo"));
  58. CPPUNIT_ASSERT_EQUAL(HttpHeader::S200, h.getResponseStatus());
  59. CPPUNIT_ASSERT_EQUAL(HttpHeader::HTTP_1_1, h.getVersion());
  60. }
  61. } // namespace aria2