MD5Update function uses StringPiece instead of raw buffer.

BUG=none
TEST=base_unittests --gtest_filter=MD5.ContextWithStringData*


Review URL: http://codereview.chromium.org/7466003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94203 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/md5_unittest.cc b/base/md5_unittest.cc
index c81ff12..a20d819 100644
--- a/base/md5_unittest.cc
+++ b/base/md5_unittest.cc
@@ -120,7 +120,8 @@
     if (len > length - total)
       len = length - total;
 
-    MD5Update(&ctx, data.get() + total, len);
+    MD5Update(&ctx,
+              StringPiece(reinterpret_cast<char*>(data.get() + total), len));
     total += len;
   }
 
@@ -188,4 +189,19 @@
   EXPECT_EQ(expected, actual);
 }
 
+TEST(MD5, ContextWithStringData) {
+  MD5Context ctx;
+  MD5Init(&ctx);
+
+  MD5Update(&ctx, "abc");
+
+  MD5Digest digest;
+  MD5Final(&digest, &ctx);
+
+  std::string actual = MD5DigestToBase16(digest);
+  std::string expected = "900150983cd24fb0d6963f7d28e17f72";
+
+  EXPECT_EQ(expected, actual);
+}
+
 }  // namespace base