FileEntryTest.cc 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "FileEntry.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. namespace aria2 {
  4. class FileEntryTest : public CppUnit::TestFixture {
  5. CPPUNIT_TEST_SUITE(FileEntryTest);
  6. CPPUNIT_TEST(testSetupDir);
  7. CPPUNIT_TEST(testRemoveURIWhoseHostnameIs);
  8. CPPUNIT_TEST(testExtractURIResult);
  9. CPPUNIT_TEST_SUITE_END();
  10. public:
  11. void setUp() {}
  12. void testSetupDir();
  13. void testRemoveURIWhoseHostnameIs();
  14. void testExtractURIResult();
  15. };
  16. CPPUNIT_TEST_SUITE_REGISTRATION( FileEntryTest );
  17. void FileEntryTest::testSetupDir()
  18. {
  19. std::string dir = "/tmp/aria2-FileEntryTest-testSetupDir";
  20. std::string filename = "filename";
  21. std::string path = dir+"/"+filename;
  22. File d(dir);
  23. if(d.exists()) {
  24. CPPUNIT_ASSERT(d.remove());
  25. }
  26. CPPUNIT_ASSERT(!d.exists());
  27. FileEntry fileEntry(path, 0, 0);
  28. fileEntry.setupDir();
  29. CPPUNIT_ASSERT(d.isDir());
  30. File f(path);
  31. CPPUNIT_ASSERT(!f.exists());
  32. }
  33. void FileEntryTest::testRemoveURIWhoseHostnameIs()
  34. {
  35. const char* uris[] = { "http://localhost/aria2.zip",
  36. "ftp://localhost/aria2.zip",
  37. "http://mirror/aria2.zip" };
  38. FileEntry fileEntry;
  39. fileEntry.setUris(std::deque<std::string>(&uris[0], &uris[3]));
  40. fileEntry.removeURIWhoseHostnameIs("localhost");
  41. CPPUNIT_ASSERT_EQUAL((size_t)1, fileEntry.getRemainingUris().size());
  42. CPPUNIT_ASSERT_EQUAL(std::string("http://mirror/aria2.zip"),
  43. fileEntry.getRemainingUris()[0]);
  44. }
  45. void FileEntryTest::testExtractURIResult()
  46. {
  47. FileEntry fileEntry;
  48. fileEntry.addURIResult("http://timeout/file", downloadresultcode::TIME_OUT);
  49. fileEntry.addURIResult("http://finished/file", downloadresultcode::FINISHED);
  50. fileEntry.addURIResult("http://timeout/file2", downloadresultcode::TIME_OUT);
  51. fileEntry.addURIResult("http://unknownerror/file", downloadresultcode::UNKNOWN_ERROR);
  52. std::deque<URIResult> res;
  53. fileEntry.extractURIResult(res, downloadresultcode::TIME_OUT);
  54. CPPUNIT_ASSERT_EQUAL((size_t)2, res.size());
  55. CPPUNIT_ASSERT_EQUAL(std::string("http://timeout/file"), res[0].getURI());
  56. CPPUNIT_ASSERT_EQUAL(std::string("http://timeout/file2"), res[1].getURI());
  57. CPPUNIT_ASSERT_EQUAL((size_t)2, fileEntry.getURIResults().size());
  58. CPPUNIT_ASSERT_EQUAL(std::string("http://finished/file"),
  59. fileEntry.getURIResults()[0].getURI());
  60. CPPUNIT_ASSERT_EQUAL(std::string("http://unknownerror/file"),
  61. fileEntry.getURIResults()[1].getURI());
  62. res.clear();
  63. fileEntry.extractURIResult(res, downloadresultcode::TIME_OUT);
  64. CPPUNIT_ASSERT(res.empty());
  65. CPPUNIT_ASSERT_EQUAL((size_t)2, fileEntry.getURIResults().size());
  66. }
  67. } // namespace aria2