1b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// Use of this source code is governed by a BSD-style license that can be 3b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// found in the LICENSE file. 4b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 5b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat#include "base/base64.h" 6b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 7b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat#include "testing/gtest/include/gtest/gtest.h" 8b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 9b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratnamespace base { 10b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 11b8cf94937c52feb53b55c39e3f82094d27de464cDaniel EratTEST(Base64Test, Basic) { 12b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat const std::string kText = "hello world"; 13b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat const std::string kBase64Text = "aGVsbG8gd29ybGQ="; 14b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 15b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat std::string encoded; 16b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat std::string decoded; 17b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat bool ok; 18b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 19b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat Base64Encode(kText, &encoded); 20b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat EXPECT_EQ(kBase64Text, encoded); 21b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 22b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat ok = Base64Decode(encoded, &decoded); 23b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat EXPECT_TRUE(ok); 24b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat EXPECT_EQ(kText, decoded); 25b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} 26b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 27b8cf94937c52feb53b55c39e3f82094d27de464cDaniel EratTEST(Base64Test, InPlace) { 28b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat const std::string kText = "hello world"; 29b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat const std::string kBase64Text = "aGVsbG8gd29ybGQ="; 30b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat std::string text(kText); 31b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 32b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat Base64Encode(text, &text); 33b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat EXPECT_EQ(kBase64Text, text); 34b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 35b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat bool ok = Base64Decode(text, &text); 36b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat EXPECT_TRUE(ok); 37b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat EXPECT_EQ(text, kText); 38b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} 39b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 40b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} // namespace base 41