FeatureConfigTest.cc 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. CPPUNIT_ASSERT_EQUAL((uint16_t)80, getDefaultPort("http"));
  22. CPPUNIT_ASSERT_EQUAL((uint16_t)443, getDefaultPort("https"));
  23. CPPUNIT_ASSERT_EQUAL((uint16_t)21, getDefaultPort("ftp"));
  24. }
  25. void FeatureConfigTest::testStrSupportedFeature() {
  26. const char* https = strSupportedFeature(FEATURE_HTTPS);
  27. #ifdef ENABLE_SSL
  28. CPPUNIT_ASSERT(https);
  29. #else
  30. CPPUNIT_ASSERT(!https);
  31. #endif // ENABLE_SSL
  32. CPPUNIT_ASSERT(!strSupportedFeature(MAX_FEATURE));
  33. }
  34. void FeatureConfigTest::testFeatureSummary() {
  35. const std::string features[] = {
  36. #ifdef ENABLE_ASYNC_DNS
  37. "Async DNS",
  38. #endif // ENABLE_ASYNC_DNS
  39. #ifdef ENABLE_BITTORRENT
  40. "BitTorrent",
  41. #endif // ENABLE_BITTORRENT
  42. #ifdef HAVE_SQLITE3
  43. "Firefox3 Cookie",
  44. #endif // HAVE_SQLITE3
  45. #ifdef HAVE_ZLIB
  46. "GZip",
  47. #endif // HAVE_ZLIB
  48. #ifdef ENABLE_SSL
  49. "HTTPS",
  50. #endif // ENABLE_SSL
  51. #ifdef ENABLE_MESSAGE_DIGEST
  52. "Message Digest",
  53. #endif // ENABLE_MESSAGE_DIGEST
  54. #ifdef ENABLE_METALINK
  55. "Metalink",
  56. #endif // ENABLE_METALINK
  57. #ifdef ENABLE_XML_RPC
  58. "XML-RPC",
  59. #endif // ENABLE_XML_RPC
  60. };
  61. std::string featuresString = strjoin(vbegin(features), vend(features), ", ");
  62. CPPUNIT_ASSERT_EQUAL(featuresString, featureSummary());
  63. }
  64. } // namespace aria2