| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 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 "components/proximity_auth/base64url.h" | |
| 6 | |
| 7 #include "base/base64.h" | |
| 8 #include "testing/gtest/include/gtest/gtest.h" | |
| 9 | |
| 10 namespace proximity_auth { | |
| 11 | |
| 12 TEST(ProximityAuthBase64UrlTest, EncodeRegularString) { | |
| 13 const std::string input = "Hello world!"; | |
| 14 const std::string expected_output = "SGVsbG8gd29ybGQh"; | |
| 15 | |
| 16 std::string web_safe_output; | |
| 17 Base64UrlEncode(input, &web_safe_output); | |
| 18 EXPECT_EQ(expected_output, web_safe_output); | |
| 19 | |
| 20 // For good measure, make sure that the encoding matches the //base | |
| 21 // implemenation as well. | |
| 22 std::string non_web_safe_output; | |
| 23 base::Base64Encode(input, &non_web_safe_output); | |
| 24 EXPECT_EQ(web_safe_output, non_web_safe_output); | |
| 25 } | |
| 26 | |
| 27 TEST(ProximityAuthBase64UrlTest, DecodeRegularString) { | |
| 28 const std::string input = "SGVsbG8gd29ybGQh"; | |
| 29 const std::string expected_output = "Hello world!"; | |
| 30 | |
| 31 std::string web_safe_output; | |
| 32 EXPECT_TRUE(Base64UrlDecode(input, &web_safe_output)); | |
| 33 EXPECT_EQ(expected_output, web_safe_output); | |
| 34 | |
| 35 // For good measure, make sure that the encoding matches the //base | |
| 36 // implemenation as well. | |
| 37 std::string non_web_safe_output; | |
| 38 EXPECT_TRUE(base::Base64Decode(input, &non_web_safe_output)); | |
| 39 EXPECT_EQ(web_safe_output, non_web_safe_output); | |
| 40 } | |
| 41 | |
| 42 TEST(ProximityAuthBase64UrlTest, EncodeSpecialCharacters) { | |
| 43 // This happens to be a stable encoding, i.e. encode(decode(s)) gives back s. | |
| 44 const std::string encoded = "/+Y="; | |
| 45 std::string decoded; | |
| 46 ASSERT_TRUE(base::Base64Decode(encoded, &decoded)); | |
| 47 | |
| 48 // Decoded strings that encode to special characters are non-printable, so, | |
| 49 // for ease of testing, just compare the web-safe and non-web-safe encodings. | |
| 50 std::string web_safe_encoded; | |
| 51 Base64UrlEncode(decoded, &web_safe_encoded); | |
| 52 EXPECT_EQ("_-Y=", web_safe_encoded); | |
| 53 } | |
| 54 | |
| 55 TEST(ProximityAuthBase64UrlTest, DecodeSpecialCharacters) { | |
| 56 const std::string encoded = "_-Y="; | |
| 57 std::string decoded; | |
| 58 ASSERT_TRUE(Base64UrlDecode(encoded, &decoded)); | |
| 59 | |
| 60 // Decoded strings that encode to special characters are non-printable, so, | |
| 61 // for ease of testing, just compare the web-safe and non-web-safe encodings. | |
| 62 std::string non_web_safe_encoded; | |
| 63 base::Base64Encode(decoded, &non_web_safe_encoded); | |
| 64 EXPECT_EQ("/+Y=", non_web_safe_encoded); | |
| 65 } | |
| 66 | |
| 67 } // namespace proximity_auth | |
| OLD | NEW |