UriListParserTest.cc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "UriListParser.h"
  2. #include "Exception.h"
  3. #include "Util.h"
  4. #include <sstream>
  5. #include <algorithm>
  6. #include <iostream>
  7. #include <fstream>
  8. #include <iterator>
  9. #include <cppunit/extensions/HelperMacros.h>
  10. namespace aria2 {
  11. class UriListParserTest : public CppUnit::TestFixture {
  12. CPPUNIT_TEST_SUITE(UriListParserTest);
  13. CPPUNIT_TEST(testHasNext);
  14. CPPUNIT_TEST_SUITE_END();
  15. private:
  16. std::string list2String(const std::deque<std::string>& src);
  17. public:
  18. void setUp() {
  19. }
  20. void testHasNext();
  21. };
  22. CPPUNIT_TEST_SUITE_REGISTRATION( UriListParserTest );
  23. std::string UriListParserTest::list2String(const std::deque<std::string>& src)
  24. {
  25. std::ostringstream strm;
  26. std::copy(src.begin(), src.end(), std::ostream_iterator<std::string>(strm, " "));
  27. return Util::trim(strm.str());
  28. }
  29. void UriListParserTest::testHasNext()
  30. {
  31. UriListParser flp;
  32. std::ifstream in("filelist1.txt");
  33. CPPUNIT_ASSERT_EQUAL(std::string("http://localhost/index.html http://localhost2/index.html"), list2String(flp.parseNext(in)));
  34. CPPUNIT_ASSERT_EQUAL(std::string("ftp://localhost/aria2.tar.bz2"),
  35. list2String(flp.parseNext(in)));
  36. CPPUNIT_ASSERT_EQUAL(std::string(""),
  37. list2String(flp.parseNext(in)));
  38. CPPUNIT_ASSERT(!in);
  39. }
  40. } // namespace aria2