mirror of https://github.com/aria2/aria2
				
				
				
			
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
#include "MessageDigest.h"
 | 
						|
 | 
						|
#include <cppunit/extensions/HelperMacros.h>
 | 
						|
 | 
						|
#include "util.h"
 | 
						|
 | 
						|
namespace aria2 {
 | 
						|
 | 
						|
class MessageDigestTest:public CppUnit::TestFixture {
 | 
						|
 | 
						|
  CPPUNIT_TEST_SUITE(MessageDigestTest);
 | 
						|
  CPPUNIT_TEST(testDigest);
 | 
						|
  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 testDigest();
 | 
						|
  void testSupports();
 | 
						|
  void testGetDigestLength();
 | 
						|
  void testIsStronger();
 | 
						|
  void testIsValidHash();
 | 
						|
  void testGetCanonicalHashType();
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
CPPUNIT_TEST_SUITE_REGISTRATION( MessageDigestTest );
 | 
						|
 | 
						|
void MessageDigestTest::testDigest()
 | 
						|
{
 | 
						|
  sha1_->update("aria2", 5);
 | 
						|
  CPPUNIT_ASSERT_EQUAL(std::string("f36003f22b462ffa184390533c500d8989e9f681"),
 | 
						|
                       util::toHex(sha1_->digest()));
 | 
						|
}
 | 
						|
 | 
						|
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
 |