// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/sync/util/crypto_helpers.h"
#include "testing/gtest/include/gtest/gtest.h"

TEST(ChecksumTest, MD5ChecksumTest) {
  uint8 buffer[256];
  for (unsigned int i = 0; i < arraysize(buffer); ++i) {
    buffer[i] = i;
  }
  MD5Calculator md5;
  md5.AddData(buffer, arraysize(buffer));
  std::string checksum("e2c865db4162bed963bfaa9ef6ac18f0");
  ASSERT_EQ(checksum, md5.GetHexDigest());
}

TEST(CryptoHelpers, GetRandomBytes) {
  for (int i = 1; i < 25; ++i) {
    std::string random_bytes(i+1, ' ');
    do {
      GetRandomBytes(&random_bytes[0], i);
      ASSERT_EQ(random_bytes[i], ' ');
    } while (random_bytes[i - 1] == ' ');
  }
}