summaryrefslogtreecommitdiff
path: root/test/MessageDigestTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-11-11 02:56:24 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-11-11 02:56:24 +0000
commit89f997ec0d93345fa3134d1c906bf16246a51fc1 (patch)
treed9a190441b4edd3ced4ff69989fe8d95d99d89a6 /test/MessageDigestTest.cc
parent513e8a7917a48e891ef1c4e2b005b862b3a06ac7 (diff)
2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Replaced MessageDigestContext with MessageDigest. Cleaned up unnecessary functions in MessageDigestHelper. * src/BtPieceMessage.cc * src/Checksum.h * src/DHTTokenTracker.cc * src/DownloadCommand.cc * src/DownloadCommand.h * src/HashFuncEntry.h * src/IteratableChecksumValidator.cc * src/IteratableChecksumValidator.h * src/IteratableChunkChecksumValidator.cc * src/IteratableChunkChecksumValidator.h * src/LibgcryptMessageDigestImpl.cc * src/LibgcryptMessageDigestImpl.h * src/LibsslMessageDigestImpl.cc * src/LibsslMessageDigestImpl.h * src/MSEHandshake.cc * src/MSEHandshake.h * src/Makefile.am * src/MessageDigest.cc * src/MessageDigest.h * src/MessageDigestHelper.cc * src/MessageDigestHelper.h * src/MessageDigestImpl.h * src/MetalinkParserController.cc * src/Piece.cc * src/Piece.h * src/UTMetadataDataExtensionMessage.cc * src/bittorrent_helper.cc * src/messageDigest.cc: Removed * src/messageDigest.h: Removed * src/util.cc * src/version_usage.cc * test/BittorrentHelperTest.cc * test/GZipDecoderTest.cc * test/GZipDecodingStreamFilterTest.cc * test/IteratableChecksumValidatorTest.cc * test/IteratableChunkChecksumValidatorTest.cc * test/Makefile.am * test/MessageDigestHelperTest.cc * test/MessageDigestTest.cc * test/Metalink2RequestGroupTest.cc * test/MetalinkProcessorTest.cc * test/PieceTest.cc * test/TestUtil.cc * test/TestUtil.h * test/UTMetadataDataExtensionMessageTest.cc * test/UTMetadataPostDownloadHandlerTest.cc
Diffstat (limited to 'test/MessageDigestTest.cc')
-rw-r--r--test/MessageDigestTest.cc84
1 files changed, 84 insertions, 0 deletions
diff --git a/test/MessageDigestTest.cc b/test/MessageDigestTest.cc
new file mode 100644
index 00000000..627597da
--- /dev/null
+++ b/test/MessageDigestTest.cc
@@ -0,0 +1,84 @@
+#include "MessageDigest.h"
+
+#include <cppunit/extensions/HelperMacros.h>
+
+#include "util.h"
+
+namespace aria2 {
+
+class MessageDigestTest:public CppUnit::TestFixture {
+
+ CPPUNIT_TEST_SUITE(MessageDigestTest);
+ CPPUNIT_TEST(testHexDigest);
+ CPPUNIT_TEST(testSupports);
+ CPPUNIT_TEST(testGetDigestLength);
+ CPPUNIT_TEST(testIsStronger);
+ CPPUNIT_TEST(testIsValidHash);
+ CPPUNIT_TEST(testGetCanonicalHashType);
+ CPPUNIT_TEST_SUITE_END();
+
+ SharedHandle<MessageDigest> sha1_;
+public:
+ void setUp()
+ {
+ sha1_ = MessageDigest::sha1();
+ }
+
+ void testHexDigest();
+ void testSupports();
+ void testGetDigestLength();
+ void testIsStronger();
+ void testIsValidHash();
+ void testGetCanonicalHashType();
+};
+
+
+CPPUNIT_TEST_SUITE_REGISTRATION( MessageDigestTest );
+
+void MessageDigestTest::testHexDigest()
+{
+ sha1_->update("aria2", 5);
+ CPPUNIT_ASSERT_EQUAL(std::string("f36003f22b462ffa184390533c500d8989e9f681"),
+ sha1_->hexDigest());
+}
+
+void MessageDigestTest::testSupports()
+{
+ CPPUNIT_ASSERT(MessageDigest::supports("sha-1"));
+ // Fails because sha1 is not valid name.
+ CPPUNIT_ASSERT(!MessageDigest::supports("sha1"));
+}
+
+void MessageDigestTest::testGetDigestLength()
+{
+ CPPUNIT_ASSERT_EQUAL((size_t)20, MessageDigest::getDigestLength("sha-1"));
+ CPPUNIT_ASSERT_EQUAL((size_t)20, sha1_->getDigestLength());
+}
+
+void MessageDigestTest::testIsStronger()
+{
+ CPPUNIT_ASSERT(MessageDigest::isStronger("sha-1", "md5"));
+ CPPUNIT_ASSERT(!MessageDigest::isStronger("md5", "sha-1"));
+ CPPUNIT_ASSERT(!MessageDigest::isStronger("unknown", "sha-1"));
+ CPPUNIT_ASSERT(!MessageDigest::isStronger("sha-1", "unknown"));
+}
+
+void MessageDigestTest::testIsValidHash()
+{
+ CPPUNIT_ASSERT(MessageDigest::isValidHash
+ ("sha-1", "f36003f22b462ffa184390533c500d8989e9f681"));
+ CPPUNIT_ASSERT(!MessageDigest::isValidHash
+ ("sha-1", "f36003f22b462ffa184390533c500d89"));
+}
+
+void MessageDigestTest::testGetCanonicalHashType()
+{
+ CPPUNIT_ASSERT_EQUAL(std::string("sha-1"),
+ MessageDigest::getCanonicalHashType("sha1"));
+ CPPUNIT_ASSERT_EQUAL(std::string("sha-256"),
+ MessageDigest::getCanonicalHashType("sha256"));
+ CPPUNIT_ASSERT_EQUAL(std::string("unknown"),
+ MessageDigest::getCanonicalHashType("unknown"));
+}
+
+} // namespace aria2