RequestGroupManTest.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "RequestGroupMan.h"
  2. #include "ConsoleDownloadEngine.h"
  3. #include "CUIDCounter.h"
  4. #include "prefs.h"
  5. #include <cppunit/extensions/HelperMacros.h>
  6. using namespace std;
  7. class RequestGroupManTest : public CppUnit::TestFixture {
  8. CPPUNIT_TEST_SUITE(RequestGroupManTest);
  9. CPPUNIT_TEST(testIsSameFileBeingDownloaded);
  10. CPPUNIT_TEST(testGetInitialCommands);
  11. CPPUNIT_TEST_SUITE_END();
  12. private:
  13. public:
  14. void setUp()
  15. {
  16. CUIDCounterHandle counter = new CUIDCounter();
  17. CUIDCounterSingletonHolder::instance(counter);
  18. }
  19. void testIsSameFileBeingDownloaded();
  20. void testGetInitialCommands();
  21. };
  22. CPPUNIT_TEST_SUITE_REGISTRATION( RequestGroupManTest );
  23. void RequestGroupManTest::testIsSameFileBeingDownloaded()
  24. {
  25. Option option;
  26. RequestGroupMan gm;
  27. RequestGroupHandle rg1 = new RequestGroup("http://localhost/aria2.tar.bz2",
  28. &option);
  29. RequestGroupHandle rg2 = new RequestGroup("http://localhost/aria2.tar.bz2",
  30. &option);
  31. gm.addRequestGroup(rg1);
  32. gm.addRequestGroup(rg2);
  33. rg1->initSegmentMan();
  34. rg2->initSegmentMan();
  35. rg1->getSegmentMan()->filename = "aria2.tar.bz2";
  36. rg2->getSegmentMan()->filename = "aria2.tar.bz2";
  37. CPPUNIT_ASSERT(gm.isSameFileBeingDownloaded(rg1.get()));
  38. rg2->getSegmentMan()->filename = "aria2-0.10.2.tar.bz2";
  39. CPPUNIT_ASSERT(!gm.isSameFileBeingDownloaded(rg1.get()));
  40. }
  41. void RequestGroupManTest::testGetInitialCommands()
  42. {
  43. Option option;
  44. option.put(PREF_SPLIT, "1");
  45. option.put(PREF_TIMEOUT, "10");
  46. RequestGroupMan gm;
  47. RequestGroupHandle rg1 = new RequestGroup("aria2.tar.bz2.metalink",
  48. &option);
  49. RequestGroupHandle rg2 = new RequestGroup("http://localhost/aria2.tar.bz2",
  50. &option);
  51. gm.addRequestGroup(rg1);
  52. gm.addRequestGroup(rg2);
  53. ConsoleDownloadEngine e;
  54. e.option = &option;
  55. Commands commands = gm.getInitialCommands(&e);
  56. CPPUNIT_ASSERT_EQUAL((size_t)1, commands.size());
  57. }