FeatureConfigTest.cc 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "FeatureConfig.h"
  2. #include "a2functional.h"
  3. #include "array_fun.h"
  4. #include "Util.h"
  5. #include <algorithm>
  6. #include <cppunit/extensions/HelperMacros.h>
  7. namespace aria2 {
  8. class FeatureConfigTest:public CppUnit::TestFixture {
  9. CPPUNIT_TEST_SUITE(FeatureConfigTest);
  10. CPPUNIT_TEST(testGetDefaultPort);
  11. CPPUNIT_TEST(testIsSupported);
  12. CPPUNIT_TEST(testFeatureSummary);
  13. CPPUNIT_TEST_SUITE_END();
  14. public:
  15. void testGetDefaultPort();
  16. void testIsSupported();
  17. void testFeatureSummary();
  18. };
  19. CPPUNIT_TEST_SUITE_REGISTRATION(FeatureConfigTest);
  20. void FeatureConfigTest::testGetDefaultPort() {
  21. CPPUNIT_ASSERT_EQUAL((uint16_t)80,
  22. FeatureConfig::getInstance()->getDefaultPort("http"));
  23. CPPUNIT_ASSERT_EQUAL((uint16_t)443,
  24. FeatureConfig::getInstance()->getDefaultPort("https"));
  25. CPPUNIT_ASSERT_EQUAL((uint16_t)21,
  26. FeatureConfig::getInstance()->getDefaultPort("ftp"));
  27. }
  28. void FeatureConfigTest::testIsSupported() {
  29. #ifdef ENABLE_SSL
  30. CPPUNIT_ASSERT_EQUAL(true,
  31. FeatureConfig::getInstance()->isSupported
  32. (FeatureConfig::FEATURE_HTTPS));
  33. #else
  34. CPPUNIT_ASSERT_EQUAL(false,
  35. FeatureConfig::getInstance()->isSupported
  36. (FeatureConfig::FEATURE_HTTPS));
  37. #endif // ENABLE_SSL
  38. CPPUNIT_ASSERT_EQUAL(false,
  39. FeatureConfig::getInstance()->isSupported("FTPS"));
  40. }
  41. void FeatureConfigTest::testFeatureSummary() {
  42. const std::string features[] = {
  43. #ifdef ENABLE_ASYNC_DNS
  44. "Async DNS",
  45. #endif // ENABLE_ASYNC_DNS
  46. #ifdef ENABLE_BITTORRENT
  47. "BitTorrent",
  48. #endif // ENABLE_BITTORRENT
  49. #ifdef HAVE_SQLITE3
  50. "Firefox3 Cookie",
  51. #endif // HAVE_SQLITE3
  52. #ifdef HAVE_LIBZ
  53. "GZip",
  54. #endif // HAVE_LIBZ
  55. #ifdef ENABLE_SSL
  56. "HTTPS",
  57. #endif // ENABLE_SSL
  58. #ifdef ENABLE_MESSAGE_DIGEST
  59. "Message Digest",
  60. #endif // ENABLE_MESSAGE_DIGEST
  61. #ifdef ENABLE_METALINK
  62. "Metalink",
  63. #endif // ENABLE_METALINK
  64. };
  65. std::string featuresString;
  66. const std::string delim(", ");
  67. std::for_each(&features[0], &features[arrayLength(features)],
  68. StringAppend(featuresString, delim));
  69. // USE Util::trimSelf(featureString);
  70. featuresString = Util::trim(featuresString, delim);
  71. CPPUNIT_ASSERT_EQUAL(featuresString,
  72. FeatureConfig::getInstance()->featureSummary());
  73. }
  74. } // namespace aria2