diff options
Diffstat (limited to 'test/RequestGroupTest.cc')
| -rw-r--r-- | test/RequestGroupTest.cc | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/RequestGroupTest.cc b/test/RequestGroupTest.cc index 47bc6e05..ddbb56c3 100644 --- a/test/RequestGroupTest.cc +++ b/test/RequestGroupTest.cc @@ -14,6 +14,7 @@ class RequestGroupTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(RequestGroupTest); CPPUNIT_TEST(testGetFirstFilePath); + CPPUNIT_TEST(testTryAutoFileRenaming); CPPUNIT_TEST(testCreateDownloadResult); CPPUNIT_TEST_SUITE_END(); @@ -24,6 +25,7 @@ public: void setUp() { option_.reset(new Option()); } void testGetFirstFilePath(); + void testTryAutoFileRenaming(); void testCreateDownloadResult(); }; @@ -44,6 +46,57 @@ void RequestGroupTest::testGetFirstFilePath() CPPUNIT_ASSERT_EQUAL(std::string("[MEMORY]myfile"), group.getFirstFilePath()); } +void RequestGroupTest::testTryAutoFileRenaming() +{ + std::shared_ptr<DownloadContext> ctx( + new DownloadContext(1_k, 1_k, "/tmp/myfile")); + + RequestGroup group(GroupId::create(), option_); + group.setDownloadContext(ctx); + + option_->put(PREF_AUTO_FILE_RENAMING, "false"); + try { + group.tryAutoFileRenaming(); + } + catch (const Exception& ex) { + CPPUNIT_ASSERT_EQUAL(error_code::FILE_ALREADY_EXISTS, ex.getErrorCode()); + + } + + option_->put(PREF_AUTO_FILE_RENAMING, "true"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string("/tmp/myfile.1"), group.getFirstFilePath()); + + ctx->getFirstFileEntry()->setPath("/tmp/myfile.txt"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string("/tmp/myfile.1.txt"), group.getFirstFilePath()); + + ctx->getFirstFileEntry()->setPath("/tmp.txt/myfile"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string("/tmp.txt/myfile.1"), group.getFirstFilePath()); + + ctx->getFirstFileEntry()->setPath("/tmp.txt/myfile.txt"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string("/tmp.txt/myfile.1.txt"), group.getFirstFilePath()); + + ctx->getFirstFileEntry()->setPath(".bashrc"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string(".bashrc.1"), group.getFirstFilePath()); + + ctx->getFirstFileEntry()->setPath(".bashrc.txt"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string(".bashrc.1.txt"), group.getFirstFilePath()); + + ctx->getFirstFileEntry()->setPath("/tmp.txt/.bashrc"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string("/tmp.txt/.bashrc.1"), group.getFirstFilePath()); + + ctx->getFirstFileEntry()->setPath("/tmp.txt/.bashrc.txt"); + group.tryAutoFileRenaming(); + CPPUNIT_ASSERT_EQUAL(std::string("/tmp.txt/.bashrc.1.txt"), group.getFirstFilePath()); + +} + void RequestGroupTest::testCreateDownloadResult() { std::shared_ptr<DownloadContext> ctx( |
