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