Darin Petkov | ce9b3a1 | 2013-01-10 16:38:54 +0100 | [diff] [blame] | 1 | // Copyright (c) 2013 The Chromium OS 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 | |
Eric Caruso | f9091f8 | 2017-04-28 14:18:59 -0700 | [diff] [blame] | 5 | #include <dbus/mock_bus.h> |
Darin Petkov | ce9b3a1 | 2013-01-10 16:38:54 +0100 | [diff] [blame] | 6 | #include <gtest/gtest.h> |
| 7 | |
Alex Vakulenko | 262be3f | 2014-07-30 15:25:50 -0700 | [diff] [blame] | 8 | #include "debugd/src/log_tool.h" |
Darin Petkov | ce9b3a1 | 2013-01-10 16:38:54 +0100 | [diff] [blame] | 9 | |
| 10 | namespace debugd { |
| 11 | |
| 12 | class LogToolTest : public testing::Test { |
| 13 | protected: |
Eric Caruso | f9091f8 | 2017-04-28 14:18:59 -0700 | [diff] [blame] | 14 | LogToolTest() |
| 15 | : log_tool_(new dbus::MockBus(dbus::Bus::Options())) {} |
| 16 | |
| 17 | void AnonymizeLogMap(LogTool::LogMap* log_map) { |
Darin Petkov | ce9b3a1 | 2013-01-10 16:38:54 +0100 | [diff] [blame] | 18 | log_tool_.AnonymizeLogMap(log_map); |
| 19 | } |
| 20 | |
| 21 | LogTool log_tool_; |
| 22 | }; |
| 23 | |
| 24 | TEST_F(LogToolTest, AnonymizeLogMap) { |
| 25 | LogTool::LogMap log_map; |
| 26 | AnonymizeLogMap(&log_map); |
| 27 | EXPECT_TRUE(log_map.empty()); |
| 28 | static const char kKey1[] = "log-key1"; |
| 29 | static const char kKey2[] = "log-key2"; |
| 30 | static const char kMAC[] = "aa:bb:cc:dd:ee:ff"; |
| 31 | static const char kAnonymousMAC[] = "aa:bb:cc:00:00:01"; |
| 32 | log_map[kKey1] = kMAC; |
| 33 | log_map[kKey2] = kMAC; |
| 34 | AnonymizeLogMap(&log_map); |
| 35 | EXPECT_EQ(2, log_map.size()); |
| 36 | EXPECT_EQ(kAnonymousMAC, log_map[kKey1]); |
| 37 | EXPECT_EQ(kAnonymousMAC, log_map[kKey2]); |
| 38 | } |
| 39 | |
Luis Hector Chavez | fc2566f | 2018-09-13 15:00:36 -0700 | [diff] [blame] | 40 | TEST_F(LogToolTest, EnsureUTF8String) { |
| 41 | // U+1F600 GRINNING FACE |
| 42 | constexpr const char kGrinningFaceUTF8[] = "\xF0\x9F\x98\x80"; |
| 43 | constexpr const char kGrinningFaceBase64[] = "<base64>: 8J+YgA=="; |
| 44 | EXPECT_EQ(kGrinningFaceUTF8, |
| 45 | LogTool::EnsureUTF8String(kGrinningFaceUTF8, |
| 46 | LogTool::Encoding::kAutodetect)); |
| 47 | EXPECT_EQ( |
| 48 | kGrinningFaceUTF8, |
| 49 | LogTool::EnsureUTF8String(kGrinningFaceUTF8, LogTool::Encoding::kUtf8)); |
| 50 | EXPECT_EQ( |
| 51 | kGrinningFaceBase64, |
| 52 | LogTool::EnsureUTF8String(kGrinningFaceUTF8, LogTool::Encoding::kBinary)); |
| 53 | |
| 54 | // .xz Stream Header Magic Bytes |
| 55 | constexpr const char kXzStreamHeaderMagicBytes[] = "\xFD\x37\x7A\x58\x5A\x00"; |
| 56 | constexpr const char kXzStreamHeaderMagicUTF8[] = |
| 57 | "\xEF\xBF\xBD" |
| 58 | "7zXZ"; |
| 59 | constexpr const char kXzStreamHeaderMagicBase64[] = "<base64>: /Td6WFo="; |
| 60 | EXPECT_EQ(kXzStreamHeaderMagicBase64, |
| 61 | LogTool::EnsureUTF8String(kXzStreamHeaderMagicBytes, |
| 62 | LogTool::Encoding::kAutodetect)); |
| 63 | EXPECT_EQ(kXzStreamHeaderMagicUTF8, |
| 64 | LogTool::EnsureUTF8String(kXzStreamHeaderMagicBytes, |
| 65 | LogTool::Encoding::kUtf8)); |
| 66 | EXPECT_EQ(kXzStreamHeaderMagicBase64, |
| 67 | LogTool::EnsureUTF8String(kXzStreamHeaderMagicBytes, |
| 68 | LogTool::Encoding::kBinary)); |
| 69 | } |
| 70 | |
Darin Petkov | ce9b3a1 | 2013-01-10 16:38:54 +0100 | [diff] [blame] | 71 | } // namespace debugd |