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