FeatureConfigTest.cc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include "FeatureConfig.h"
  2. #include <algorithm>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. #include "a2functional.h"
  5. #include "array_fun.h"
  6. #include "util.h"
  7. namespace aria2 {
  8. class FeatureConfigTest : public CppUnit::TestFixture {
  9. CPPUNIT_TEST_SUITE(FeatureConfigTest);
  10. CPPUNIT_TEST(testGetDefaultPort);
  11. CPPUNIT_TEST(testStrSupportedFeature);
  12. CPPUNIT_TEST(testFeatureSummary);
  13. CPPUNIT_TEST_SUITE_END();
  14. public:
  15. void testGetDefaultPort();
  16. void testStrSupportedFeature();
  17. void testFeatureSummary();
  18. };
  19. CPPUNIT_TEST_SUITE_REGISTRATION(FeatureConfigTest);
  20. void FeatureConfigTest::testGetDefaultPort()
  21. {
  22. CPPUNIT_ASSERT_EQUAL((uint16_t)80, getDefaultPort("http"));
  23. CPPUNIT_ASSERT_EQUAL((uint16_t)443, getDefaultPort("https"));
  24. CPPUNIT_ASSERT_EQUAL((uint16_t)21, getDefaultPort("ftp"));
  25. CPPUNIT_ASSERT_EQUAL((uint16_t)22, getDefaultPort("sftp"));
  26. }
  27. void FeatureConfigTest::testStrSupportedFeature()
  28. {
  29. const char* https = strSupportedFeature(FEATURE_HTTPS);
  30. #ifdef ENABLE_SSL
  31. CPPUNIT_ASSERT(https);
  32. #else
  33. CPPUNIT_ASSERT(!https);
  34. #endif // ENABLE_SSL
  35. CPPUNIT_ASSERT(!strSupportedFeature(MAX_FEATURE));
  36. auto sftp = strSupportedFeature(FEATURE_SFTP);
  37. #ifdef HAVE_LIBSSH2
  38. CPPUNIT_ASSERT(sftp);
  39. #else // !HAVE_LIBSSH2
  40. CPPUNIT_ASSERT(!sftp);
  41. #endif // !HAVE_LIBSSH2
  42. }
  43. void FeatureConfigTest::testFeatureSummary()
  44. {
  45. const std::string features[] = {
  46. #ifdef ENABLE_ASYNC_DNS
  47. "Async DNS",
  48. #endif // ENABLE_ASYNC_DNS
  49. #ifdef ENABLE_BITTORRENT
  50. "BitTorrent",
  51. #endif // ENABLE_BITTORRENT
  52. #ifdef HAVE_SQLITE3
  53. "Firefox3 Cookie",
  54. #endif // HAVE_SQLITE3
  55. #ifdef HAVE_ZLIB
  56. "GZip",
  57. #endif // HAVE_ZLIB
  58. #ifdef ENABLE_SSL
  59. "HTTPS",
  60. #endif // ENABLE_SSL
  61. "Message Digest",
  62. #ifdef ENABLE_METALINK
  63. "Metalink",
  64. #endif // ENABLE_METALINK
  65. #ifdef ENABLE_XML_RPC
  66. "XML-RPC",
  67. #endif // ENABLE_XML_RPC
  68. #ifdef HAVE_LIBSSH2
  69. "SFTP",
  70. #endif // HAVE_LIBSSH2
  71. };
  72. std::string featuresString =
  73. strjoin(std::begin(features), std::end(features), ", ");
  74. CPPUNIT_ASSERT_EQUAL(featuresString, featureSummary());
  75. }
  76. } // namespace aria2